Sinclair @sschuller has triggered a lively debate over at Cloud U on Linkedin. Â Sinclair’s blog postÂ questions why PaaS providers “want to add as many languages as possible as quickly as possible.Â ” Â Sinclair questions the business value obtained by polyglot language support and whether development teams will see through the hype and “walk away disenfranchised.”
Funny thing about Sinclair’s post, .NET already hosts several popular languages, which benefits Sinclair’s PaaS offering. Â Why is Sinclair grumbling? Â Sinclair could easily play a me-to strategy and marketize support for Visual Basic, C#, F#, Java, PHP, Ruby…. Â While Sinclair expresses concerned about “market noise and distraction”, he is more concerned about the commoditization of PaaS through self-serving me-too marketure.
Rather than simply stating ‘multiple languages doesn’t matter’, Sincliar’s post astutely indicates language integration depth with the platform is a differentiator.Â I agree.Â While I understand some me-too vendors want to tap into the Java ecosystem, building a Cloud Native Java application platform requires more than just hosting a JVM and promoting ‘git push of war files’. Â Vendor ‘me-too’ press releases without clearly expressing differentiating characteristics is starting to confuse expert analysts like @krishnan.
Deep language support requires overcoming a few integration and capability hurdles:
1) integration with service registry via reflection and instance discovery
2) setting business level transaction scale limits and billing policies
3) effective garbage collection and lifecycle management
4) building multi-tenancy into a shared everything container
5) parallel language extensions to distribute workloads and queries without resorting to semaphores, mutex, fork/join
Because Java is clearly the #1 language, Â I can understand why PaaS vendors are adding Java support. Â Are me-too vendors Heroku and Appfog searching for market viability via a scattergun language integration strategy targetting Java developers, or are they bringing innovation into the Java community? Â Are they attempting to adopt innovative languages and programming models which facilitate better resource pooling, scale, and rapid elasticity? Â Â Support for Pig,Â Bloom, Scala, REST, distributed cache, and Akka would actually be more intriguing and visionary. Â A vendor who describes deep support for the Thirteen DwarfsÂ or Parallel programming patternsÂ while reducing adoption barriers would make me take notice.
The vendor who shows developers how Java applications can be forklifted into the Cloud AND improved to maximize cloud characteristics (i.e. remove resource bottlenecks, increase performance by parallizing workloads) will be the winner. Â If we don’t watch out, Microsoft will out innovate us all.