Borland Gives Up On Core SDP: I Wonder How Much That Cost ‘Em?

Borland is abandoning its two-year-old strategy of delivering a “software development platform” to further the goal of “software delivery optimization.” As I feared from the start, Borland’s over-stuffed product portfolio and large ambitions clashed with their limited resources.

To summarize: Borland was once the most loved brand in the programming world. They squandered that in order to become second-tier players in various other niches: first they were a second-tier Oracle, then they were a second-tier Weblogic, and most recently they attempted to become a second-tier Rational. As part of that strategy, they decided that what would be brilliant would be to jettison the pesky remnants of the only things they ever did well, which were IDEs and compilers.

I can’t wait to hear what they’re going to do next. My guess is some sort of second-tier MySpace for Software Development.

Made In Express Shenanigans: MS Relents

Microsoft has granted two additional “grand prizes” to other “Made in Express” finalists. As you may recall, I declared “shenanigans” at the original winner, which was a team project that had been in development for years. An uproar slowly developed and after some reluctance (including a letter from MS Legal, which naturally communicated “We admit no error. If you sue us, we will crush you.”) Microsoft has shelled out another couple $10K prizes, which is certainly the best outcome.

There but for the grace of God go I. Contests that evaluate software with unpaid judges always involve some amount of shenanigans. There is an incredible disparity between the amount of time given to judging a product that took hundreds…thousands…tens of thousands of hours to develop. With the Jolt Awards, we once gave a Jolt to a Visual Studio release that was still in beta on December 31 and gave a “Hall of Fame” award to a product that had never won previously. A declaration of shenanigans would have been just. A long-standing joke we used to make getting off the stage was “No one stood up and cried ‘how dare you?’ Another success!”

So I’m certainly a stone-throwing glass-house-owner. At the Jolts, Rosalyn Lum’s work over the past several years has vastly improved the process and kept shenanigans to a minimum. I still hate certain aspects of the process (particularly, that companies have to pay an entrance fee to be considered) and every year there are finalists and winners that make me want to tear my hair out, but I think, on balance, the benefits of contests that strive to objectively evaluate software development efforts and publicly acknowledge and reward excellent programmers outweighthe shenanigans.

Put away your brooms.

.NET Template Engine: A Step Towards DSLs

This article on Code Project (found via Steve Pietrek) might be an excellent stepping-stone for someone trying to learn language-design and compiler technologies. While code-generation and templates are good first steps and are easy to do easy things, but you should be aware that as the semantics of what you’re trying to accomplish increases, the difficulty typically inverts. That is, at some point the verboseness but flexibility of generating assembly-language or IL becomes less painful than subverting the semantics of C# or VB.NET (or whatever other language you use).

This actually touches on a broader point: one thing we’ve seen with the shift towards agile processes is an emphasis on refactoring. This requires a faith in the prospect that a program can be incrementally changed from one form to another. In practice, this is generally true, but there are certainly cases, and DSLs might be a good example, where there may be a discontinuity of architecture significant enough to foreclose evolution and force you back to viewing your initial work as “build one to throw away.”

That still doesn’t mean that one ought to regret the initial work. “The simplest thing that could possibly work,” is still a solid principle for approaching a project. But the devil is in the word “possibly.”

Strap On Tinfoil Hat, Unleash the FOIA: NSA Publications Includes "Key to the Extraterrestrial Messages"

A researcher has been plugging away at the NSA with the Freedom of Information Act. He’s recently received an index to NSA publications (the publications are not yet available). Among the articles that have appeared in NSA Technical Journal: “Extraterrestrial Intelligence” and “Key to the Extraterrestrial Messages.” I’m going to guess that the articles aren’t all that interesting, but you gotta’ admit, those are catchy titles.

Alan Zeichick Joins Blogosphere

Alan Zeichick, the man who put the “Z” in BZ Media, has started to blog. Alan’s been in the “writing about computers” business since Radio Shak Model 100 days and we’ve worked together since 1989. I have no idea where he’ll find the time to blog, but on the other hand, he’s one of the most prolific writers I know, so I’m sure he’ll figure it out. Knowing Alan, he’ll probably use the blog to justify the purchase of some kind of insane active-sound noise-cancelling system for his Mustang, so that he can use voice dictation into a Linux cluster tucked under the rear seat (no, wait… a Linux cluster would add weight … maybe an EVDO connection to a Linux cluster running in a rack in his hall closet…)

Smalltalk Daily

James Robertson is producing a series of screencasts providing a Smalltalk overview. I highly recommend taking a look if you are not familiar with Smalltalk. You’ve undoubtedly heard of Smalltalk and perhaps have seem some Smalltalk syntax, but if you’ve not seen the Smalltalk development environment in use, you might not understand how radically different the experience of Smalltalk programming is from developing in Visual Studio, Eclipse, or other file-centric systems. Even if you’ve programmed in a dynamic language such as Ruby and appreciated the “live” feel of REPL-style irb, this falls far short of Smalltalk, where your working context can persist from day-to-day and year-to-year.

Robertson works for Cincom and I believe is using the non-commercial version of his company’s implementation for the screencasts. The Smalltalk environment, which has been evolving for more than 2 decades and has its own GUI conventions, can definitely be overwhelming at first, and the screencasts will help familiarize you with the territory.

Exceptions in the Manycore Era

Here’s some interesting reading on the challenges of and possible strategies for dealing with exceptions in concurrent versions of C++. The try…catch…finally model of exception handling introduces its own control flow. How will that interact with concurrent models in which you’re passing around a “future” (essentially, an IOU that can be cashed in for the results of a calculation)? Even more practically, as the number of cores increase, the possibility of simultaneous exceptions rises (probably dramatically, since the worked-out assumptions of normal control-flow no longer hold). Among other things, this paper proposes “reduction functions” that create “compound exceptions.” Interesting stuff.