Main | October 2006 »

September 2006 Archives

September 3, 2006

ASP.NET killed the RAD star

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.

JSON is a step backwards

I recently attended the Connect conference hosted by Inman News in San Francisco.  It's a once-a-year event for the Real Estate technologists to get together and talk about the geeky stuff that the rest of the Real Estate community doesn't understand.  Notably present were the major web-based mapping providers -- Google Maps, Yahoo Maps, MapQuest, and, of course, Microsoft (en force).

My two missions for the trip were:

  1. Scope the announcements from the Big competitors, and
  2. Build a strategy for adding mapping to our application in the next year

Mind you, I went through the same exercise last year, but the cost:benefit ratio didn't create a compelling argument for adding any sort of data-integrated maps into our service.  Now, however, the Big guys are offering integrated mapping, and the providers (especially Google) are offering a much richer object model than they did previously.

I most wanted to hear from Microsoft: I'm a Microsoft platform coder, I'm six-ways certified, and I actually enjoy writing against the .NET Framework.  I wanted the Microsoft guys to tell me there was a reason not to use Google.

I emailed Chandu Thota the night before the conference to check on his availability and whether he was up for a chat.  He was, and we did, along with Virtual Earth Program Manager Steve Lombardi.  I explained to them how the Real Estate information ecosystem works, and offered what we, the Real Estate vertical, need from a mapping solution.

There was one point that Chandu kept hammering on -- JSON:
"It's lightweight!"
"It's object-oriented!"
"It's cross-browser!"

It also breaks this Holy Commandment of Programming that has been pushed by every major platform vendor for the past five years (especially MS):

THOU SHALT NOT MIX INTERFACE DESIGN WITH CODE.

I learned XSL for a reason: It's the Right Thing to Do™.

So why, praytell, would I make this two-step-back advance to JSON?  Bandwidth?  C'mon, if you're sending 500K in data during a single action, then you have an application design problem.

I went on to prove this point by mocking up Google vs. Virtual Earth maps, with a single dataset through various methods of access (static JavaScript, JSON, XML/XSL, and JSON-to-XML/XSL), and y'know what?  The difference in over-the-wire data transfer and presentation methods was far less significant than the platform's rendering method.

Give back my Model-View-Controller holy trinity and stop trying to re-invent the wheel.

I have since coded up a JSON-based AutoSuggest for our service, and I remain utterly unconvinced:  oDiv.appendChild() should not be a design technique.

September 8, 2006

Great Programmers vs. Great linecoders

(as posted on Joel Spolsky's Joel on Software Discussion Group)

I believe the difference comes down to the same argument that takes place on countless "high IQ" forums everyday: how does one measure (true) Genius against IQ?

There are a large number of individuals with an IQ score labeled as "Genius", yet many of them work in everyday jobs and never make an important discovery in their lives.  Meanwhile, there are a couple of hundred Geniuses per generation that make amazing discoveries or significantly affect their knowledge domain.
Consider some recent programming luminaries:

  • Joel Spolsky:  Yeah, easy reference, but pretty much invented VBScript, the language employed for automation of virtually every Microsoft application.
  • Brendan Eich:  Invented JavaScript single-handedly.
  • Larry Wall:  Father of Perl (and Heidi).
  • Linus Torvalds:  Linux.  One guy.
  • Rasmus Lerdorf: Created PHP (in Perl, then C), the first web-specific script parser.
  • JJ Allaire: ColdFusion creator.  First database-presenting language for the web.

.. and, of course, the list goes on.

Unlike GroupThink-type projects, these people championed small revolutions.  I'm sure they are all smart people, but they also displayed Genius through their creations while still maintaining a Real Job.  Granted, Linus was a student, but I'm sure he applied himself. :)

Great programmers, to me, are at least mini-geniuses.  They tremendously influence every project they touch, through vast knowledge and, most importantly, original thought, while still performing well as day-to-day team members.

September 15, 2006

"Borat" to premiere on MySpace, upsets whole nation

Since I saw the first US Da Ali G Show on HBO, I have become a huge Sacha Baron Cohen fan.  Few people can think that quickly on their toes, let alone in character, without ever cracking a smile or giving up the gag.

Now Borat is on its way and making waves of its own.  First, it will premiere simultaneously on MySpace and real movie theaters.  Second, the President of Kazakhstan is on tour in the US, trying to disprove the movie's impression of his country.

Sacha is clearly an unrecognized genius.

September 16, 2006

Where does the concept of "free" software lead?

I started this thread on one of Joel's discussion boards looking for some insight into a problem of inevitability I see with the Open Source Software (OSS) movement:

