Languages used in Ajax development: the most - Java, the least - Ruby

by Hari K. Gottipati

I have been hearing lot of good things about the Ruby on Rails, but why it is the least language used in Ajax development? This BZ research survey shows that 50.5% of the people are using Java and 10.4% are using Ruby in their Ajax development along with XML and JavaScript(I think some of them are using more than one language which is why the total percentage is greater than 100).

pic_story_12.jpg
Interestingly, development is evenly split when it comes to platforms for deploying AJAX-based server applications, with 52.1 percent saying they'll use Java or J2EE, and 51.9 percent saying Microsoft's ASP.NET or Atlas--a statistical tie. An additional 19.7 percent are using or considering Macromedia Flash, 9.8 percent Ruby on Rails, and 5.5 percent ColdFusion.

I wasn't surprised by the most used language, but I couldn't understand why Ruby is the least language considered for Ajax development? Ruby on Rails is good and fast to develop Ajax applications. But why it is lagging behind all others to attract the crowd?


31 Comments


2006-09-11 16:38:46
Ruby on Rails is good to develop prototypes in a shorter time. I don't think it is ready for prime time yet.
Marcel Weiher
2006-09-11 17:18:06
I could imagine it may also have to do with the fact that RoR philosophy of simplicity meshes really well with plain old HTML interfaces, rather thanĀ  "let's try all the latest buzzword technologies at once, no matter wether they actually add value."
Adrian Sutton
2006-09-11 17:20:30
Ruby on Rails has an absolutely fantastic marketing department which makes it sound like absolutely everyone is using it and it's the best thing since sliced bread. In reality, it's a very new framework trying to get a footing in the world of webapp development. RoR is very good, but there's nothing about it that makes it exceptionally better than any of the other options, it's just another tool in the toolbox.
Sylvain Hellegouarch
2006-09-11 23:21:40
Wher's Python? :)
Sylvain Hellegouarch
2006-09-11 23:25:56
You read that survey in the wrong way. The people who have been asked are development managers who already use Java and/or C#. How could then be astonishing to find that thoise two languages will be their target for Ajax development?


RoR is last in that survey because it is not yet mainstream within development departments.

Sylvain Hellegouarch
2006-09-11 23:27:00
Man I'm tired already?


I rephrase:
"How could then be astonishing to find that thoise two languages will be their target for Ajax development?"


into:


"How could it be astonishing then to find those two languages as their target for Ajax development?"

Jeremy French
2006-09-12 01:21:10
"5.5 percent ColdFusion."
The headline is slightly misleading, according to the text CF is the least used language. With half the penetration of ruby for Ajax apps.



Aaron 'Teejay' Trevena
2006-09-12 04:01:43
These results make a lot more sense when you look at who the survey was amongst : Development Managers who read a niche magazine.


So C# and Java are the popular choice amongst Development Managers in large software houses and corporations who read this obscure journal.


That reflects reality less and less, as it's pretty clear that journals and magazines like that are less and less relevent, and those that remain (Dr Dobbs, etc) are almost exclusively C# and Java in content and advertising.


In the real world - the successful web2.0 applications and sites are using Dynamic Languages like Perl, Ruby and Python, this is illustrated nicely at http://www.dev411.com/blog/2006/09/05/perl-5-powering-web-2.0

Terry Laurenzo
2006-09-12 06:35:56
I think that the data roughly reflects the breakdown of languages that are being used out there (for the readers of that journal anyway). It has nothing to do with Ajax since just about everyone is doing something that in some universe could be considered "Ajax".


I don't know how you could do it objectively, but the question to really be asking is what server-side solutions mesh well with Ajax techniques and have been shown to produce cutting edge solutions. Any server-side solution can support the simple stuff but many drown under the complexity of heavier client side support.


2006-09-12 06:37:30
People is very slow. When I learn Java, C++ job is in demanding. When I learn Ruby, Java job is in demanding.
RoR is new, so not many use it yet.
William
2006-09-12 08:27:45
The nice thing about Java is that it can be used to write scripting languages. So the advantages of using a scripting language over Java( loose typing, less verbosity ) can be had within the Java platform itself, which also has the advantage of the enormously rich Java libraries and API's. The reverse is not true with scripting languages themselves. They are very limited in that regard.


Furthermore, ROR is a framework, not a language. It's something that can easily be emulated( see Codehause's Grails ). ROR is a good idea, but merely a flash in the pan, imo. It's not some earth shattering event, as most ROR people would have you believe.

Aaron 'Teejay' Trevena
2006-09-12 09:01:48
Quoth William:
"The nice thing about Java is that it can be used to write scripting languages. So the advantages of using a scripting language over Java( loose typing, less verbosity ) can be had within the Java platform itself, which also has the advantage of the enormously rich Java libraries and API's. The reverse is not true with scripting languages themselves. They are very limited in that regard."


