There’s a notable absence of (conclusive) studies comparing the current acceptance rate of Heroku, the fast-growing cloud platform for dynamic language-based apps, to that of Windows Azure, DotCloud, CloudFoundry and the numerous other players in the suddenly stormy PaaS space. Perhaps only now are these players beginning to be seriously compared against one another for features and service levels.
What Heroku has going for it are three differentiators: 1) extremely simple app deployment, almost turnkey for anyone who already uses Git (for a Windows guy like me, there may be one or two extra steps; 2) as solid a commitment as a company can make to dynamic languages like Ruby, having hired the guy who created it; 3) an “in” with enterprises that would otherwise think Clojure is a kind of paper clip, by virtue of being acquired last December by Salesforce.com and forging a partnership with business consultancy Accenture last April.
Oh, and there’s one more: 4) It’s the only cloud platform for developing Facebook apps, as well as Force.com/Database.com Java apps. It’s a platform for making stuff for platforms.
“I see the platform business being in a once-in-a-decade transformation,” says Byron Sebastian, Heroku’s CEO, in an interview with RWW this afternoon. “That transformation is driven by the move to cloud, to build social apps, mobile apps, real-time applications. Developers are saying, ‘Look, the ten-year-old technologies from .NET or Java Enterprise Edition weren’t really designed for this new world.'”
The principal Heroku runtime stack in use today is called Cedar. It presently supports Java, Ruby (where it all started for Heroku), Python, Clojure, JavaScript with Node.js, and as of three weeks ago, Scala. Developers use the git versioning tool to create repositories for code in any one of these languages, and to push changes upstream to those repositories. It’s only slightly more complex than saving a file.
The product is a unit of work that Heroku calls a dyno. Scalability on the Cedar platform becomes a matter of adding more dynos.
In a post for Heroku’s company blog last August, co-founder Adam Wiggins made an interesting case: The reason many IT shops end up standardizing on a single language or cluster of languages, he says, is because using the unique tools necessary to deploy an app on one of these platforms is a skill in itself. Different languages have unique dependencies that force their deployment tools to have to behave uniquely, perhaps even oddly.
“The result of all this diversity is that the safe bet, especially for large organizations, is to standardize on a single language and avoid (or even outright forbid) development in any others,” Wiggins wrote. With Heroku’s PaaS platform enabling essentially the same deployment model (a stupefyingly simple one, as deployments go) for a sizable, and growing, number of languages, new possibilities are created for reassessing the value of such stalwarts as Objective-C and Lua. Heroku calls the outgrowth of this deployment model polyglot.
“Polyglot programming allows using the right tool for the job, offering substantial gains in speed and agility of development,” Wiggins continues, “but the switching cost of changing out the entire stack of deployment, scaling, management, and monitoring infrastructure necessary for an app written in a different language creates an intractable obstacle to reaping the benefits of polyglot.”
“We are strong, strong believers in open source, in open standards, and in open languages,” says CEO Sebastian, “and we feel strongly that innovation at the level of language and frameworks is best done in a transparent, open source way. The differentiation that comes with Heroku is in the underlying platform that lets you scale from handling tens of users to ten million users instantly, that provides that seamless experience for developers to build locally, then with a simple git push
from the local git repository to the Heroku repository, have it be deployed and live. We differentiate ourselves at the level of our cloud app platform, rather than at the level of languages and frameworks, because we believe that openness is an important principle in our industry. It’s in our blood.”
Deploying to a different Web
Indeed, Heroku gave itself a direct transfusion of open language “blood,” with the hiring last July of Ruby creator Yukihiro Matsumoto as its chief architect. RWW gave Sebastian a lambasting of questions about the advantages Heroku might give to Ruby as a result, perhaps in becoming perceived as the language’s chief architect. The CEO shot down every one, saying the hire wasn’t about acquiring Ruby or its brain trust, but instead to improve the design of a platform that can make better use of Ruby, while spreading those improvements equally to Heroku’s other “first-class citizens.”
The incorporation by Heroku’s customers of what might be called the Polyglot Principle, Sebastian tells us, is giving rise to a more curious, perhaps even ominous, phenomenon: Rather than center their objectives around individual languages, they’re focusing on producing apps for an individual platform. If you’re thinking that platform is the Web and HTML 5, think again.
“What we see when we talk to departments of large companies is that, as businesspeople, they’re not focused on what language an application is being built in. They’re saying to us, ‘Look, we need to have a presence on Facebook. We need to have a compelling experience on Facebook for our customers, and we need to do it as soon as possible.'”
While Facebook is, at one level, another Web service running on HTTP, the Facebook Platform is a potent, very visible competitor to the Web in the corporate mindset. From the CIO’s perspective, Facebook is the alternative to the Web – the faster, more popular, less expensive way to reach a broader audience. So the shift in Heroku customer interest is moving toward application platforms – to some extent also to Force.com, operated by Heroku parent company Salesforce.com, but to a very large extent toward Facebook. And these customers can’t wait even twelve months.
One of those customers who couldn’t wait was Toyota, whose Toyota Friends service – a kind of social network for one to friend his automobile and have meetups with all the others – became a design win for both the Heroku platform and Facebook.
“I think there’s definitely a shift in these companies’ priorities, in the sorts of applications they want to be building and the experiences they want to have for customers,” Sebastian remarks. “More and more, you see big brands inviting customers to their Facebook sites rather than their home page. You see big brands having opportunities to do more innovative things around their products and services by using these social applications.”