Here’s the setup… I use ASP.NET with C# to develop in-house software
for my company.  We can get away with programming ONLY for
IE.  That’s not TOO bad of a model.  Unfortunately, we have
begun to run into certain limitations that I would rarely think about
with OS based programs.  So, I figure that I’ll rant here, rather
than at work (my boss CERTAINLY doesn’t want to hear me whining about
things like this <grin>).

First off, to do web programming, a MINIMUM of three (3) languages are
needed!  I have to know C# for the server, HTML (yes it is a
language look up the acronym!) for the basic display, and Javascript
for the user interaction.  If anything fancy is to be done with
the display page, add CSS (which is a black art in-and-of itself), XML,
XSD, and now AJAX.  Bah!  What happened to writing the server
and client in the SAME LANGUAGE?  Why can’t someone come out with
C# script to use on the client, or javascript on the server?  What
ever happened to leveraging one’s knowledge?

Second, anything interactive done on a web page is done through a
hack.  HTTP is a stateless protocol.  It was a great idea in
the beginning.  It’s now morphed into this weird transport
protocol that is still ‘supposed’ to be stateless but is nowhere close
to it.  Cookies, XMLHTTP requests, postbacks, and plug-ins are
some of the ways developers ‘get around’ the problem…  The real
problem is that we’ve extended the protocol FAR beyond what it was
designed for.

Finally, there is no standard on the browser side…  Developers
have to write specific code based upon specific browsers to get
consistent user experiences.  This causes double, triple, even
quadruaple amounts of code, and the experience is different for each
one. Try running MSN spaces on a Mac.  It works (sorta). Not very
satisfying, though.

There are solutions out there, and some more are coming.  Java’s
Applets are available right now.  The biggest issue with java
applets is that they got a bad name when they came out, oh, 10 YEARS
ago.  The machines couldn’t really run java well and the internet
transmission rate was slow, so people thought, ugh, slow program, and
takes forever to download.  That is definitely not the case
anymore, but few development shops use them.  Another solution
that is coming soon is WinFX (Avalon).  It’s Windows specific, but
it is .NET’s version of Java’s Applets.  It should be fast, as
it’s native .NET code, and the footprint should be much smaller. 
The biggest issue is that it is not cross-platform.  Hopefully,
Microsoft will get Rotor 2.0 out the door so that a Mac version of .NET
applets can show up…

Enough of my rant, I just had to get that off my chest.  Back to the regularly scheduled ‘light-and-fluffy’ programming!


3 thoughts on “I’m not a fan of Web-based programs

  1. * AJAX doesn’t really fit in the same list as the other acronyms* JScript.NET is intended to let you use "javascript on the server".* Much of the "rich internet client" solution (such as "click once") will be available in Visual Studio 2005; no need to wait for WinFX

  2. Interesting points, but I disagree…AJAX is Javascript + XML callbacks… The reason it was part of the list was because the list is a list of changes to the client interface. CSS for display, XML for the data, XSD for changing how the data is displayed, and finally AJAX for changing events to call back to the server for data. I should have made that clearer.JScript.NET… I forgot about that. I’ve also never heard of anyone implementing server-side code with JScript.NET. That doesn’t mean that they don’t exist, it just means that I haven’t heard of a project that is USING it. It may be a viable solution. I’d miss typed variables, thought <grin>.Click-once is for deploying software. Once the program is on the computer, it doesn’t need a browser. Personally, I think that’s a great solution, as ‘Click-once’ doesn’t have to be generated through a web site. The down-side is that if you make code changes, you have to ask the customer to ‘click-again’. I think that Applets or Avalon Express items will check to see if a new version exists, then download and run the newer version. This is VERY important to IT shops like the one I work in, where we don’t want the user to interact with how the program is deployed.Sometimes, it feels like our industry is chasing it’s own tail… Everything comes back around in a 10-15 year cycle. I still have to use a green screen to talk to our main accounting system. This is 2005 for goodness sake!

  3. First of all, I agree with your basic premise of not being a fan of web-based programs.The reason I said AJAX didn’t fit is that it isn’t a language. You were talking about needing three languages and then said "add CSS …, XML, XSD, and now AJAX". I agree with you, but the grammer isn’t quite right. :-)I think JScript.NET was done for backwards compatability with classic ASP (some people might have used JScript instead of VBScript). Also, probably to prove that .NET would work with a weakly-typed language. I don’t think I’d want to actually use JScript.NET either.While I haven’t played around too much with Visual Studio 2005, my understanding is that you will be able to direct people to a URL and have them "run" your WinForms application from there. "Click-once" is part of a larger system. You can already host a WinForms control in IE, and VS2005 will supposedly make that better too.And yes, it does seem at times like we keep going around in circles. XML comments in C# still don’t measure up to Knuth’s "literate programming" ideas.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s