Q&A: Co-founder and Executive Vice President of Technology Parker Harris says Salesforce.com's new programming language and platform could be used to replace "almost everything."
SAN FRANCISCOAt its annual Dreamforce conference here, Salesforce.com unveiled a new on-demand programming language and platform called Apex. While eWEEK had previously pieced together information about Apex from conversations with customers and analysts, at the time of storys publication at midnight on Oct. 8 there were still some holes to fill regarding the specifics of the language itself. Parker Harris, co-founder and executive vice president of Technology for Salesforce.com, sat down with eWEEK Senior Writer Renee Boucher Ferguson to discuss the details around Apex. It turns out Apex suits Harris background quite well. Prior to his gig at Salesforce.com, Harris co-founded Left Coast Software, a Java consulting firm.
Apex has been compared to Java, and maybe thats not accurate. But if not, how is Apex different? And why wouldnt a developer just use Java?
Whats different about Apex is that its an on-demand programming language. By that I mean that if youre using our sales force automation [software] you obviously can get up and running, and you dont have to buy the hardware. The same thing is true with Apex: If youre a developer you can start programming.
Whats different about Apex is its running in the database, basically (its actually running on application servers)
And one of the key things you can do with Apex that you cant do with Web services is you can have transactional control of that database.
But the other thing, in terms of a language, is its really, really easy to use to write the logic, the business logic that needs to happen within the service... You can create these really complex applications really quickly.
Click here to read more about the introduction of Apex and why customers say they are excited.
How did Apex come about?
Let me tell you a story about why we created this. We really created it for ourselves. The innovation happened because we chose to build PRM [partner relationship management] on our platform, in order to push the platform forward internally.
Then we said, OK, lets build quoting. We tried and we started hitting these obstacles that were very difficult to overcome just using the API. One of those was the transactional control.
One of our architects who writes the [Salesforce.com] platform was watching this group struggling to create this quoting application and hes like, This is crazy. So this architect started to innovate
We write internally using Java and PL SQL. So we thought if we were going to write our applications on our service we need some similar model. Thats really where Apex comes in; Apex is like the PL/SQL that were using to write the platform
[Immediately] once this release is out, were going to start using [it] for internal projects in development as well as in our IT group. Were going to build an e-commerce platform, like a PayPal for our partner community. Its going to be completely on our platformall custom objects, Apex codeand our developers are on fire
Is your goal to compete against all those major programming languages that are out there?
When we started the company we initially didnt start out to compete against Siebel. We started at the low end and did a low-end service. And it evolved. We did go after low and it grew up. Were not trying to create a platform and go head-to-head with Oracle, or head-to-head with BEA.
It may evolve over time to compete against these other vendors, but thats not really our goal. Our goal is to have a platform where this [Salesforce.com] community can actually run their businesses with these applications.
Guru Jakob Nielsen offers advice on designing applications for usability. Click here to watch the video.
Is Apex targeted primarily at Salesforce customers, or do you plan to go out to all developers?
NetSuite has an on-demand programming language. How is Apex different?
Can you define what you mean by multi-tenant programming language?
Sure. So with multi-tenancy were using a single Oracle database and single code base that runs everybody. Actually we separate by geography. When you think about running code, were running code in that multi-tenancy, meaning that our application servers that service up those API requests, those Web requests, are also running code. Thats extremely important because
when I upgrade the service, Im upgrading the underlying pieces of the service. So everything is supportedthe API, the Web request and your code.
Single-tenant hosts codes for you, but youre going to have issues with upgradability. Youre not going to get all the benefits [of multi-tenancy]. When I say multi-tenant what that really means is I accept all the burden of worrying about everything for you. I accept the burden of worrying [that your code] is scalable, secure and upgradable.
Could Apex be used to replace "almost everything"?