Perhaps william is correct if by scripting language he means something relatively trivial like ColdFusion or VBScript.


But for real Dynamic Languages like Perl, Ruby, PHP (version 5 or more) and Python, that certainly isn't the case.


I think he would find that all of them had powerful ORM, MVC and other 'enterprise' frameworks, and Perl has the richest repository of libraries available to any language, all in one place and with standardised automatic installation, deployment/unit testing and dependancy resolution - not to mention much of it being packaged by UNIX and Linux distributions.


Right now I'm working important information systems for the aviation industry, and guess what - it's not Java we're using but Perl, we have a nice ORM, a nice MVC framework, nice AJAX features, 10s of 000s of unit and regression tests per data feed, Traits (where Java can only offer Interfaces), and we're the market leader in our area.


Veering even further off topic but, there is a reason Perl is used for critical data feeds - Java just can't cut it, whether it's Financial data, Blogs/RSS/etc or Aviation - Java isn't up to handling complex parsing (which makes me think - how the heck would you write a workable "scripting" language in it?)

William
2006-09-12 09:55:39
Aaron,


Writing a Java based scripting language is no different than writing it's C based counterpart, be it Perl, Python(Jython), Ruby(JRuby), or PHP. Incorporating the libraries and 3rd party api's is another matter of course, but implementing the language itself is relatively trivial. Java has(finally!) standardized this process via JSR 223.


C has non-existant 'complex parsing', yet Perl is written in C. Let's ask you your own question 'How the heck did they write a scripting language in it'? lol. Conversly, Java doesn't have closures, but Groovy does. As a plus, I can compile Groovy classes into Java bytecode and use them in my Java programs, similar to .Net's CLI architecture. So I get the best of both worlds.


Your making some pretty generalized statements that don't make much sense, imo. For instance, Java/.Net are the predominate platforms for handling 'financial data', not perl. Conversely, Aviation is a pretty niche industry ,so using it as a bellweather seems a bit absurd to me. You can run into shops in any industry that are still running on Basic, Fortran, Cobol, and any language in between. That in and of itself means nothing.

Jason Watkins
2006-09-12 10:52:51
Ruby is a niche language, and Rails is relatively new. Why should it's unpopularity surprise you?
Aaron 'Teejay' Trevena
2006-09-12 11:28:09
William,


So you *can* implement the basics of a non-trivial dynamic language in Java, that still isn't a reason to use Java instead of the real thing. Why would I want the added hassle of Java? The API's aren't worth switching language and if I spend all my time writing in a dynamic language like perl from within Java then there is little point in it. Jython and IronPython are interesting projects but they're not what you'd build your business on.


By the way I mention Aviation because I see plenty of Java people claiming that only Java can cope with critical systems in industry like aviation, and I now know that to be entirely false.


I used to believe that only Java's strictness, the huge number of scaffolding link Ant, Eclipse and extra programmers that it requires made it suited to mission critical projects. Now that I've more experience it's clear that QA, project management and documentation are what matters.


I also know that Java and .Net are used in Finance, but hardly for managing all the data, the fact that one of the largest banks in the world uses Java for it's internal web applications and Perl for managing the critical data always makes me smile. In fact Banking and Finance are probably the largest users of Perl in London, New York, etc.


Bringing it back to AJAX and web 2.0 - like I said where are the huge web 2.0 names using Java? Perl, Ruby/Rails and PHP are delivering web2.0 now.


Java and .Net are what middle management talk about in their buzzword filled meetings about SoA and leveraging the synergy of their webservices, etc ;)

William
2006-09-12 12:21:30
Aaron,


If their was ever a buzzword, it's 'Web 2.0', which is primarily Javascript/XML, which has been around a while. Perl/PHP/Ruby/Java don't deliver Web 2.0 in and of themselves, the frameworks and API's do. There are a plenty of Java/AJAX frame works out there. As to whose using them, well, Google, via GWT, comes to mind. What's bigger than that?


Regardless, anyone who operates from the premise that the programming language you use is the base on which 'you build your business' hasn't been in the real world that long. The language is secondary. A language/platform choice *can* stifle growth in the long term due to complexity and cost of development, but that almost always boils down to poor programming practices, nothing inherent in the language itself.


Browsing your profile, I see you've been working for 6 years and mostly, I gather, in Perl. I'm curious, have you actually used Java outside of school? And how does so little real world experience qualify such broad statements and knowlege of financial operations of companies you obviously haven't worked at? :)

Hari K Gottipati
2006-09-12 12:42:22
Aaron quote:
"Bringing it back to AJAX and web 2.0 - like I said where are the huge web 2.0 names using Java? Perl, Ruby/Rails and PHP are delivering web2.0 now."


