SmoothSpan Blog

For Executives, Entrepreneurs, and other Digerati who need to know about SaaS and Web 2.0.

Who Doesn’t Love Java? (You’d Be Surprised! -and- Part 2 of the Tool/Platform Rants)

Posted by Bob Warfield on September 17, 2007

When Sun’s Jonathan Schwartz announced that he was changing Sun’s ticker symbol to JAVA, I wasn’t surprised that a lot of folks saw it as a silly move (nor surprised to see Jonathan being defensive).  Now don’t get me wrong:  I like Java.  My last gig involved prodigious amounts of gnarly Java code in a highly scalable Enterprise grid computing application.  The thing is, I have a problem with the idea that a single language can be all things to all people.   

In addition to Java, I’ve used a lot of other languages, and I thought it would be interested to see who else does too:

GoogleCreated a massive foundation for their massively scalable search engine in C++.  The foundation includes MapReduce (a way to employ thousands of CPU’s and avoid the Multicore Crisis), BigTable (their subsitute for a database), and the Google File System.  It all runs on a few hundred thousand Linux commodity boxes.  To be sure, Google has grown so large they now employ some Java, but C++ is the big enchilada.

YahooPushed into PHP back in 2002 in order to improve productivity and quit “reinventing the wheel”.  Translation:  They didn’t want 70% of their coding to be wasted.  Their presentation on this decision is quite interesting.

YouTubeWritten in Python, a hip relatively recent scripting language.  Google also makes extensive use of Python.

Facebook:  The clever fellows at Facebook are definitely technologists (maybe that’s why they got a platform together ahead of their peers) and built a fancy RPC (remote procedure call) core technology that lets them use almost any language they want.  Shades of Google core tech commitment, eh?  When they talk about what languages are used primarily, Java lands in last place.  The pecking order is PHP, C++, Perl, Python, and Java.

MySpaceBuilt on the Microsoft .NET Stack, so of course no Java there.  Are these boys a glutton for punishment or what?  Yet it proves that it can be done and that it will scale.

DiggDigg is built with the PHP scripting language, which is the “P” (or at least one possible “P”) in those LAMP stacks you hear so much about.

Wikipedia:  Like Digg, Wikipedia was also built on PHP

Amazon:  I was surprised and intrigued to learn that Amazon is language agnostic.  Like Google and Facebook, they’ve invested in some core technology that lets a lot of languages play together freely.  Werner Vogels goes on to say, “Developers are like artists; they produce their best work if they have the freedom to do so, but they need good tools.” 

Flickr:  Everyone’s favorite photo sharing service relies largely on PHP and Perl, with one twitchy systems programming service written in Java. 

Croquet:  A massively multiplayer game environment done in Smalltalk.  Who woulda thunk it?

There are many more, but you get the point:  Some, if not the vast majority, of the web’s biggest movers and shakers have decided not make Java their sole language and others have excluded it entirely!  Sure, the immediate reaction is that there will always be some C++ zealots who prefer their language to Java, but that doesn’t change the list all that much.  What we do see are a lot of “P” languages:  Python, PHP, and Perl.  What’s up with that?

Recall Part 1 of the Tool/Platform Rant Series, which talked about how 70% of the Software You Build is Wasted?  These hugely successful web properties have taken steps to reduce that 70% waste, and while there are many factors that contributed to their success, I believe a desire for increased productivity played a significant role.  The days when these languages were essential for performance are coming to an end too, courtesy of the Multicore Crisis.

There are other ways to skin this cat of over-reliance on a language that’s too low level without giving it up entirely.  Who doesn’t feel like technology gave Google a tremendous edge?  One can argue that C++ isn’t really the language of Google, rather, MapReduce, BigTable, and the Google File System are their language.  C++ is just the assembly code used to write the modules that these other platforms mash up.  In fact, it makes sense to think that C, Java, and C++ are all just portable assembly languages.  By doing this, Google has been able to focus a much greater proportion of its resources to create a proprietary edge for itself.  So have all the others on the list.

It gets more radical:  Amazon doesn’t care what language its developers use.  According to Werner Vogels:

I think part of the chaotic nature—the emerging nature—of Amazon’s platform is that there are many tools available, and we try not to impose too many constraints on our engineers. We provide incentives for some things, such as integration with the monitoring system and other infrastructure tools. But for the rest, we allow teams to function as independently as possible.

You have to ask yourself in light of all this, when are the Curly Braced Languages most and least appropriate?  The decision criteria are shockingly stark:

  • You Need a Curly Braced Language When You Are Building Something Totally Proprietary That’s Critical to Your Business And Can’t Be Built With Any Other Language
  • Run Away From Curly Braced Languages And Choose Something Else Every Other Time

