Salesforce.com describes the language as a Java-like development code enabling users to write applications that run directly on salesforce.com servers. It supports the multi-tenant virtual paradigm of the Apex platform, an application model where users and applications share a common infrastructure and code base.
According to salesforce.com, programmers can use Apex Code to create new business-logic applications, and customize or build new components to augment or replace those being used in salesforce.com implementations, among other things. Salesforce.com CEO Marc Benioff goes as far as to say that his company has cracked the code of enabling unlimited innovation on demand.
“Customers will benefit from unprecedented choice and freedom of on-demand applications for the ‘Business Web,’” Benioff adds. “Customers will be thrilled and amazed as the salesforce.com community demonstrates what is truly possible on demand.”
But is a brand new programming language that is proprietary to salesforce.com and runs only on salesforce.com servers really necessary?
According to Peter Kastner, vice president of enterprise integration at research firm Aberdeen Group, clients of his are scratching their heads at the way salesforce.com is going about its Apex Code push.
A Little Bit More Control
Unlike traditional scripting languages, Apex Code limits itself to developing applications that focus on data management and business logic. Don’t expect to build an updated version of Grand Theft Auto or Second Life modules with this language. But if you need to integrate a second or third database that needs to parse out unique strings of data from your core salesforce.com database, Apex Code not only can help you realize this objective, its multi-tenant capabilities are able to isolate any faulty code threatening to jam up your system.
Sandy Rogers, program director, SOA, Web Services and integration at IDC, says that the introduction of the Apex Code is the first wave of what salesforce.com is doing to help enable its partners to gain control and extend the capabilities of the whole salesforce.com model to fit their businesses.
“Through Apex, salesforce is offering visibility into what is needed to customize a little bit more, and I believe that that is really one of the first things that they’re trying to achieve with what they’re announcing,” Rogers says.
In addition, salesforce.com is taking a traditional database-centric sort of approach, Rogers explains.
“One of the keys for any [salesforce.com] partner would be to extend the data model,” she says. The purpose: “So that what eventually could be hosted by salesforce and utilized consistently across from a data semantics point of view with any joint type of composite application or solution, or even an integrated solution, would be having a little more flexibility around that.”
The Value Proposition
According to John Radcliffe, research vice president of CRM at Gartner Inc., salesforce.com’s Apex platform has been based on the use of metadata, interpreted at run time, to define applications. While this aspect provides overall flexibility and ease from an upgrade and maintenance viewpoint, it may not allow users to create all the functionality or have the level of granularity that they may need.
For Radcliffe’s part, the primary value proposition Apex Code offers is that it provides developers the ability to add procedural code in a variety of locations and that this code is transactional in nature. Moreover, Apex Code allows salesforce.com and salesforce.com partner developers to create richer applications on the Apex platform than they were able to in the past, when the base code was not readily available.
“You can write stored procedures in it and expose them as Web services. In some ways it reminds me of why Oracle introduced PL/SQL in the late ‘80s to complement SQL,” adds Radcliffe.
However, Radcliffe notes that a traditional procedural language is not as easy to convert into something else as metadata is, and so a degree of “lock in” occurs. Companies like Oracle are finding this to be the case with PL/SQL-based stored procedures as they move towards a Fusion Apps Java environment, he says.
Setting the Stage
For her part, IDC’s Rogers says that salesforce.com’s road map for Apex Code is akin to its road map for the original salesforce.com application and everything else that has followed it up to this point.
“They introduce some functionality and then build on top of it. What might be available in the future on this kind of environment is yet to be seen, but it is setting the stage for that kind of offering and capability. And giving a little bit more can allow an enterprise that is trying to integrate into salesforce a little more leverage or latitude,” Rogers says.
According to Rogers, salesforce.com’s initial target audience for Apex Code is its partner community and its salesforce.com customers. Through them, she says, the company will get a better sense of the complexity, scalability, and deployment capabilities of an application built with Apex Code and as a result, will be able to better judge Apex Code’s ease of use, along with its limitations.
While Apex Code may not offer the complexity some developers will need, it does offer the ability for users to develop certain applications, particularly those centering on the use of forms, around the salesforce.com on-demand model without having to link to external environments, Rogers says.
“The vision that [salesforce.com is] painting in the future is that you already have a foundation of a solution right here. You have a user interface, sign-on, navigation, reporting, a lot of basics that any application that hooks into salesforce or leverages it can take advantage of,” Rogers says. “That is its whole promise.”