The biggest complaints about Sharepoint?
As this is a Developers Site, let's talk development:
Insane Development Requirements: You must have a Windows 2003/2008 Server as your Workstation, you really should be local Administrator on it. (Yes, there is a Workaround to Install Sharepoint on Vista, but that's not officially supported. And no, I do not consider "Develop on a Workstation and Upload your code to the test server" an alternative.)
SPWeb/SPSite.Dispose - You usually dispose, except if you don't. And if you dispose when you should not, bad things happen. Unfortunately, it is not really clear when to dispose and when not, there are a variety of Edge-Cases
Debugging/Error Logging. No comment on that, i'm too busy walking through the logfile to write my complaints in detail
Solution Deployment. The Creation of the .xml Files is not really well documented and .ddf Files feel like it's 1993.
Documentation, or more the lack of. What does SPSchedule.EndMinute actually DO? Will it forcefully end a running job? Most of the MSDN Documentation is incomplete or plain unhelpful.
CAML. ARGH! Look at this example of a simple CAML-OR Query. This abomination of "SQL for Sharepoint" is complicated, unintuitive, error-prone, and if you are doing it wrong, you get helpful error messages like "Cannot complete this action"
And one not development related issue:
Backup/Restore. Try backing up the entire farm, including the Configuration Database. Ok, backing up is easy. Now, try to restore it...
Microsoft calls Sharepoint "A maturing Product", which essentially means: It does do a LOT of things really well on the end-user side, but on the Developer and Sysadmin side, I think I have thrown more profanity at Microsoft than on any other company in history... And given the fact that Sharepoint is so expensive, I had expected a bit more from a product that first launched in 2001...
But overall, I think I'm happy with it, because as long as you use Internet Explorer and Office 2007, it offers a really neat and tight integration.
Edit: after an additional 18 months of leading one of the largest Sharepoint WCM deployments in the world, are these reflections still true? Yes.
I can't speak for all developers, only myself (but I suspect I'm not the only one). I have been working deep down in the EWCM side of Sharepoint/MOSS for about two 3.5 years now, and it has been the most wholly unpleasant of my career from a technical standpoint. I love my job, my company, my coworkers, my environment but the platform is a nightmare.
I struggle to fully articulate objective reasons why this is the case, but ultimately it's just not rewarding. Most of the time we developers tackle a problem and get satisfaction out of mastering the system. However, the more I learn about Sharepoint and the more I feel I've "mastered" it, the more I wish I didn't know anything about it. (Whether it can actually be mastered is another discussion altogether).
It's fun and easy to knock the product as crap, but I don't know the people who wrote it or why they designed it the way they did, and they may have had good reasons. It is a solid document sharing/collaboration platform. However, Microsoft has tried to make it so much more than just that. At an architecture astronaut level, it might seem like the fundamental patterns of a document management system are also the good basis for things like, say, an enterprise web content management system - so they built that on top of it. But in practice that may not be the case, and indeed there is a good bit of friction trying to force an EWCM paradigm to fit the Sharepoint model.
Sharepoint is touted as an application platform, but its usefulness ends at making very simple, basic web-part-widgets that get dropped on to a page. If you need to do deep, core application development using Sharepoint and MOSS as the foundation, it is extremely painful.
It was also shipped prematurely. Important things like application lifecycle management, maintenance and enhancements for systems built on top of Sharepoint seem to be afterthoughts at best. Nothing was built with post-deployment changes in mind. It also breaks some really useful things that come out of the box in ASP.NET, like donut caching.
Tools support is only now starting to catch up. Visual Studio 2010 will have some nice tools for Sharepoint development, but that means the community has spent more than 3 years hand-tweaking hundreds of overly sensitive XML fragments and using the command line for complex deployment work.
Architecturally, the system is extremely fragile. It's a black box, with many moving parts which are clearly loosely coupled, but the precise nature of the interactions between various subsystems is opaque at best, and it is alarmingly easy to take a MOSS site down. A bit anecdotal, but out of the maybe few dozen production deployments we have done so far, something different has gone wrong inside MOSS every time. A timer job fails to kick off, one of the servers in the farm doesn't get all the right files, the content database gets locked or worse.
I could go on and on (I might come back and add some more) but I think my point is clear - Sharepoint is great to pop straight out of the box and onto a server for collaboration and document management. Nothing else. The attempts to make it do more than that is precisely what has broken the souls of so many developers.
From StackOverflow, more info please visit http://stackoverflow.com/