Salesforce.com is not a bad platform. Its APEX and SOQL scripting languages are pretty mature and powerful. Even without using these advanced tools an average user can usually accomplish quite a lot with Salesforce right out of the box by following simple guides and documentation.
This makes Salesforce a decent solution for a limited range of applications. It is great for single-user CRMs or simple line-of-business applications without too many expectations. For everything else there are usually more flexible, better performing, and less expensive options with fewer strings attached.
It begins with Salesforce.com's controversial "No Software" pitch for their hosted software platform. This is problematic, given that Salesforce.com is a multi-tenant software platform. Yes, while it is true that not much software (besides an operating system and a web browser) is required for you to download or install or maintain to create a basic salesforce application, the software is still there.
The responsibility for direct development, deployment and maintenance is shifted away from you. However, with that responsibility you have also given up control, ease of access and ownership of your data and proprietary business logic. You now also have to worry about performance constraints of a multi-tenant environment.
In order to do anything really useful with Salesforce you will still have to do what you normally do in order to develop software
You have to download and install tools, learn languages, obey computer science laws and hardware limits, ask community for advice, and etc.
So with Salesforce, you are told "no-no, no software" while you go through many classic software development motions in a smaller, make-belief "no-software" world Salesforce created for you. This world has a fraction of most traditional software development communities and costs a fortune in recurring subscription fees.