Are free software programmers systematically eliminating their own futures?

Unfortunately, most of the responses fell into one of three camps:

  1. Yes.  Open Source Software is stupid and evil and full of bugs.
  2. No, Open Software is good, and the way it should be, and people care too much about money.  I, for one, welcome our new open source overlords!
  3. No.  You and all of your proprietary-software brethren will be crushed by the mighty fist of our righteous movement; the streets will flow with the blood of the nonbelievers.

This does sadly characterize the tribal state in which we software developers exist.  Everyone else vs. Windows, Everyone else vs. PHP/Perl/Ruby, .NET vs. Java, the list goes on, with the exact same line drawn in the sand: you're either with us and love software, or against us and love money.

One point that I have a hard time making clear is that I am not anti-OSS, per se.  MySQL and PostgreSQL have forced Microsoft, Oracle, and IBM to release free (albeit limited) versions of their fantastic database software.  Overall, that is a net benefit to the world and a direct result of OSS.  However, beyond that, I start running short of "longterm good" examples.

Here's my thesis statement:

As more developers produce marketable software foundations without pay, fewer developers will be needed by the general marketplace to produce commercial software.

It's a grim thought, if you deeply consider the repercussions.  I liken the whole situation to the "Global Thermonuclear War" scenario -- everybody loses while trying to dethrone someone else.

My pessimistic view:

  1. Fewer jobs.
  2. Fewer openings for students.
  3. Fewer students learning programming.
  4. Fewer teachers needed to teach those students.
  5. Lower profits for proprietary software.
  6. Less money for software research.
  7. Less software innovation.
  8. Fewer developers needed.

I desperately want someone to say it ain't so, but most of the contrary responses are like these:

  1. You must adapt or, of course, you will be outmoded.
  2. Commercial developers' focus will change -- instead of developing proprietary software, you will be developing extensions to Open Software (plugins, installers, etc.).
  3. Commercial development jobs will continue to exist because companies will need those open solutions tailored to their business practices.

And my responses:

  1. How can you adapt to not making money?
  2. So we should all welcome the new industry monopolies and get brushing up on their APIs?  Where will the innovation come from... the best MySQL Installer?
  3. There is already a gigantic field of integration consultants; is the hope that the current ranks all quit in unison?

The absolute worst example of OSS success is MySQL:  They (MySQL AB) sell the work of all those unpaid contributors to big companies and make millions for themselves.  That's a fiefdom, not a community.

Anyway, I don't really have an end, here, because I'm still without an answer.  All I can say is that I hope the global thermonuclear war scenario doesn't play out until I'm financially secured and don't have to care.

Follow-up to great programmers and open source stuff (it's a small world)

Coincidentally, I pointed to JJ Allaire as a great programmer, and previously mentioned that I use the Perl-based Movable Type to power this site because it's easy to install on a Windows server and supports Live Writer.

I found out last week that JJ went on to build a company that got bought by a bigger company that gave him an environment to create a product named... Windows Live Writer.

He's that good.

PS- Some props are also due to Nick Bradbury, who created HomeSite, the most usable, adaptable HTML editor available on Windows (I qualify that so that you Emacs zealots don't freak. :)).  He probably also makes the "most wanked" list, since he probably sold Bradbury Software to Macromedia for a million, only to see them sell millions of dollars in HomeSite and then get bought by Adobe.  Hopefully he had some options, but I doubt it.

September 17, 2006

A very clean-cut Q&A about using MySQL for your apps

Thankfully, I found one very good post with a clearly rounded whole question and solid answer from someone at MySQL AB:

http://forums.mysql.com/read.php?4,30183,45753#msg...

In Summary:

Question: "Our plan is create an application that will just connect to MySQL Server running on a different machine using Database Connections like MyODBC 3.5 [... do I need] to buy a License from you (MySQL AB) for using MySQL Server?"

Answer:  "A good option for you may be becoming a MySQL Certified partner, at the basic level this is just USD 595/yr. See [solutions.mysql.com] for details.
Under the partnership, you can get an optional (but free) non-GPL license for any of the MySQL client libraries, for distribution linked with your closed source product."

Case closed.

-Matt

September 23, 2006

Really, it's water-powered

Pretty cool stuff -- this guy has finally managed to create an efficient (and safe) method of electrolyzing water for fuel. I'm sure there are some catches, but it seems on the up-and-up and a helluva lot safer than fuel cells:

http://www.rratch.com/Misc/WaterFuel/WaterFuel.wmv

About September 2006

This page contains all entries posted to MattL.com in September 2006. They are listed from oldest to newest.

October 2006 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31