“What programming language should I study next? What framework?” I occasionally receive emails from younger — and not so young — readers alike asking me for guidance about such matters. “Use the right tool for the job” is the correct answer, but it’s cheap advice when there are a plethora of tools seemingly right for the job. For most people these days the job at hand is of course web application development.
Should they study Ruby and Ruby on Rails? Or Python and Django? How about C# 4.0 and ASP.NET MVC? Maybe CakePHP? Java and Stripes? And how about more exotic choices like Clojure and Compojure or Scala and Lift?
With very few exceptions, in 2010, it’s hard to choose a combination of semi-popular technologies that couldn’t do the job. Does it really make a huge difference if you choose to study Ruby on Rails or Django? In all honesty, despite all the existing differences, it doesn’t really matter. As long as you become proficient with one of these tools, you will be adequately equipped to approach most web development tasks. Your experience as a server-side developer will be the bottleneck, not your framework of choice.
The real reason why I get asked these questions though, is that these people are mostly looking for a silver bullet, a language-framework combo that will magically allow them to create fantastic web applications in a matter of weeks. They are often after a shortcut, but there is no royal path to web programming.
When I think about the future of programming languages, I envision Babel not people talking Esperanto. We are destined to live in a technological world were there will be many valid server-side options, which are similar yet different enough to justify their own existence and that of their respective communities.
Recently Heroku announced beta support for Node1. It’s a risk on their part, but one worth taking in my opinion. If nothing else, at the very least, Rails developers deploying on Heroku will have the option to integrate Node to increase scalability and performance.
 For a terrific demo of a Cappuccino + Node application deployed on Heroku, check out GitHub Issues.
Get more stuff like this
Subscribe to my mailing list to receive similar updates about programming.
Thank you for subscribing. Please check your email to confirm your subscription.
Something went wrong.
> And while we’re at it, maybe use it for desktop applications too?
Microsoft’s actually been there for years, with JScript and that whole HTA thing, and now with JScript.NET.
I mean like every programming language (and almost human created things ;-)), it has its inherent drawbacks. But this new trends, opens a new world of posibilities for server-side development. I totally agree with you.
Thx for this post Antonio!
Right, so if you work on a site that has 10 pages and you never have to maintain the SpaghettiScript it’s a great language, but if you really want to do something that would give you the “wtf” in 2 years when you try to add/modify something it’s the wrong language to get behind.
I’m sure you also think that Ruby is the best out there and the only other language that can compare with it is PHP, eh?
Serverside JScript (Microsofts ecmascript impl) was moderately popular at the start of the century as an alternative to basic. In my experience it was not a good fit for serverside programming – it was very difficult to build robust apps in part because of its dynamic nature and in part because of Microsofts poor impl.
Via my haxe type signatures for node.js (http://github.com/blackdog66/hxnode) you can use a compiled language for your entire web stack.
Does it really matter what programming language does certain development tasks at it’s best? I think most important is (unfortunately) what is most popular in business! The world wide job crisis gives us no freedom to chose a language we like. We are forced to chose what’s most popular to make us attractive on the job market. :-/
@RainerHimer I don’t think this is actually true. A market is about demand and supply. I remember when I started working as a developer, just after the dot-com bubble burst, I didn’t even have a degree and I found work because I had learnt Perl while graduated people who knew Java or VB where struggling to even get an interview. From what I’ve observed, when you’re expert in emerging/confidential technologies, you just end up spending less time applying for jobs, because there are less jobs, but the result is equivalent because there are also less applicants.
In fact every programming language is same. Every language has loops, variables, functions, class etc. Just there is implementation differences. In fact we only need one simple programming language and Java is a good candidate. Crappy languages like PHP sprang out because Java was slow to reach the market. Also Flash and actionscript came out because java applets were slow, and could not gain popularity. I would recommend Java for everything, but on practice I am a PHP programmer. In the past I learned C++ but I had to develop in Object Pascal, because delphi was the best development tool in those days. Mostly you do not have the freedom to choose.
You can also create graphical front-ends using a combination of HTML and CSS using JQuery via SeedKit rather than using traditional graphical toolkit API’s. I have created a log viewer as an example and created a wee tutorial. Links are here:
I remember years ago when you tried to search for a JS reference, you would often wind up at Netscape’s reference which confusingly defaulted you to the reference for server-side scripting and not client-side.
The most important programming language is English (or whatever the native tongue is where you are). So many projects have been derailed by people not understanding the syntax of this ubiquitous language in which programmers and other stakeholders should be proficient. How many times have you heard something like, “I know that’s what the requirements said, but that’s not what I meant. Fix it.”?
I heard it one time too many, and now I no longer do programming for anyone but myself.
Why not use Java applets on the client side? There are a few interesting examples where this works wonderful, e.g.
the ‘go’ server of the popular game,
or an interesting thing is an online design tool (these are usually done in flash) http://designer.weebmeister.com/en/example-ultima-edition
both really uniquely extend the web-experience of the user and have a well-tested, typed oo-language below.
hmm, it’s similar to playing a video, it was done as swf since thats a reliable way of playing them before the html5 specification came and it’s still widely used.
If you look at the js team of the opera browser, it’s interesting that they’ve implemented a js to native conversion in order speed up execution time in the browser engine, same thing as the java hotspot virtual machine uses…
I developed server side javascipt in the 90s that were run on iPlanet application server so the idea is not new.
Think how great it would be if I could use a .net library and some java classes to create a python script that does something without having to port anything and if i find it too slow I can compile it to run nativly on my ARM cellphone.
Merely wanna input that you have a very nice site, I enjoy the design and style it actually stands out.
I would to learn Java so i want to know how market demand on java now a days