Software development


The developer tools group in Borland, which is in the process of being spun off, is resurrecting the Turbo line of programming tools. They will include a free edition and a professional edition that will cost less than $500. (Currently Borland’s cheapest professional tools cost over $1000.) They’re even bringing back their old mascot, Turboman. I’m glad to see them going back to their roots, and I’m rooting for them. Way back in middle school, Turbo Pascal 3.0 was my first exposure to structured programming and a real IDE and compiler, and I’ve been a fan of Borland ever since.

Lately there's been a bumper crop of JavaScript libraries for creating Ajax applications. At first, it was largely a grassroots effort, and to this day some of the most popular libraries like Prototype, script.aculo.us, Behaviour, Dojo, and MochiKit are maintained mostly by one person.

But now the big boys are joining the party. Yahoo has a modular user interface library that assumes you're doing most of your client-side development in HTML and JavaScript and just need help smoothing out the warts in those languages. Adobe has an HTML-centric framework called Spry. Taking a vastly different approach, the Google Web Toolkit lets you write Ajax applications in Java, and then compile them into HTML and JavaScript. And Microsoft has a library code-named Atlas, which includes both a server-side ASP.NET library that doesn't require JavaScript and a client-side JavaScript library.

The best part: all are available for free, and all but Atlas is open source. (Atlas will have a "reusable modification license," whatever that means, when the final version is released.)

Last week, Microsoft had its semi-regular Professional Developers Conference. I was impressed by the amount of new material it put out, much of it unexpected, including:

And then that weekend, both Business Week and Forbes had cover stories on how Microsoft has become bloated, slow, and unresponsive, while Google poaches its best employees — which unintentionally became a great segway to Microsoft's reorganization announcement.

A constant theme in HCI and computer-supported cooperative work (CSCW) is how hard it is to get a group of people to adopt and support new technology — being technically superior is not nearly enough. One good example, interestingly enough, is in the area of web application frameworks.

For example, in my favorite language Python, there are a bajillion web frameworks but no clear leader. Meanwhile, one open source web application framework written in Ruby has been getting a lot of buzz lately. The users of Ruby on Rails rave about its ease of use and simplicity. This is causing some consternation in the Python community, to the point that some are creating a clone of Rails in Python called Subway.

But simply copying the framework itself won’t generate the same excitement. There are other reasons Ruby on Rails is getting so much attention. The creators of RoR have evangelized it very effectively and have created good documentation so that others can jump in. Also, the library was extracted from an existing application, so the creators had a real sense for what was useful and what wasn’t. It reminds me of Papier-Mâché, a toolkit for creating tangible user interfaces by Scott Klemmer, who designed and implemented two tangible UI apps before designing the toolkit.

However, all is not lost in Pythonland. Thanks to Robert Scoble I just found out about a Python web framework that seems to hold great promise. Django was also extracted from an existing application, and its creators seem to understand the importance of good marketing and documentation. I’m hoping it succeeds.

Normally I program in Java, but recently I needed to write a quick program, and I turned to my favorite language for such tasks, Python. I hadn’t used Python for a while, so I’d forgotten how much I like the language — terse, clean syntax, and an elegant design.

But I’m still looking for a good IDE for writing Python programs in Windows — a text editor and the command line just don’t cut it for me. Currently, I’m keeping my eye on four environments. Two of them, DrPython and ActiveGrid IDE, are standalone, and the other two, Pydev and TruStudio, are built on Eclipse, which I use for Java programming.

I also came across a free text editor called PSPad. While I’m a fan of TextPad, you can never know too many text editors.

Lately there’s been a bunch of initiatives aimed at making software development easier and more robust, by having programmers create and program in domain-specific languages, instead of general-purpose ones like C or Java. Examples include Intentional Software which was spun off from Microsoft Research, the Meta Programming System by JetBrains, and Software Factories by Microsoft. Martin Fowler has a good overview and commentary of this promising area in an article and follow-up blog entry.

Today I went to a Borland presentation on its Java development tool, JBuilder 2005. I hadn’t played around with it for more than five years, so obviously what I saw tonight was dramatically different. It has some slick support for developing and refactoring J2EE programs. For example, if you rename a class via refactoring, JBuilder is smart enough to not only rename any references to the class in other Java classes, but also within XML configuration files.

I was also interested in finding out more about JBuilder’s upcoming transition to Eclipse. I asked why Borland picked Eclipse over NetBeans. It all boiled down to the ecosystem. Even though JBuilder’s architecture is more similar to NetBeans than Eclipse, it would still be painful to move the code base to NetBeans, and the payoff wouldn’t be as great, because there is less third-party support for NetBeans than there is for Eclipse. Plus, Borland was actually a founding member of the Eclipse Foundation (although it didn’t became a strategic partner until this year), so they’ve been keeping an eye on Eclipse for a few years.

A little trivia: Borland has been in Scotts Valley, CA since its founding in 1983. In 2003, it started leasing office space in Cupertino City Center. Cupertino’s city government claimed that Borland was moving its headquarters to there, but Borland denied it. However, if you look at its web site now, its Scotts Valley address is almost nowhere to be found. Instead, it lists its “executive offices” as being located in Cupertino. But the listed phone number is the old Scotts Valley number!

Talking to the folks at tonight’s meeting, it turns out that most of the developer tools are still being developed in Scotts Valley, while sales, executive offices, and development for other products are in Cupertino. As for the headquarters… who knows.

Next Page »