I'm a little interested, but honestly don't know what the hell they bring to the table, all I've been able to find to describe what they do is business jargon
I'm a little interested, but honestly don't know what the hell they bring to the table, all I've been able to find to describe what they do is business jargon
The REST API allows you to retrieve metadata for a relational data model and to perform CRUD operations. The data model itself is typically created through Salesforce's web interface, although there is a Metadata API that can be used to manage the schema by uploading XML files.
There are standard objects (think database tables) for things like Users, Accounts, Contacts, Task, Events, Leads, and Opportunities (note Salesforce's history as a CRM application) which you can extend with custom fields, and you can create custom objects, and define the relationships between objects.
You can also expose custom server-side functionality as a REST endpoint by writing code in Apex, a java-like language, that runs on Salesforce's platform. This can be useful for dealing with multiple records in a single transaction, for example. The Apex code can also be managed through the Metadata API, the Tooling API, or the web interface. (Salesforce pretty much never deprecates old APIs so you can still use the version of the SOAP API you were using five years ago, for example. But this can also be confusing to new developers who find there's a lot of overlap between the old SOAP API and the newer REST API, and a little bit of overlap between the old Metadata API and the new Tooling API.)
One of the unique features of the Salesforce platform is a robust security model. Each object has row- and field-level security that can be configured through the web interface. This is particularly useful for apps used by large organizations. Different types of uses can have access to different fields. Ownership of records can role to the management within an individual's national division, for example. Your app doesn't have to enforce security. You call the API as the user, using an OAuth token, and see the data to which the user has access.
Another unique feature of the platform is that it is licensed per user. You don't scale by adding VMs or containers. It's nice to not have to think about scaling hardware, but most developers would probably rather think about scaling problems than ponder all of the convoluted licensing options Salesforce offers, much less talk to a sales rep. As a developer of an app for distribution to multiple customers, you also have to be cognizant of the various types of orgs (a company's Salesforce instance) in which your app might be installed.
If you're building a standalone app that doesn't need to be installed alongside customers' Salesforce CRM apps, and just want to take advantage of Salesforce's data modeling, security model, and API, you can use database.com, which has more developer-friendly pricing (in terms of transparency, not necessarily impact on your wallet).
Summed up, i would say they are like the iOS/appstore platform but on the cloud and only for businesses. So i can use it to track my customers then i can add an app that does appointment scheduling for me for those customers, for example.
That said, as a development platform, Salesforce is definitely a second-class citizen to being a CRM, and I wouldn't recommend using it unless you need a very specific type of application.
Let's also remember that they own Heroku, and that only 25% of the prize is about using their APIs (though I have a feeling that will be weighted more heavily).
[EDIT] - nevermind: http://www.x2engine.com