Over the last number of months I have dedicated many hours of my life to creating websites in "Umbraco". Rarely as a developer do I get so enthusiastic about developing against a product such as this. So, what makes Umbraco different I hear you ask? The keyword to Umbraco's success has to be flexibility.
Many other Content Management Systems (CMS) try to shoe-horn as much pre-built functionality as possible into the product, hoping for that ultimate "out-of-the-box" website development experience. While theoretically this sounds like the ideal solution, in reality this causes limitations in the delivered websites. Rather than creating a website to fit a customer's requirements, these requirements often end up having to bend in order to fit the out-of-the-box components of a CMS.
Umbraco's approach is different. There is very little functionality automatically provided for the "front-end" of a website. Umbraco concentrates more on its key goal: to provide an excellent Content Management System (or "back-end") for website editors, rather than making a mass of "add-on" functionalities. Umbraco provides a fantastic administration system for website editors; and a very easy way for developers to create necessary and bespoke functionality quickly and efficiently.
As a developer Umbraco gives me a lot of control. No longer do I have to struggle with extra unwanted markup being added to my code. Nor do I have to spend 80% of my time trying to make some component work that's not really suitable for the task or requirement in question (like putting a square peg in a round hole).
This is not to say that there isn't a lot of pre-built functionality for Umbraco - there is. Umbraco has an amazing online community behind it. The community produces many extremely useful packages of "pre-packaged" functionality - many of which come complete with source code for easy modification by the developer should the package not meet a customer's requirements entirely. Should a developer have a query on Umbraco, or any of these pre-built packages, we can get answers within a matter of minutes - either on the community website or via twitter (@umbraco).
Another aspect of Umbraco that keeps developers happy has to be that it is created in industry-standard technologies. Using ASP.net, C# (or VB.net), XSL and more, means that any developer can pick Umbraco up and start working with it. No more CMS-specific scripting languages!
Overall, I would have to say that Umbraco has completely changed my perspective on the creation of websites. Starting from scratch is not the way forward; neither is settling for a one-size-fits-all solution. Being able to create websites on a platform that supports industry-standard technologies, with an intuitive content-editing interface and having the flexibility to meet any customer requirement, is definitely the way of the future.