Wednesday, August 1, 2012

Choosing web technologies

Photo by ladyvee9
Back when we started Orbeon we didn't have to think too much about which technology to choose given our background: Java was cool then, it was king on the server, and we had worked with it before it even reached version 1.0. But that was maybe the last time we didn't have to choose anything as far as technologies are concerned!

For example, can you pick anything you would call a clear winner in the following categories:
  • Web frameworks in Java
  • Web frameworks in other programming languages
  • Client-side frameworks (low-level)
  • Client-side frameworks (high-level)
I think that the closest we can get to an easy technological choice, in the sense of a technology with a large market share and which is also considered good stuff, is maybe jQuery, "used by over 55% of the 10,000 most visited websites". But, even that is not what one would call an obvious technological choice. And for everything else, the level of consolidation remains fairly low.

There is currently a huge rebirth of interest in programming languages, and these days you don't even have that clear of a choice as far as programming languages are concerned anymore.

Not that this is bad: the fact that there is so much going on is very exciting, and it probably means that software will remain interesting for a very long time.

So today more than ever you have to be careful when choosing technology. Here are a few things we think about when choosing technology:
  • Did it come out just yesterday, or does it have a few years behind it and a strong community?
  • Is it just cool because of fashion or hype, or does it solve a real problem?
  • How much effort is it going to cost us to integrate that technology?
  • Does it integrate nicely with your existing technologies (unless you are starting from scratch)?
  • Are big companies using it (and by this I don't mean IBM, but maybe Twitter)?
  • As a programmer, are you going to be happier using it?
As mentioned earlier, this is the kind of considerations that have led us to choose Scala, CoffeeScript, LESS, jQuery, and very recently, Twitter Bootstrap.

1 comment:

  1. Thanks for your thoughts... Very interesting to have your point of view on the client side technologies !