Another thing:  notice the companies profiled above that have created their own Component Architecture Frameworks or Core Technology.  Google has core technology in spades.  Facebook has a system that lets them write components in any language they choose.  Amazon also allows multiple languages so long as a few core functions are adhered to.  Isn’t that interesting?  These guys want to be Polyglot Programmers, and they’re investing valuable resources to make that a reality.  This is all part and parcel of the “meta” thing too.  The realization that to fully utilize computers, you must be facile at manipulating the fabric of the programs themselves, and not just the data they are processing.  Adopting a polyglot view positions these vendors better to offer a platform, because it means they can allow others to use the languages of their choice.  There are a lot of benefits to being language agnostic!

Polyglot Programming is becoming increasingly well accepted in an era when the Curly Braced Languages (Java, C++, et al) bring little to the Web 2.0, SaaS, and Multicored Crisis parties.  Those languages are too low-level.  There is no support there for multi-tenancy, web pages, security, scaling, or any of the myriad of problems one encounters when building a Web 2.0 or SaaS business.  You have three choices:  write all of that yourself and pay the 70% overhead tax or become a Polyglot Programmer and minimize the overhead by choosing the best tools for the task and leaving your Curly Braced Power Tools safely in the workshop only to be brought out when some highly custom proprietary work needs to be done.

Related Articles

ESB vs REST (Another Case for Multi-Language Programming)

About these ads

11 Responses to “Who Doesn’t Love Java? (You’d Be Surprised! -and- Part 2 of the Tool/Platform Rants)”

  1. [...] Comments Who Doesn’t Lo… on A Multicore Language Timetable…Who Doesn’t Lo… on 70% of the Software You Build …SAP’s A1S Brin… on Protected Game Preserves Help [...]

  2. [...] Recent Comments It’s a Huge We… on SAP’s A1S Brings Competi…It’s a Huge We… on Google Apps Can Win in the Ent…smoothspan on SAP’s A1S Brings Competi…Carel on SAP’s A1S Brings Competi…70% of the Software … on Who Doesn’t Love Java? (… [...]

  3. paddy3118 said

    Yesterday I was reading a blog where what seemed to be a Java advocate thought that calling Dynamic Languages ‘scripting languages’ might cause offence. No way, I’ve used both and prefer Python.
    Remember that scripting languages gestated on the Unix platform to glue together utilities written in other languages and Python is still good for that today. You can write MapReduce in C++ and give it an OO interface to Python where it can be just as well integrated as other built in types.
    You could then write your application in Python making use of even more of these ‘third party’ utilities, maybe explore the problem domain using the command line shell, all in such a short time that it gives you time to ‘throw one away’ if you don’t like your first implementation.

    I guess Sun are doing something right in sponsoring jRuby – maybe the workforce is just allowing the head guy to go play at something harmless whilst they get down to some multi-language work ;-)

    - Paddy.

  4. smoothspan said

    “maybe the workforce is just allowing the head guy to go play at something harmless whilst they get down to some multi-language work” left me ROFL, Paddy, keep it up!

    I’ve always thought the “scripting language” label was intended by the intelligentsia to damn some poor language with faint praise. It’s slightly deprecating in a look-down-your-nose-at-the-cute-little-scripting-language kind of way. Some days I almost feel like they took away the label “interpreted” while I was asleep and the next morning all those languages were called “scripting” instead.

    It’s an evil plot to maintain control by the High Priesthood of Compiled Languages I’m sure.

    Cheers!

    BW

  5. paddy3118 said

    Hi Smoothspan,
    I’m sure that they intended to “damn with faint praise”, but they are also seen to be a bit out of their depth too. Scripting is an adaptable survivor; “It gets things done”, whilst others are still considering how much to gouge their big wallet, out of their depth, customers.

    I wonder how many consultancies would keep their current insistence on Java if they only got paid out of their customers change in profits. It’s amazing how sharing more risk can shake up such cosy thinking.

    - Paddy.

  6. [...] Realize It!The Ugly Truth About the Force Platform: Salesforce’s is no better than SAP’s or Oracle’sWho Doesn’t Love Java? (You’d Be Surprised! -and- Part 2 of the Tool/Platform Rants)AboutTwo New Platform Types for Marc Andreesen, How the Salesforce Force Relates, and Some [...]

  7. schlafly said

    Here is the corrected Facebook link.

  8. smoothspan said

    Roger, thanks for tracking that down. Hope you are well!

    Cheers,

    BW

  9. [...] On SaaS/On-Demand70% of the Software You Build is Wasted (Part 1 of Series of Tool/Platform Rants)Who Doesn’t Love Java? (You’d Be Surprised! -and- Part 2 of the Tool/Platform Rants)Interview: Concur’s CEO Steve Singh Speaks Out On SaaS/On-Demand, Part 2Is The Newspaper Model [...]

  10. [...] on The Perils of Platform as a Se…70% of the Software … on ESB vs REST (Another Case for …Who Doesn’t Lo… on ESB vs REST (Another Case for …ESB vs REST (Another… on To Escape the Multicore [...]

  11. [...] Read the rest of this great post here [...]

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 322 other followers

%d bloggers like this: