‘Proprietary’ Misses the Point

Even though Apex Code has been a GA tool since last summer, it’s still news to many prospective developers and even to many salesforce.com customers — and when people first encounter the world’s first language for a multi-tenant execution environment, I still get puzzled or even aggressive questions about why Yet Another Programming Language is needed. About a year ago, Peter Kastner (then at the Aberdeen Group) put that concern in canonical form with his comment that clients of his "like the idea of opening up the application to custom integration, but are perplexed over why salesforce is inventing a new
scripting language when Perl, Ruby, and Javascript are already well
understood by enterprise developers."

Among hard-core code cognoscenti, it’s perhaps the conventional wisdom that Ruby, Perl, or some other prepended-P patois like Python or PHP  are today’s "well understood" programming tools — but "Little Tutorials" blogger Daniel Pietraru challenges that perception with his well-researched analysis of programming language success. He concludes, if I may summarize, that languages succeed when they combine familiar syntax, really good tools, and the prospect of enabling "earth shattering improvement in the life of…programmers and projects." Hello, world, meet Apex.

Viewed through Pietraru’s perspective, Apex Code takes on new aspects. It’s not a niche tool for a proprietary platform — rather, it’s a Java-like language  with an Eclipse-based tool ecosystem and excellent facilities for unleashing immense gains in developer productivity and enterprise project success.

It’s no small thing to be a member of the C/C++/C#/Java family, syntax-wise. Pietraru estimates, from various independent metrics, that this family of languages accounts for roughly half of all programmer mindshare, while fascinating and powerful tools like Python, Ruby, Lisp/Scheme and Smalltalk have a combined share of less than 8 per cent. If someone claims to be a programmer, the odds of his or her being able to read Apex Code pretty much on sight — and understand pretty well what the code is doing — are considerably better than even.

It’s likewise no small thing for a language and platform to be well served by Eclipse. Research released this month by Evans Data found an Eclipse-based development environment rising above respected and well-supported alternatives such as Microsoft’s Visual Studio and Sun Microsystems’ NetBeans. The Eclipse-based Force.com IDE is an attractive way to enter the cloud, as I discussed in a video interview (taped at our office overlooking Sydney’s Darling Harbour) last autumn.

But does Apex Code pave the way to "earth shattering improvement"? Don’t take my word for it: ask the developers at CODA plc about their better, faster and cheaper project delivery. Moreover, ask ZDNet blogger David Berlind about the abstraction power of Apex that led him to conclude, "staying with one of
the other all purpose languages would probably have done very little to
fix the lock-in problem [but] might
have sacrificed some of the optimizations that empower developers to
more quickly and easily harness the salesforce platform…salesforce.com
ultimately made the right choice for itself as well as its customers."

Shunning Apex Code today, because of a perception that it’s proprietary, would be as big a mistake as shunning Java would have been in 1996. As errors go, I’m not sure they get much bigger.

May 30, 2008