For a company that has wanted nothing to do with software, and whose stock is in applications, Salesforce seems an unlikely company to want you to build software on its platform. But, nothing is further from the truth.
In 2006, Salesforce hatched its plan to bring a programmable environment for its CRM software under the umbrella of its Force.com platform. Force was a successful approach for partners to bring extensions and companion products to Salesforce CRM and market them under what likely was the world’s first modern “App Store,” called AppExchange. The language used to program these apps, Apex, had Java-like syntax but operated at a relatively high conceptual level, somewhat like a 4GL in the cloud. Data and metadata stored in Salesforce’s CRM application was readily available for programmers to build upon and deliver new application functionality.
At about the same time, another group of clever developers was hashing a cloud implementation of the Ruby programming language, which was taking root as an elegant and productive way to write Web application back ends. Heroku was at the right place at the right time, and with the social and mobile revolution starting to catch fire in 2007, Heroku saw an explosion in usage.
Building a large application base was also enabled by Heroku’s freemium pricing and by its multi-tenant architecture that allowed it to operate efficiently. By Dreamforce 2010, Heroku caught Marc Benioff’s eye (and about 200 million of his dollars), which was then considered incredibly rich for a company with about 30 employees (this was before Facebook acquired nine-employee Instagram for a billion).
While Force.com appealed to business developers and application extenders, Heroku appealed to Web developers. Over the last two years, the company has been harnessing these two assets to create a coherent application platform. At Dreamforce 2012 this October, we got to see some of the fruits of this labor, most of it destined for the winter 2013 release.
Supporting diverse back ends
One of the important new capabilities Salesforce showcased is a technology known as Canvas, which allows existing applications to integrate into the Salesforce world. Canvas exposes Salesforce metadata through REST APIs to other applications. To better support this type of integration, Salesforce also introduced Identity and Chatterbox to allow applications to authenticate with a single ID, and to store files securely in the cloud. Canvas can also allow new Force.com and Heroku components to be integrated into a single application.
Another important announcement was a deeper level of support for enterprise-grade Java applications. The new Heroku enterprise for Java offers JDK 7 and JDK 8 support, staging and provisioning support, a continuous-integration capability, an Eclipse plug-in, and enterprise-grade support.
Much of what Salesforce has been working on has to do with the user interface and the new devices that will play a key role in the company’s applications. Historically, Force.com applications leveraged the dynamically generated Web pages harnessing CRM data and metadata in a similar fashion to Salesforce CRM. In 2008, Salesforce introduced Visualforce, an MVC framework that provides developers with the ability to build rich UIs for their applications. Salesforce has continued to invest heavily in Visualforce, but recently it has effectively mobile-enabled the platform with Salesforce Touch, which allows mobile applications to access and integrate back-end Salesforce objects.
Based on HTML5, Touch illustrates Salesforce’s commitment to standards. HTML5 has taken a drubbing recently since Facebook switched its mobile app development to native tools and articulated some concerns around the mobile Web. HTML5 is, however, perfectly suited for enterprise applications, where it is expected to have the most impact. The investment in Touch dovetails with the company’s vision that the future enterprise will essentially run on mobile devices. Indeed, the first people of any business likely to use tablets are sales folks who have to interact with and impress customers.
Tying it together with social
Salesforce is obsessed with the social enterprise, and has invested heavily in solutions to enable enterprises to connect their employees, customers and partners through social tools. Key to this enablement is offering developer tools and APIs that allow Salesforce developers to build social applications.
Social networks are an important new frontier for marketers who want to interact with their customers in a more intimate fashion, and are thus key playgrounds for Salesforce’s constituency. In addition to providing APIs for its Chatter social platform, Salesforce has a toolkit that allows developers to integrate with Facebook APIs and data structures. Salesforce sees itself at the forefront of bringing together the mobile, social and cloud revolution into a coherent whole.
Salesforce is busy furiously enhancing its overall application platform along multiple dimensions. Its value proposition for developers has continued to increase, though a key weakness of the platform (a lack of a productive IDE support for Apex) is being addressed by some innovative partners such as BrainEngine. Finally, Heroku continues to run on Amazon’s infrastructure, leaving the task of deeply integrating the two platforms into a single multi-paradigm application platform—a task for another Dreamforce.
Al Hilwa is program director of application development software at IDC.