RAD: Rapid Application Development
One of the things that drew me to the web was its immediate gratification model: make a change, refresh the browser, see the result, rinse, repeat. Over the years, I have come to love and hate ASP: its object model pales by comparison to PHP, and its support of OO design borders on pathetic. Yet COM affords it quite a bit of flexibility, and ADO is the cat's pajamas when it comes to data access. So, there I was back in 1999, humming along with my ASP when word of ASP+ first circulated...
ASP+ was the brainchild of a couple of MS ASP guys (and I can't find jack about them now) who sought to address ASP's biggest shortcoming -- it's a scripting language. They, as I recall, in two weeks made a JIT-compiling version of ASP. Oooh, ahhh... there goes ASP's biggest hindrance when stacked against JSP! There were hints of "server controls", too, that eliminated the tireless <%= %> mixed into my HTML. Then the Microsoft PR .NET Machine got wind of it, and, wham, bam, *flush* -- ASP.NET, a complete rewrite of Microsoft's web serving platform, was born.
ASP.NET suffers from Microsoft's typical affliction -- over-architecting. Now, making any sort of "smart" web page requires a Solution, a Project, a WebDAV-enabled server, a WebForm, a CodeBehind script, and a bunch of little poo directories spread about just for fun. And you STILL can't debug cross-server without having the stars aligned just so. Yes, the .NET Framework rocks all, but I just.want.to.make.a.damn.page.
It's funny, but even four years after its release (and 5 since a PDC beta), I can still sense the bloat and awkwardness of an ASP.NET web site. The back button gets jagged up nine out of ten times, form validations appear as oddly placed labels, and some developer left ViewState enabled so I get a 1MB page refresh for my troubles. Yechh.
So what are the alternatives?
PHP? I've done my fair share of hacking in PHP, and it's no picnic. "Code soup" hardly begins to describe the Perl-esque object model (which makes sense, BUT). Where the .NET Framework is a hierarchical model, PHP is the biggest, flattest tree you've ever seen. 7,000,000 top-level objects and counting. Anyway, it's an OK language, and if you miss pointer notation for some ungodly reason, it's an option because someone has coded some hackaround for you to consume just about every type of object out there.
JSP is Java, which in my mind means codebreaking compiler changes with every revision. Thanks, but no thanks. We danced that way once, Sun, and I won't have my heart broken again.
Python is cool. But that's all it is (to me): cool. As with all of the grassroots languages, there's the sense that it's due for a rewrite any day and something you wrote last week will break. I don't like that.
Perl. Heh, c'mon. Perl is soooo old school. Speaking of which, there's probably a Perl::OldSchool module in CPAN. <eyeroll> It's the same people who want CGI to live forever.
Ruby. Man, what is up with Ruby on Rails? I looked at this language back when it was fledgling and someone somewhere said "hey, check this out". I wrote a couple of pages in it and never looked back. How on Earth these people are calling it godsent is beyond me. If you're a big fan, feel free to let me know why and what language you come from, because I'd love to understand the attraction.
Matt's hackaround
ASP.NET on ASP. Ha! Okay, it's not as catchy as "Ruby on Rails" (which sounds like a band), but it's descriptive and in the same vein. Most of my front-end code is written in ASP (using ASP's Cookies), while the back-end code is accessed through ASP.NET Web Services. In this way, we can test some new whiz-bang on ASP and, if it looks like it's going to stick, work the code into the back-end services with a built-in round of refactoring.
PS
I use Movable Type for this site, which is written in Perl, because it's one of the supported blogging platforms for Windows Live Writer. Go figure.
Comments (2)
What drives me crazy about ASP .NET is it's dependence on complex XML configuration files. You develop the application on one machine, and then you want to deploy. No luck, some freakin' setting in the XML config file for the whole web server somehow conflicts with your ASP .NET application. Then you edit it. Then something else breaks - either another ASP .NET app or IIS just shows an error in another part of the ASP .NET XML configuration file.
This is one of the reasons I switched back to PHP. It takes a bit longer to develop, but at least I can deploy my application, and there's only PHP.INI and the database connection settings to worry about.
Have you tried the PHP framework Qcodo? It's absolutely fantastic, it helps organize the PHP "soup".
Posted by DriverMax | September 11, 2006 6:14 AM
Posted on September 11, 2006 06:14
Heh. There was a Big, Big, Big discussion with the product design folks at MS regarding just that -- ASP.NET's server hierarchy (and mandated folder structure) sucks.
Unfortunately, they refused to undo the system with 2.0 because "future technologies" (i.e., Indigo) _require_ that system layout.
Come to think of it, I probably should've raised the issue again when Indigo got pulled.
Ah, well, I'll keep my .NET on ASP until they fix all the stupid bits.
I've written my share of sites in PHP, but I've gotten lazy in my old age and can't give up VS.NET. All those little popups do make my life a lot easier.
Posted by MattL | September 16, 2006 8:45 PM
Posted on September 16, 2006 20:45