|
Recently Microsoft announced some details about Visual Studio 2010 and the .NET Framework 4.0. There have also been other announcements related to a forthcoming "Cloud Operating System" that will be revealed at the PDC. What does this all mean, and is Microsoft finally heading in the right direction?
The marketing push from the folks in Microsoft around Visual Studio 2010 is that it will come with the Oslo modeling stuff. In other words, developers should be able to use high-level modeling tools to architect complex interconnected systems of services and service consumers visually and drop into the code implementation of each piece of the architecture at will. This is Oslo's goal... Whether it will be able to deliver on this promise is another thing entirely.
The .NET Framework 4.0 is going to be another incremental improvement on the existing 3.5 framework. However, there are going to be some known overhauls, and probably some overhauls that those of us on the outside looking in aren't aware of yet. Scheduled to get major improvements are WCF and WF. WCF is reportedly getting large improvements in the area of REST and POX, including a potential REST client project that may be delivered via CodePlex. It will also be getting messaging enhancements, but I haven't heard what those enhancements might be. All my information is coming from blog posts and online news articles at this point. REST and POX support already exist in WCF today, but the fact that the are getting a facelift in the next version of the framework is a damn good thing. Now if the modeling thrust being done by the VS2010 team actually includes the ability to model and develop REST services in an interconnected enterprise of modeled services and consumers - then count me in, dag nabbit.
Microsoft's clear direction is toward the cloud. You can already sync your files to "the cloud" using the Live Mesh service. If you look at the list of publicly announced PDC 2008 sessions, you will quickly run out of fingers trying to count the numbr of times the word Cloud appears in that list. Like it or not, this is the future. This has been the known future for quite some time... I remember back in the good old days of Internet Explorer 4.0, I would wear my throat hoarse trying to tell people that the Web Browser as a standalone entity is doomed to eventually disintegrate... replaced by more tight integration of the Internet with the Operating System until eventually the Internet is so much a part of the Operating System that people take its presence for granted... people will eventually get to the point where they will expect to be able to sync to the cloud, store in the cloud, compute in the cloud, and socialize in the cloud, share files with friends via the cloud, and run applications that are so integrated with the cloud that functionality never before thought possible will become ubiquitous. This is Microsoft's direction, and it is the direction of many other big players right now. The question is, who is going to be able to pull off the killer Cloud first, and who will do it the best?
To me, a Cloud Operating System is an OS that has been built from the ground up to be aware of Internet connectivity. Not just connectivity, but connectivity that can come from plugging into the home LAN, attaching to the Starbucks Wifi, or firing up the Sprint EVDO USB card, or even tethering via Bluetooth to a SmartPhone and borrowing its mobile broadband connection. A Cloud OS' file system is inherently synchronizable, allowing cloud-storage backups to take place seamlessly (think "Time Machine", but the backup storage device is in someone's data center). The file system of a Cloud OS also allows per-folder and per-file sharing with friends in the "Cloud" as well as public sharing. You should be able to designate a directory as a web folder and everyone should be able to access your web page, even when your computer is offline. Developers writing code to access a file stream will use the same API whether the file is in the cloud, on a local disk, or synchronized periodically to the cloud. Everything would be seamless and "just work". Think of the best aspects of MobileMe, Live Mesh baked into the operating system. Add to that the ability for developers to write apps that work against Cloud storage and compute grids in the Cloud using APIs that are part of the core operating system. This is what I think of when I think of a Cloud OS... We'll see if this is what Microsoft is envisioning after the PDC reveals all. If it is, then sign me up to test that sucker because it will be the biggest game-changing OS since Windows 95.
Regardless of what Microsoft is planning on doing... The future is looking pretty awesome from where I sit.
So, instead of building a next generation OS to replace the WinNT codebase
with something that doesn't annoy people and gives them a platform for all
of this advanced stuff that will make it all work well, they will waste
their time building the advance stuff on current crappy foundation. The
software stack will eventually collapse under its own weight.
.NET can fairly easily invoke C++ code, and ADO.NET data providers can do
thread-synchronized data access depending on the provider (just don't use a
provider that invokes COM objects). The "Cloud OS" is something that nobody
has heard anything about, so we have no way of knowing if this thing is
going to be based on the current "crappy" foundation.. Windows 7 is not the
same thing as this new Cloud OS thing... who knows, the Cloud OS may be a
server-only OS... Its anybody's guess at this point.
Just because Apple has a better product doesn't mean we can all drop our
day job projects and start writing Cocoa code... People building apps need
to consider who owns 92% (or whatever) of the desktop market, and if you
build a .NET app you're in the 92% and if you build a Cocoa app you're in
the 8%... Whether that Cocoa app was easier to write or more fun to write
is irrelevant if your bottom line is making money or your target audience
isn't specifically Mac users. I wish I had bought Apple stock about 4 years
ago... I'd be happily well off ;)
Presumably a good name for Microsoft's cloud-based APIs would be Web
Template Framework… to join WPF, WCF, WF and so forth.
Honestly, my wish is that MS would create good products. I'm not as
partisan as you might think. MS' technology is in shambles at this point,
and rather than focusing on fixing the problems, they are pushing more
half-baked, nebulous nerd-toys. If MS doesn't get its act together, it will
continue to have its marketshare trickle away and one day that 92% will be
50%.
The real problem with .NET on the desktop (and its lack of adoption by
Microsoft's cash cow applications) is the GC. Apple has the same view -
the GC is switched off for their major apps. I would be expecting
something to address that in .NET 4.0. Sounds like VS 2010 is taking the
plunge with a WPF based text editor. So the pressures on.
The cloud isn't about an OS or (yet more) low level services on the
internet. It's all about a cloud that can *run applications* that are
described through metadata not code. Metadata that is generated through
modelling tools (and a new language) that result in executable code in the
cloud. Applications that can seamlessly scale from 1 user to hundreds of
thousands - on demand.
If you have Live Mesh installed, look into the
"%USERPROFILE%\AppData\Local\Microsoft\Live Mesh" folder.
Alex, if you define an OS as an "environment that can run and manage
applications" , then the Cloud OS may actually qualify as an OS and might
not be just marketing hype. Time will tell. I also agree with the
commenter that said that Cloud data will be more like entities and
relations and less like files. I think, given the direction they went with
Mesh (Atom/Feeds), that the Cloud OS could expose data more like a
persistent-over-time-feed-of-feeds.
Also agree about Silverlight. Applications on your "Live Desktop" (or Cloud
OS desktop or whatever they call it) will be Silverlight apps with
mesh-aware manifests that allow them to be run from anywhere, including
your desktop, and store their data in the cloud, sync their configurations
and options to the cloud. It could be huge. Couple more weeks and we'll all
know if Microsoft is all smoke and mirrors or really has something
fantastic up its sleeve.