How long is your measuring stick?
I received an email from Salesforce.com earlier this week that proudly proclaimed there are now 1 billion lines of APEX code running in production.
I was immediately struck by that staggering number, but not in an awe-inspired “Wow, that platform is amazing!” sort of way, but instead in a “They must be joking!” sort of way. :-)
Big numbers get attention, particularly at Salesforce. I can understand why the Force team feels the need to put up some big numbers: last year’s acquisition of Ruby on Rails PaaS startup Heroku for an extremely high multiple of revenue has to have shaken the Force.com team’s confidence. The deal delivered some very clear messages:
- Force was not performing to expectations
- Salesforce felt the need to plot a new future
- Large, meaningless numbers mesmerize the Salesforce management
It seems as though the Force.com team decided to join in with it’s own large but meaningless number!
Reading the blog post and applying some simple arithmetic begs a few questions:
- 8 million tests. That sounds impressive, but...
- 125 LOC/test is quite low by modern standards.
- Do the BILLION lines of APEX code represent just customer applications?
- With more than a MILLION lines per day average (2 million a day now, assuming linear growth), why buy Heroku?
Clearly, something is fishy.
Given that demand for APEX programmers is about 1/3 that of Ruby developers, you’d think that there would be three times as much code being written in Ruby as APEX. Yet I’m confident that Ruby developers are writing a lot less code and getting a lot more done. That’s what I call a win/win situation! :-)
Let me state this clearly: lines of code is a generally meaningless metric. Given that, few will argue that higher line counts are better than lower! You don’t have to take my word on this: if you want to see into the future, check out the incredible work Alan Kay and his colleagues are doing at Viewpoints Research Institute by reading their 2010 summary. They’re working on building an entirely new operating system, including productivity software, in just a few tens of thousands of lines of code!
One of the undeniable truths of publishing a competitive metric is that it needs to be unassailable. After all, once you choose to bloviate about a billion lines of code, it’d be highly embarrassing if a competitor quickly bested the number. With this in mind, I suspect that Force.com made a very wise choice in making lines of code their number. Who else is going to compete against a metric which, rather than being heralded, better belongs in the development hall of shame?
P.S. I also found it highly amusing that the press release states that APEX is a language for the cloud since it’s multi-tenanted, and there are now just 16 ways (down from 70!) that your application can be “governor throttled.” That is one of the most ridiculous bits of spin I’ve ever heard! I’ve already commented on SFDC’s fascination with multi-tenancy; this is yet another reason that multi-tenant environments are not well suited to mission critical applications.
Share your thoughts with @engineyard on Twitter