Over the past few weeks, I’ve been playing with and learning SharePoint at my place of work. While I haven’t yet done any real development work with it (i.e. touch code), I’ve played with libraries, lists and InfoPath form integration. During this time, I’ve development are rather negative opinion of SharePoint and as a result, Microsoft in general.
Speaking very generally, I find SharePoint lacks any clear design goal. It incorporates many abstract concepts such as lists, libraries and sites, and tries to make all the power and flexibility of sharepoint available in a web interface. As a result, setting up sites and libraries seems to be too complex for most users, while at the same time being too rigid and cumbersome for technical administrators and developers. As a general observation when it comes to software systems, it seems the more power and flexibility you try to make available through the user interface, the less developer friendly the system becomes. This doesn’t always have to be the case, but with most software it is. SharePoint has gone the route of making as much as possible available via the user interface to make it manageable by end users, but unfortunately, it seems Microsoft have missed the sweet spot and have awkwardly positioned SharePoint between “developer-friendly” and “user-friendly”, as a result making the product difficult to use for both parties, catering only to a small user base of savvy end users.
I’m wondering if this view is common amongst other web developers who have had to get there hands dirty with SharePoint, or if I’m just easily frustrated by such unnecessarily complex and cumbersome software systems. My view of web applications has always been that web apps should be both light on the client, and light on the server, in terms of footprint. Web applications from the clients perspective should be able to run on low-powered machines using standard web technologies like HTML, XML, CSS, HTTP, etc, and should be able to present relatively complex data in a light and simple form, while from the server perspective, should require minimal disk space and low performance overheads when not being heavily utilised. SharePoint seems to fail miserably at both of these ideals, and I just totally disagree with the Microsoft approach to web-based applications.
I’d just like to gauge a few opinions on SharePoint and my ideals, from fellow web developers or otherwise the general Sitepoint community.