Its not AppExchange 2.0. Its Apex 1.0. And it very much has the potential to change the way on-demand applications are built and deployed.
Salesforce.com is slated to announce Apex, a new Java-based application development language and platform, Oct. 9 when CEO Marc Benioff takes the stage at the companys annual Dreamforce conference in San Francisco.
Salesforce.com has essentially taken its internal development environment (Java and PL SQL), which is used to build the companys suite of on-demand CRM (customer relationship management) applications, and rejiggered it and released it as a multi-tenant development environment.
The intent is to build an ecosystem comprising millions of developers who use Apex to build many types of SAAS (software as a service)-based applications all revolving around Salesforce.com.
"This will be the Java of on demand in what its going to enable in scope, reach and depth," said Kendall Collins, vice president of product marketing at Salesforce.com, also in San Francisco. "People can create all sorts of complex logic, new modules and application procedures. They can build ERP [enterprise resource planning] and e-commerce applications, or highly intelligent applications like yield management that are optimized with algorithms."
Salesforce.com already offers a development environment as part of its AppExchange platform that includes Java-based development tools as part of the platform, which provides a sandbox for testing new components. What changes with the advent of Apex is twofold: First, some characteristics of AppExchanges customization capabilities are expanded. Salesforce.com is adding the ability to package any object or Apex code and publish it to AppExchange. The company also is adding a new API that enables outbound messages to be sent from Salesforce.com applications as a service to other services-based applications. A new workflow engine is included as well.
Second, Apex becomes the development platform for users, while App-Exchange clearly becomes the Salesforce.com marketplace it is intended to be.
While technical details of the Apex programming language are still somewhat sketchy—theyll be fully unveiled during Dreamforce—Mike West, an analyst with Saugatuck Technology and a former developer, said he believes Apex probably executes using a Java virtual machine whose purpose is to create objects that are compatible with Salesforce.coms multitenant architecture.
The way Apex works from a user interface perspective is this: On the Salesforce.com menu for developers will be a new function for writing custom code. Developers can either use Salesforce.coms IDE (integrated development environment) to write code or use standard Eclipse with a plug-in. The code is then checked into Apex, which will automatically compile it and run it on Salesforce.coms servers. The code can be associated with any object.
"Weve opened up a whole other level of access to our database, our logic, our servers," said Collins. "Instead of accessing [code] from our API, youre doing it right from our servers."
The company is going down the path of eliminating infrastructure needs for developers. Collins explains it this way: To create a simple expense management application, for example, a developer needs to use a database, an application server, an operating system and a development environment—and all the pieces on the software and hardware sides of the equation need to be brought together.
With Apex, users will leverage Oracles database, which Salesforce.coms development environment uses, as well as Salesforce.coms application server, Web server and development environment.
The goal, it would seem, is to grow Salesforce.com beyond its CRM roots. Way beyond. "They dont want to be isolated," said Saugatucks West in Westport, Conn. "They want to be Salesforce plus ERP, with all that capability based around their architecture. They want to be the platform of the future—the Internet platform for the future."
The key for Salesforce.com—or any software company introducing a platform—is to build an ecosystem that taps the language and development environment. To that end, Salesforce.com also planned to announce Oct. 9 its AppExchange Incubators. The Incubators are centers designed to help developers who rent cube space for $20,000 apiece to create ERP components on the Apex platform. Those components can be sold on the AppExchange marketplace.
The first center will be in San Mateo, Calif., in the old Siebel building. Others will follow in different locales around the world. "We have 20,000 developers now," said Collins. "We envision millions."
Developers will have to wait before jumping onboard. The Apex platform will be available as part of Salesforce.coms Winter Release; the Apex language will be available next year.
Some customers, such as Jay Contreras, president of Crimson Worldwide, stand behind the Apex effort.
"What they have done is allow the user and [users customers] to take [Salesforce.com] beyond the CRM perspective," said Contreras in Scottsdale, Ariz. "Theyre allowing users to go in and … build databases that are customized for their company."
Kory Kimball, vice president of client services at WebTrend and a Salesforce.com customer, is a bit less enthusiastic about the prospect of a new development language from Salesforce.com.
"What is the purpose? I am a big fan of the company, but we have been successful building extensions to Salesforce applications using Java and .Net technology," said Kimball in Portland, Ore. "You already can develop on-demand applications. I would have to understand it better before I train my people on something new."
Saugatucks West, however, said he believes Salesforce.com is on to something with Apex.
"If its based on Java and its simple, you have the appeal of all those objects on AppExchange," West said. "Programming doesnt mean you have to start from scratch. You can leverage the work of other people. Its like the wiki approach to development: Youll have all these different patterns—certain things to express four or five ideas—with people taking different directions to do different things."
Apex: Java but not Java
A new Salesforce.com language and platform for SAAS application development includes, as services:
* Application server
* Web server
* Development tools
* Java-based development code used internally at Salesforce.com, now open to outside developers
Additions to the platform include:
* New API that enables outbound message delivery to other service-based apps
* Ability to create custom buttons
* New workflow engine
* Ability to package any object as Apex code and publish to AppExchange
* Automatic upgrading of applications written in Apex
* Multitenant code