Web 2.0 (aka how to bring down the man)

[I guess it's been awhile since I wrote a post like this... I know some will flame me, some will agree, and some will ask me what the heck I just said]

So I have spent the last couple weeks trying to regularly read some blogs... I've been way behind and wanted to get myself re-integrated back into what's going on before I posted anything philosphical that I think is pertinent to the current news. 

In the last couple weeks I have been reading about Web 2.0, the recent Gates Memo, etc.  Scoble even commented on the memos yesterday.  I want to discuss this stuff a bit.  As an Intranet/Extranet Developer since around 1997 who cut his teeth programming  Client-Server apps (well sort of), I have a few thoughts on this. 

I read Mr. O'Reilly's piece a few weeks back on Web 2.0.  I've also been keeping up with MS recent adoption of "web 2.0" technology (the Live stuff and Atlas).  I've been sitting back taking all this in and trying to see where it goes.  Is it better or worse for me?  Let's also factor in things like ClickOnce.

We're being lead to believe by the Tech Media that all of this is the final showdown of the two sides... they want to pretend that its the Web guys (using PHP, JSP, Perl, etc). vs. the old Desktop folks (with Microsoft being shown as the poster child for the desktop app). 

I don't think that this is the case.  I also don't think it's old school single server/mainframe technology vs. client-server/smart client technology.  It's also not Web Services Vs. Ajax.  I could go on and on.  And, Scoble!  It's also not the college students vs. the old school developers.  It's far from that. 

If anything it's the next generation of technology.  I don't really see that much difference between a web service and an Ajax enabled page.  I can call both from a Desktop app, so I don't need a browser at all. 

Is it about services?  In some cases, yes, it is; in some cases, it is not about services at all. 

Is it about combining multiple information sources? Nope, not really.  And, yes, absolutely. 

I think the reason it's hard to tell is that innovation is happening in all the camps.  The real struggle is that the media seems to want Microsoft to fall, so they think that pushing HTML/Browser apps as the solution to everything.  The message to developers is that it is stupid to build anything but a browser-based web app; this in turn will cause the OS to no longer matter and we all can run Linux (or the Mac, etc.), and put the evil giant (aka Micro$oft) down! 

Ugggh!  Doesn't anyone understand that there are times to write web apps and there are times to write desktop apps.  Let me take a page out of my current job.  We have a Worldwide reachable system that is a glorified browser-based reporting app (I never give all that many details, so forgive me). 

I also have a set of business users who control the direction of things as well as report bugs request changes/fixes which sometimes require nothing more than a database table to be updated.  Currently what happens is that I engage our DBAs whenever something needs updated in a database table.  This makes even more people involved... sometimes these are routine items that take place on a regular basis but can't be scheduled and the updates can't always be predicted.  We are currently dreaming up a maintenance tool to take some of this stuff off of me and our DBA team (after dreaming will come design... I do work in an SDM shop after all <grin />).  We have some features in the web site that do similar things as our new tool will do.  We have however decided that the new tool will be a Desktop app for a number of reasons.  First and foremost is that we decided that there is no reason a web site user should be able to delete, add, or update data of this nature.  It makes sense that the only place you could do this is from our corporate network.  Since we have a few complicated features (stuff that is not impossible for Ajax, but way too difficult to do), we have decided to use a desktop app instead.  ClickOnce sounds awesome for this task to me!  I don't know if I'll get to use it, but I can hope. 

Let me give you a non-windows-based discussion (one I will give you a little more detail on).  I have one guy I write software for.  He has nothing but Macs in his place of business.  There are really 2 apps that I have created for him.  First of all, he has a web server running Tomcat and I have a web app that his customers use to enter data into.  I also have written a RealBasic app for him that uses AppleScript to place the data into Quark documents (he's in the publishing business).  I'm in the midst of upgrading this Mac OS X App so that it spits out XML, because the latest version of Quark reads XML.  In the next month, this will all be automated.  I will still need the mac app, and my plan is to add some additional features for him (like a data editting facility).  Why not do this in the Web app?  2 reasons really.  The first is that I don't think web-users should be able to have this level of power to control the database.  The second reason is that I'm not that good with JSP (ok, I suck... although I'm trying to get a little better with it).

So here's the point of all this.  Does the web still matter? (and when I say that I mean "do browser-based apps matter?")  Absolutely they do.  Do Windows/Desktop apps still matter?  Yep, they absolutely do!  It's my whole "right tool for the right job" speech.  Look at what you're doing, choose what makes sense.  If both make sense then choose the method that will be the easiest for you (or your team) to do.  Everything else on this matter from the tech media is pure hype trying to bring down the Man (Microsoft).

Print | posted on Thursday, November 10, 2005 7:32 PM


# re: Web 2.0 (aka how to bring down the man)

left by at 11/11/2005 12:14 AM Gravatar

I think you make some great points Jay.

I'd probably also disagree with you on a few points, but I don't know enough to be sure.

For example, simple table-maintenance CRUD. That definitely belongs in a WebApp IMO. I want to push as much of the maintenance of an app on the end client as possible. This means not arbitrarily limiting them by platform, network, or anything else I can help. Don't get me wrong, I'm not saying your decision is arbitrary. I'm sure it's anything but. Just the same, sometimes I think business decisions can be made without actually evaluating the value.

At this point, in my business anyways, there is actually very little need for desktop applications. Reporting is better on the web. Maintenance is better on the web. Process monitoring is better on the web (we can offer it as another product).

Do we have a stand-alone product I wrote to deploy updates for our websites? Yes. Would it have been better to extend the issue-tracking website to manage this? Of course!

Not everything is right for the web of course, but they're in the vast minority IMO if you rule out the "headless" processes.

But I don't work on applications intended for individuals. It would be stupid to replace your RealBasic app with a Web version. I think most people talking about Atlas and such are naturally not talking about such things though.

The problem with Microsoft's horse isn't because it's "The Man" either. That's just insulting. I dare you to find _anyone_ criticising (sp?) Monorail for anything but perhaps an incomplete implementation. The problem is that Microsoft has one model, and it's not a very good one frankly. The problem is one of marketing as if they're the only game in town (of course it's necessary, but it obviously also isn't a great way to make friends). The problem is the complexity and high cost of the platform, and the rather oblivious perspective of many Microsoft developers.

But that's just my opinion. :-)

Just the same, I think the whole "The Man" argument is a straw-man. Look at Rails. Look at Django. Look at Prototype. Microsoft isn't the focus here. They're an also-ran. It's not OSS vs Microsoft. It's more often than not Simplicity vs Complexity and the big baddie here isn't Microsoft, it's Sun and Java.

It's not Rails vs ASP.NET & SQL Server. It's usually Rails/Django/Perl/etc vs Java & Oracle.

Atlas gets some attention because it's more recent, but really it's pretty minor. Hasn't caused much of a stir in the Rails community at all for example beyond the Prototype and Scriptaculous developers being a little peeved at having their code lifted wholesale without credit by MS. But still, that was just a few postings about a month or more ago and nothin' since.

# re: Web 2.0 (aka how to bring down the man)

left by at 11/11/2005 3:10 AM Gravatar

Twice you mention that your choice of platform depended on the type of data being manipulated. I don't really follow that logic. Authentication and authorization is just as available to web apps as it is for desktop apps. I agree there are reasons to choose one platform over another (reach vs. rich UI or offline use), but I don't think I get your reason.

Should web apps be ruled out because of the "importance" of the data? Web apps are used all the time for things like banking, bill paying, shopping, taxes, etc. Do you think those things should all be done via desktop applications?

# re: Web 2.0 (aka how to bring down the man)

left by at 11/11/2005 4:37 PM Gravatar

I break out in hives when I have to mess with jsp code here.

# re: Web 2.0 (aka how to bring down the man)

left by at 11/14/2005 8:28 PM Gravatar

Nice thoughts Sam.  I do think both you and Joshua missed part of my point.

It's really not about the data; it's about the function.  My app that I will be writing in the next couple months (at my day job) needs a cpretty complicated GUI.  I agree that basic CRUD is a no brainer and it's a nobrainer if you have an environment where there are multiple OSes (and that could mean multiple Windows OSes); if it's something for internal use, I wonder why you would want to expose it to the world on a web server.

Anyway, we're splitting hairs.  The real point was that I had read the Web 2.0 article a few weeks ago and the Scoble post threw me over the edge.  I think a lot of this stuff is hype.  We have browser-based Web apps, and we have desktop apps (Windows apps, X-Windows apps, Mac Apps, BEOS Apps, etc.).  For the entire media to say "Ooooo!  The future..." I get sick of the hype...

At the heart I feel that Windows Apps are easier to write (my opinion, probably, not yours), but Windows Apps have been harder to deploy than Web Apps, so the web has won out.  Now that ClickOnce has arrived, some of that has changed.  

I will be investigating Atlas... I find Prototype interesting, but I want better integration with the client browser and my ASP.Net apps.  If all Atlas is is more of the same I may be more likely to skip it too. (BTW, I'm still loking at Prototype to see what else I can do to integrate it with my JAAJAX lib)

Email (never displayed)
Please add 5 and 1 and type the answer here: