Wednesday, December 2, 2009

Ongoing Conversation

Brian mentions a conversation we've been having on his blague.  In conversations, Brian and I generally take opposite positions, then swap halfway through, then swap back at the end, with some modifications.  In our last conversation, I made a lot more modifications than he.

My previous post, written from Chrome OS, made the assertion that Google didn't rethink the operating system, they just threw it out entirely.  In the conversation with Brian, I mentioned it appeared they were trying to do the same with web servers.  In a couple dozen lines of go (the new Google programming language), there's a reasonably nice web server.

Brian wasn't impressed.  Not with any of it.

Which appears to be Brian's superpower.  He's a hard guy to impress.  Me, I'm easy.  But if Brian is impressed, then it's probably really impressive.  With me, it's just a flavor of the week.  His impressively dispassionate point was they weren't throwing anything out, they were just divvying it up differently.  They haven't thrown away the Operating System, they've just put it on a different computer.  And while they're doing it, they've stuck us with a sub-standard UI toolkit.  They haven't thrown away the web server, they've just put it in a library, where it's hard to see.

Good points, Brian.  Good points.  I think you've got me.  So let's explore your idea a little more.

I was mentioning, in the same conversation (or maybe a different one) that I've been doing a little bit of programming on the Arduino recently.  People ask me for help sometimes, because I've posted some code here in the past, and I try to help.  The Arduino is a little computer, costs about thirty bucks, and comes with a nifty little editor that helps with compiling and loading code onto the thing.  Really cool.  It's all open source- hardware and software, and it's pretty easy to use.

It's the only computer I use that doesn't have an operating system, but as I got to thinking about that, I realized it wasn't really true.  It does have an operating system.  That nifty little text editor runs on Linux (in my case, probably Mac and Windows for other folks), and it has a bunch of convenient stuff that you can include in your programs without rewriting.

Which is really all an operating system is, I guess.  It's just running on a different computer.

So, let me try again, Brian. What do you think about this as a paradigm shift: what if the future of computing consists of a bunch of appliances (virtual and physical) where the only "operating system" is a bunch of libraries that may or may not be used and live on a different computer?  When you run a database server, instead of being something that lives in your operating system, it's something that lives in your virtualization environment, until you put it on a real piece of hardware.  When you put it on the real piece of hardware, it's the only thing running there.  No OS, no libraries, no nothing, just the bare database.

Of course, most the time, you're using it on your desktop, with your OS-of-choice (have you switched to Windows 7 yet?), where it's running under VirtualBox or KVM or VMWare, or whatever you use.  And that's your OS.

It's kind of the opposite of what Java promised us: software designed to run in only one particular place, optimized for that place.  The wacky thing is, it will probably deliver on Java's promise of write once, run anywhere, since virtual machines are coming along so quickly.

Which reminds me, how do I distinguish from a virtual-machine-like-java that runs bytecode for a particular programming language family, and a virtual-machine-like-vmware that runs a whole operating system?

Comments: Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]