Wednesday, July 08, 2009
« Chris Sells finally gets VB (I mean dyna... | Main | Silverlight 3 and CSLA .NET 3.7 »

I’ve observed, in broad strokes, a pattern over the past 20 years or so.

At one time there was DOS (though I was a happy VAX/VMS developer at the time, and so didn’t suffer the pain of DOS).

Then there was Windows, which ran on DOS (sadly I did have to deal with this world).

Then we booted into Windows, which had a “DOS command prompt” window, so DOS ran on Windows (and the world got better).

Windows lasted a long time, but then came .NET, which ran on Windows.

I always expected that we’d see the time come when we’d boot into .NET, and Windows would run on .NET.

I no longer think that’s likely. Which is too bad, because that would have been cool.

But in the late 1990’s there was the very real possibility that the browser would become the OS. The dot-bomb crash eliminated that debate, robbing the browser-based company’s of their funding and allowing Windows, Linux and Mac OS to continue to dominate.

In the past 2-3 years though, we’ve seen something different. Flash/Flex/Air, Silverlight and Google Gears have shown that the “browser as the OS” idea didn’t go away, it just went to sleep for a while.

Now I’ll suggest that there are really two camps here. There’s the Google camp that really wants the browser as the OS. And there’s the Adobe/Microsoft camp (can I put them together?) that realizes that the technology of the web is really a stack of hacks, and that it is high time to move on to the next big thing. My bias is clearly toward the next big thing, and has been since the web started being misused as an app platform in the 1990’s. They are proposing the mini-runtime-as-the-OS concept, using the browser as a simple launch-pad for the real runtime.

But either way, the concept of a “client OS” has been fading for some years now in my view. Or conversely, the concept of “all my apps run in ‘the browser’” has been ascending steadily and rapidly over the past 2-3 years.

And I’m OK with this, because we’re not talking about reducing all apps to stupid browser-based mainframe-with-color architectures like the web has tried to do for over a decade.

No! We’re talking about full-blown smart-client technologies like Silverlight, where the client application can be an edge application in a service-oriented system, or the client tier of an n-tier application. We’re talking about the resurgence of the incredible productivity and scalability offered by the n-tier technologies of 1997-98. We’re talking about getting our industry back on track, so we can look back at 1999-2009 as nothing more than a “lost decade”.

(can you tell I think the terminal-based browser model is really lame?)

Does this mean that Windows, Mac OS and Linux become less relevant? I think so. Does this mean that Silverlight is the most important technology Microsoft is currently building? I think so.

Consider that Silverlight, in a <5 meg runtime, provides everything you need to build most types of powerful smart-client business applications. And consider that these applications auto-deploy and auto-update in a way that the user never sees the deploy/update process. Totally smooth and transparent.

Consider that you can write your C# or VB code and run it on the client. Or on the server. Or both (see CSLA .NET for Silverlight if you want to know more). You don’t need to learn JavaScript. You don’t need a totally different language and runtime on the client from the server. Silverlight provides a decent level of consistency between client and server, so you can reuse code, and absolutely reuse skills, knowledge and tools.

Google is totally on the bandwagon of course. Many people have seen their strategy for months, if not years. And we’re now seeing it come through, as they start to make their browser is the OS play in earnest.

What’s interesting to me, is that in either case – the browser-as-OS (Google) or the mini-runtime-as-OS (Silverlight) – leaves the previous generation OS concept (Windows/Mac/Linux) out of the loop.

Windows 7, perhaps the best version of Windows ever created, might be the last great hurrah for the legacy OS concept.

I mean all we need now is a Silverlight-based version of Office (to compete with Google Apps) and the underlying “OS” beneath Silverlight becomes rapidly irrelevant...

Wednesday, July 08, 2009 12:59:00 PM (Central Standard Time, UTC-06:00)
While I totally agree with your analysis I think there is one essential aspect you take as a given, but which, in fact, is very unclear.

You write "Consider that you can write your C# or VB code and run it on the client. Or on the server. Or both (see CSLA .NET for Silverlight if you want to know more). You don’t need to learn JavaScript."

I think that's most important point here because, in fact, Google bets on the opposite statement - "You don't need to learn VB or C#...".

At this moment it absouletely unclear which bet finds more developers to answer.

John
Wednesday, July 08, 2009 1:34:18 PM (Central Standard Time, UTC-06:00)
I think HTML5 actually adds a lot of the same features as Silverlight, including vectors graphics. So I wouldn't be surprised if the end result is largely the same frankly, only deployed with the browser (since it's natively part of the browser).

