Too much art in software
(a post that has been sitting in my drafts folders for a couple months. not sure why…)
I really liked this quote from an interview with Craig Mundie, Microsoft's Chief Strategy Officer and head of Microsoft Research, about the problem — and overall direction — of software and, specifically, the OS. Snipped from Knowledge@Emory:
Many of the failings — not just of our software but of all large software — is that the security problems, the lack of reliability, the difficulty in maintenance, the difficulty in testing, all of these things are symptomatic of software still being too much of an art form and too little of an engineering discipline. I believe that over the next 10 to 20 years, you're going to see a dramatic shift in the way people write software.
I don't think describing it as "monolithic" or "not monolithic" will be the question anymore. Software will be built through the composition at every scale of a lot of distributed, asynchronous services. The question is: How can you specify, compose and operate those services? The operating system will itself adopt some of those models — although its role in providing an abstraction of the hardware capabilities means that it will be slightly different in that aspect. But I think that will happen.
Interesting stuff. I know the service-oriented architecture people have been saying this for quite some time, but this really goes beyond SOA and speaks more to the changing face of our computing platforms. While the initial wave of personal computing focused on the desktop, today's trend toward mobile and cloud platforms is driving development toward a more service and scenario-based design, which, in theory, means customer needs will be better met in the long run.