Tuesday, July 13, 2010

R-Evolve or Die

"Evolve or die!". I've heard that sentiment a few times lately related to existing technologies that are coming under fire for being too old and ugly in the face of "up and comers" with fancy interfaces and social connectivity. But the more I think of it, is "Evolve" the right answer?

I don't think so. The pace of evolution tends to be slow. At the start, you look more "different" than "evolutionary" and no one cares about that. No, I think you need to be "revolutionary" if you want to make a difference. And that's hard for veteran organizations that fear risk to pull off.

A great mentor of mine once told me: "Don't be tied to the technology". The example he came up with was Smalltalk. We had a whole product written in Smalltalk and it was awesome. And it would still be awesome today except for one thing. The UI didn't fit in with any other applications you may have been using. That and the companies that supported Smalltalk eventually died off. So what did we do? Well, we rewrote the whole thing with the help of standard desktop tools and languages and a huge code base we inherited in a takeover. Unfortunately the result was a big Windows app, but it got the job done and saved the product.

So what am I getting at? Well, I've got a renewed interest in the "IDE in the Cloud", somewhat sparked by Google's new experimental App Inventor for Android. I'm not a fan of the puzzle metaphor they picked, but it just got me thinking again of the power of the new browsers and web technologies and how we can apply them to the tools space. It does make the behemoth desktop IDE we have in Eclipse look old fashioned. But instead of thinking evolutionary, what would a revolutionary IDE look like in this new world?

8 comments:

  1. Well I'm with respect to the IDE quite conservative. Not that conservative as the guys still coding FORTRAN or C with vi or emacs but spending a major part of my work time with Eclipse makes me sensitive to performance, especially as my internet connections are bad at home and just moderate at work as our building is connected by radio relay system only.

    ReplyDelete
  2. Linux Symposium Day 1, no wifi ... my development would halt if my IDE were cloud dependant. Instead I'd have to listen to talks on IP governance ... boourns

    Thomas ... clouds are where planes fly

    ReplyDelete
  3. Nothing would prevent you from running the server on your local machine if you are disconnected or on a slow connection.

    The idea isn't fully cooked yet, but the idea is that the face of the IDE is the browser and the server-side stuff can be anywhere. And by IDE I mean much more than just code. Think of web-based lifecycle management tools such as Jazz with code editing, build, debug, all in the same tool.

    ReplyDelete
  4. And with enterprise deployment being a breeze.

    ReplyDelete
  5. The term "old fashioned" is interesting. Fashions come and fashions go, yet if you look at fashion over the long term, it's difficult to argue that it evolves in a manner that leads progressively and fundamentally to better clothing. Rather to the contrary, fashions generally change primarily for the sake of change itself: you'll be needing a new wardrobe. That software have lasting value is likely more important than that it be fashionable. That being said, of course innovation is a very good thing and there's always room for improvement.

    ReplyDelete
  6. I've had lots of discussions about doing this sort of thing - my view is that at the moment the web isn't the right platform for C/embedded development. Performance is one issue, as is customer build system integration, code storage concerns, hardware debugging and of course offline access (running a web server on your laptop just to edit code is not pretty!)

    We implemented an online IDE for C development a couple of years ago using RAP, Java applets and server-side tools, and while I'm sure Eclipse has moved on a lot even in that time e.g. e4, my guess is we're still a long way off.

    ReplyDelete
  7. Actually, it's the large scale C/Embedded customers that I think would really benefit from IDE in the cloud. There, deployment of tools is always a huge challenge as is resource sharing. I know some huge telecom companies that are invested heavily in ClearCase and have huge build farms and test labs that might go for it.

    My point about evolution versus revolution is to throw away the Eclipse UI and workflows, keep the core and build a new Web-centric UI using JavaScript with Bespin and maybe using GWT. RAP is the wrong solution IMHO.

    ReplyDelete
  8. I can see it would make life a lot easier for IT guys in large companies. I guess that kind of solution depends how fussy the developers are in terms of what OS and editor they use :)

    I forgot about Bespin, it looks awesome.

    ReplyDelete