Friday, January 21, 2011

Slow hardware means lost opportunities and developer frustration

At my first job, after a steady pace of desktop applications, I was asked to make a web application.

It was 2006 and JSP was the big game in town (ah, taglets), Struts had just become a toplevel Apache project, JSF was just starting and Spring Framework was the only same-looking thing, at some 1.x version.

Having worked with Java on the desktop, the options were Java on the server side too or learning something new (I ruled out PHP quite early).

Thus it came to choose between something that seemed very flashy, called OpenLaszlo or a servlet-based Java solution, with PostgreSQL as the database (I didn't like MySQL either).

OpenLaszlo was quite interesting because it compiled to Flash so you could create quite beautiful pages. It would have also mapped quite nicely with the application as we required some rather custom stuff. Also, the site was used by management so charts and other flashy, interactive content would have been welcome.

In the end I picked a Java servlet solution, using Spring framework and a whole lot of the solution was custom-made.

The reason ? The laptop I had back then could barely run OpenLaszlo locally!

It was some clunky Compaq with 1GB of RAM (I got 2GB at some point) so it could barely keep up with a normal XP/Eclipse/Browser/email configuration, let alone run my local database and local OpenLaszlo server.

Of course, that might also have been a blessing in disguise, because who knows how easy it would have been to actually implement everything with OpenLaszlo? But, the problem is, we'll never know.

Ever since, I consider that developers need to have access to good machines. Software development is a hard job as it is, you don't need to fight your machine too.

Sure, some low-level computer might be used for testing purposes, but expecting the programmer to use a slow machine just because that's what the users have (or because there is no budget) is the seed to a lot of lost opportunities and developer frustration.

1 comment:

Raju Bitter said...

Yes, the OpenLaszlo could be really slow. But the Flex compiler was much slower. I've heard people reporting compile times of up to 8 minutes with large Flex applications.

Things are much better now with faster notebooks. Right now, OpenLaszlo in combination with RingoJS (server-side JavaScript running on Rhino/Java) is an excellent combination. OpenLaszlo can deliver a Flash and HTML5 version of the app, and even runs on pretty good on the latest smartphones. You can create Adobe AIR for Android, Blackberry Playbook apps, iOS apps using the Adobe iOS packager, and HTML5 mobile apps using PhoneGap.

I've started an open source project bringing all those technologies together:
KamiJS http://www.kamijs.com

And Netbeans is my favorite editor for RingoJS app, since it has excellent support for JavaScript 1.7!