I’ve been musing about the future, so forgive me for a bit of crystal ball gazing.
For years we’ve been building complex software systems, confidence that the underlying hardware was getting quicker and quicker courtesy of Moore’s law. This still boggles me; I stopped being a professional electron herder many years ago and at the time we were talking about the feature size on silicon dice getting down to the heady depths of 1 micron. There’s now people talking blithely about features in the region of a tenth of this size and this week there’s an announcement from HP that they’ve finally managed to fabricate the famed memristors, or at least one type of them, on silicon offering the hope of even higher densities. (Although, to be fair, memristors are not transistors which is what Gordon Moore was actually talking about.)
Continue reading Exciting times ahead
So often we hear people saying they’re “architecting” some piece of software, or that they’re a high-powered architect of some form? I was musing what that should mean. At least one colleague insists that it’s just a pompous word for design, optimised for use in proposal boilerplate when you’re trying to aggrandise your role in life.
I’m not so sure, but there clearly is something called software design, and it’s really closely related to software architecture if that’s a separate issue.
After some thought, I’ve decided (I’ll probably change my mind soon) that software design is about designing those parts of a system that address the system’s functional requirements. Architecture, on the other hand, is about designing a system so that it meets that system’s non-functional requirements.
So, for example, if I’m designing something so that orders are properly sent to the billing engine, or so that the aircraft’s elevators move to the correct angle then I reckon that’s design. If I’m adding a write-back cache to an enterprise system so that it works effectively with 2000 simultaneous users when it used to support 5, then I reckon that’s architecture.
Or am I just still being pompous?
I was reading something about a new OS called Inferno. (See Inferno.)
At first sight it’s an OS designed for ease of building cross platform distributed systems. There’s nothing new in that of course, but it looks like a decent attempt at doing everything in one place. The website’s got “screenshots” on there though which seems a bit odd to me in that it equates “OS” with “user interface” which rather loses sight of the core issue. Continue reading Out on a Limbo