One other thing I think is important is an upgrade to HTTP! Something bi-directional so you can have a true push/pull application instead of only polling would be huge.

I would love to see web applications evolve into something more like Second Life. Except distributed the way web pages are distributed today, so everyone has control over their own applications. It would also be nice if webapps could install shareable libraries as add-ons. So you wouldn't have to distribute copies with every application.
Wednesday, July 08, 2009 3:09:00 PM (Central Standard Time, UTC-06:00)
RE from above:Consider that you can write your C# or VB code and run it on the client. Or on the server. Or both (see CSLA .NET for Silverlight if you want to know more). You don’t need to learn JavaScript,

A great man once wrote: 'In the end, my point is simple: don’t be a language bigot. Every language out there, VB, Python, C# and more, brings something unique and beautiful to the world. We can only hope that our language of choice (whatever that is for you) has an architect with an open mind, who is willing to bring the best ideas into each language… '

:-)
Wednesday, July 08, 2009 3:44:13 PM (Central Standard Time, UTC-06:00)
@David - I was about to point out the same thought...
Wednesday, July 08, 2009 4:35:27 PM (Central Standard Time, UTC-06:00)
Jason, yeah I was just kidding really - it's because I read Rocky's two posts so close together.

Rocky - yes indeed a 'SilverOffice' would indeed be a good idea. I have clients reluctant to adopt Silverlight, and a major bet from Microsoft would certainly help the case (plus keep me out of the hell of JavaScript for the forseeable future :)
Friday, July 10, 2009 11:50:30 AM (Central Standard Time, UTC-06:00)
My point with not learning Javascript isn't that Javascript is a bad language (it has some very cool features indeed!).

Rather, my point is that you can minimize the number of tools/languages you need to learn/use to build a given application.

Unless you can use Javascript on your server, with a similar overall runtime API to the client, you need to learn client-side coding, server-side coding and database coding - each with rather different tools, languages, etc.

The advantage of Silverlight is that the .NET API is pretty consistent on client and server, and the language is consistent on client and server, and the tools are the same on client and server. So you really need to learn two languages (SQL and one other), one set of tools, and one API. The overall platform is simpler and more unified.
Thursday, July 16, 2009 2:42:13 PM (Central Standard Time, UTC-06:00)
I agree with your assessment completely.

Although I do see a crossroads coming with Silverlight. No one likes switching gears writing apps in different languages in different tiers.

Microsoft is approaching the problem by providing a similar runtime/language on the client that has been available on the server.

The crossroads is Google is doing the inverse, working hard on javascript/html to make it a viable client with a probably server side javascript framework in development.

I think .Net is the better technology, I like javascript, but give me static typing any day. The problem is ,and this can be seen throughout computing history, the better technology doesn't win, the most popular one does. MS has created a lot of bad will over the years, and I see this come through all the time when you see people refusing to install Silverlight because it came from MS not because they don't like how it works.

I hope in 5 years we are all coding in a unified version of .Net that runs in the browser or the server, but I will not be surprised if we are all coding servers and rich clients in javascript either.
Justin
Sunday, July 19, 2009 7:06:47 PM (Central Standard Time, UTC-06:00)
I have heard the new browser office isn't going to use Silverlight.

I think that is too bad, would have been a real feather in the cap for MS and Silverlight.

I sure hope they can make some groundbreaking movement with Silverlight so it can catch on in the same manner that Flash has.

With the out of browser support, mesh support, etc... I see it becoming very entrenched and a powerful technology.
Comments are closed.