Think about the all these huge web2.0 companies... those are dot-com companies. Their main concern is fast loading and it makes sense for them to use scripting languages. But for enterprise development loading is not the only the concern. They also need to worry about transcation handling, security, clustering, consuming third party data etc, etc. With all these concerns, I don't think enterprise development is going to rely on either PHP or Perl or Ruby. I am not saying that these cannot be done using the scripting languages, but its easy to do with Java/J2EE or .Net.


On the other hand, what about the existing applications that are already in Java.... people are not going to redevelop the back end to add the Ajax functionality to their front end. I know lot of people who are adding Ajax functionality to their Java applications with out changing the back end.


Hence Java is also delivering web2.0.


2006-09-12 12:53:36
Aaron,


Why use Perl on the JVM? Byte code compliation and JIT. Those two technologies would allow Perl code could run almost as fast as Java. The difference between Java and Perl in performance is huge. Java runs very close to C speed, and the JVM is much better than the Parrot VM. Already you can take Jython and compile it to byte code for the JVM for near Java speed. Of course the dynamic nature of these languages will have an impact on performance, but moving them from being interpreted to JIT is a big difference.


As far as large sites that use Java you don't have too look too far. Amazon, Ebay, Google all use Java for mission critical applications. Financial instiutions use Java very heavily too. Java is more suited to building full applications with all the up front costs of starting a development project. Perl is more suited for admins gluing applications together.


I'm using Ruby now, and the importance of having automated testing is huge. If you're doing Perl, Python, Ruby, SmallTalk or LISP without automtated testing you're not buidling something repeatable and reliable. Because of static typing of Java a lot of little silly errors are caught up front. Yes it's a little slower in terms of productivity, but you know it upfront that you created a problem. And you can fix that problem now rather than later.


2006-09-12 13:06:50
Because beyond the hype of the technical elite, there really isn't all that much adoption for RoR in the corporate world.
assman
2006-09-12 18:02:45
Just to clarify, nobody writes scripting langauages in Java. People write bytecode compilers that target the JVM (Java virtual machine). The JVM is turing complete. So it is possible to implement any programming language on it. You can think of the JVM as a virtual computer with a virtual instruction set just like the Intel processor. .Net is the same, it is a virtual machine. The Perl people are trying to built their own VM, namely parrot.
Peter Cooper
2006-09-13 17:08:45
Excellent news for Ruby developers. We can roll out our finished products while the Java heads are drowning in syntax.
Ben Kittrell
2006-09-14 13:09:53
This is not suprising at all, considering the staggering amount of Java projects going on right now. Rails is growing, very quickly, but it certainly doesn't have the marketshare of Java. I'm sure if you looked at the ratio of the number of Java projects with and without Ajax, it would be much lower than that of Rails.


Give it time.

Jared Nuzzolillo
2006-09-19 06:19:40
Dynamic languages suck because less than 50% of the managers in the Enterprise Development Management Consultant Collective I interviewed use them.


ruby is teh sux0r

rubylicio.us
2006-09-20 04:31:42
.. cause rails is so new?
Payton Byrd
2006-09-20 05:37:22
The reason RoR is not used more is that right now RoR is all hype. It may be a great product, but so are the establishment (Java and .Net) and since PHP has critical mass in the non-enterprise space, I don't see any enterprises would fix what ain't broken by moving to RoR.
FrenchMac
2006-09-20 14:04:23
What I found really interesting with Java and that many script language developer don't catch is that:


1. Are in a an application server: you can create a web page with JSF faster than what you can do with a scripting language. You can edit the page with a wysiwig editor. Integrate AJAX component under the form of component: objects than maintaing their state in memory between two HTTP request. An IDE like Sun Java Creator will sructure your application, help you design graphically the relaction between pages, let you design graphically page layouts and define the relation between the visual components and the data. You don't have to deal with the request/response paradygm anymore... you are in another dimension. It's more like writting a desktop application.
2. You can create thread to execute easily asynchronous job.
3. You have access to state of the art API for a incredible number of techologies. Some language like PHP offers often a mess of API. None of these API are perfect. Their design is often rather poor...
4. The compile nature of Java eliminate errors that in a scripting language you cannot find if you doesn't run through this particular piece of code...

R.Muraleetharan
2006-10-12 07:42:35
what is the function of clustering in Ruby on rails
Muraleetharan
2006-10-12 07:46:34
How is clustering works in ruby on rails?Anyone Knows please share with me.
hvngcc
2007-05-23 09:11:40
Hi, very cool design! Useful information. Go on!
I'll be back.
hvngcc
2007-05-23 09:11:41
Hi, very cool design! Useful information. Go on!
I'll be back.
Charles Foster
2008-02-10 12:52:26
Interesting stats, but you forgot applications built completely with XQuery on top of an XML Database. I can see the backend of AJAX applications moving more and more to XML Databases in the future (XML enabled databases, at least).