Apex Criticism

By Darryl K. Taft  |  Posted 2007-09-17 Print this article Print

Your Apex language ... Salesforce has taken a lot of criticism from some elements of the developer community about why we need another language. What do you say to them? The first thing I say is, what has been the reaction? And I run a developer community thats about 40,000 people strong, and those developers are thrilled. Theres a lot of buzz about Apex because people are talking about being able to create code that runs on a service without having to manage any of the lower-level infrastructure. Thats a pretty profound technical innovation.
I remember Telescript and General Magic. They had a similar concept, and it was incredibly complex and nuanced. But to be able to run code on the network and [having it perform] actions has been a dream of developers for a long time.
So I think by and large developers have been thrilled with what they can accomplish. And so have end users. Now there are people who are unhappy with it, and there have been some bloggers that have been unhappy with it. But funny enough, they work for SAP. So I take the feedback and comments on Apex very seriously, but at the same time, I have to look at where some of those things are coming from. Let me just speak to why Apex is what it is because we get this question a lot, which is, Why not just use Java? The answer is, if we could we would. Why didnt we just use a database and run Salesforce just off a database that we bought from anybody? Well, databases in 1999—and, it turns out, in 2007—arent multitenant. I think increasingly the technical community is aware that multitenancy is a predicate for being in on-demand and they understand that they cant just go buy multitenant technology from a vendor. Its a carrier-class technology that you have to build yourself. In fact, one of the key pieces of intellectual property that Salesforce built itself was this idea of a multitenant database. It wasnt an aim to be proprietary. It was because we believe in the benefits of on-demand, and they have to be delivered in a multitenant way to achieve those benefits, so we had to invent a lot of stuff. So now we get to this next area of programming languages. We had a way of storing the data. Now we wanted a way of acting on that data and intelligently manipulating that data, and doing all that in a programming language. I love Java. I love Java in a deep, profound way because Im a crappy programmer. And when I had to do my own memory management in C++ and C, I wasnt very good. The fact that Java ushered in an era that I could do memory management and garbage collection automatically was the only reason why I think I was able to enter this industry. So Im a huge fan of Java and I still write Java code, but Java has one problem with regard to the on-demand world: Its not multitenant. Its a very big difference to go from a single-tenant language to a multitenant language. And in a way, whats so interesting about Apex is we really inverted the relationship between code and its execution. So if I write a piece of Java code, or I write a piece of C++ code, and I write it on this laptop or any other laptop or server in a way the operating system and everything on the stack down become subservient to that piece of code. Well, you cant do that on the Internet. You cant have your server environment be subservient to a piece of code. We had to invert that relationship. So its very technically different under the hood that Apex code runs in this managed way that is always safe. What the real achievement is, is how much we were able to make Apex look like Java, and look like things that are out there, and not have to go down and require developers to require new technologies, given how different it is in its execution and behavior. So we made huge efforts to try to make this thing look and feel as familiar as possible. Are you doing anything to link with any of the new Web 2.0 technologies or companies? Sure. For us just as a philosophy—and this is something else that Microsoft could benefit from embracing a little more aggressively—we believe that innovation starts in the consumer Internet. A lot of people have problems with that because SAP, theyre a really fancy company. They have really fancy ads, and they charge a lot of money for their stuff, and if they were to go running around saying. "Our inspiration for our technology and our products comes from Amazon and Goggle," then it starts to lose its mystique and a couple zeroes on its price tag. For us, we dont have any problem saying that. And thats where we do draw our innovation. The original user interface for Salesforce.com was developed by looking at Amazon.com in 1999. We look at a technology like Adobe Flash, which is changing how people use the Internet. So we partnered with Adobe to use the Flex toolkit. And we use our SOA technology to integrate with Googles applications. And there are several Web 2.0 startups that integrate with our CRM processes. We are watching how those changes in technology are affecting the business because its happening pretty quickly. However, Im more interested in the new APIs than I am in the new tools. When you get the new APIs, thats like Christmas morning. When Google introduced their spreadsheet API, it was like, "Wow, now I can create all these integrations with Google Spreadsheet." And every week there seems to be a significant new API that comes out. This is where the next generation of new software companies is going to come from. Now its about what APIs are available out there on the network. Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel