[FoRK] Top general purpose languages: Practical choices for app logic / presentation & web / server apps

Stephen Williams sdw at lig.net
Wed Jan 19 18:41:24 PST 2011

On 1/19/11 5:19 PM, kelley wrote:
> Loved this - though I found the focus on Java irritating. It's a bazooka for Web development. But I can see the point in so far 
> as, being a compiled language, you can hide a lot more. Not sure I agree that you can't scale with PHP. It's a matter of coding 
> properly. Much more flexible and the frameworks (e.g., Zend) are making it that much easier.

There are different kinds of scalability: how much work before going beyond a pair of servers, how much to scale to any number of 
servers, how much development time is required for certain complexity, and how much maintenance / effort for reusability.  Different 
languages and frameworks have different sweetspots.  There are many simple database-backed form and HTML5/Javascript based 
applications that don't require any serious complexity on the server side.  The more you put in the client side, the more the server 
side can be simplified to a simple API that handles database storage and just the application logic that can't be trusted only being 
on the browser.  Other applications require a lot more logic, structure, complicated interfaces with other systems, advanced 
algorithms, and sometimes even hardware.

PHP, Ruby on Rails, etc. are great for the simpler apps.  Java and even C++ are needed for those tougher enterprise or otherwise 
difficult apps.

Scalability at an Internet scale is also a good reason.  A typical app, even if popular, doesn't really have to scale that much.  A 
very heavily used real-time communications app, like a game or chat etc. are in a different category.

Enterprise apps often choose Java, for instance, for a number of reasons.

Another thing that takes some digging to get a good read on is compliance with all of the existing and emerging standards, 
compatibility with every device, updates to handle security issues, etc.  Easy integration with many emerging services is an example 
where you may have to choose a particular language / framework / server architecture just to avoid having to reinvent a lot of modules.

GWT's handling of mapping to HTML / HTML5 / Javascript for all kinds of browsers and devices in a way that is mostly transparent to 
the developer is a good example of something that potentially avoids a huge amount of work.

> If you can, send me a copy of the paper you're presenting. Love to read it and share with our team.
> Kelley


More information about the FoRK mailing list