Software Development Year in Review

Security, spam were dominant themes; will they have impact on development issues ahead?

I've been writing this column for three years now. It's time to look back and reflect once again. How are those of us writing software for Windows doing as compared to a year or so ago? Which events stick out as having been important? Allow me to present my own idiosyncratic view of the answers.

The New Toys
The last 12 months saw a reasonable number of product upgrades shipping from Microsoft, including three major ones:

  • Windows Server 2003
  • Exchange Server 2003
  • Office System 2003 (including OneNote and InfoPath)

Of these, Office is having the most impact for the developers that I know, who are gradually moving solutions forward into the new version. But truth be told, there's not much in Office 2003 that's a big improvement from Office XP. The new Visual Studio Tools for Office, which lash up .NET code with Office documents in a Rube Goldberg sort of way, point the way to a future that merges the Office programming model with .NET programming. But that future is a couple of years down the line yet.

Developer Central Newsletter
Want to read more of Mike's work? Sign up for the monthly Developer Central e-newsletter, including product reviews, links to web content, and more, at http://lists.101com.com/nl/main.asp?NL=adt.

As for the rest: I'm happy to have Windows Server 2003 and Exchange Server 2003 on my own test network, and they certainly represent a substantial improvement over the 2000 versions. But really, they don't have a whole lot of impact on the development side of my business. So this has been another year of consolidating existing skills for me, of getting better at writing C# and VB .NET code, of using Visual Studio .NET 2003 (which shipped more than a year ago) to create solid ASP.NET Web sites. Sometimes it's nice to take a break and just work with existing tools for a while.

The New Toys to Come
Of course, the break isn't going to last forever. Last fall Microsoft tempted us all by showing off three new products that will ship next year, or perhaps the year after:

  • "Longhorn" (the next version of Windows)
  • "Whidbey" (the next version of Visual Studio .NET)
  • "Yukon" (the next version of SQL Server

These were publicly revealed at the PDC, and quite a lot of alpha code has been circulating; MSDN subscribers have had access to the bits for quite a while, as have some others, and it seems likely that this is going to be a huge beta. Certainly it's a huge marketing blitz; already at least half of the new content on MSDN seems to revolve around these three products and their constituent pieces.

Now, don't get me wrong; these are shaping up to be great products. I've seen some pretty nifty demonstrations of what you can do with them, and I've even written a few Yukon articles. But for most developers, it's just too soon to invest time in these technologies. Oh, if you've got a spare box with reasonable horsepower, you might as well install Longhorn and Whidbey and give them a spin, and ooh and ah at all the eye candy. But I think you're probably wasting your time to dig too far into the programming model on what are, so far, just alpha builds that are sure to change.

The Seamy Side
Not everything in the software development universe this year has been rosy. For starters, security in Microsoft products still stinks. Oh, sure, it's getting better, but every time I start to get even little complacent, something new happens. Remember the Blaster worm? Then there was the round of patches in February of this year, which revealed that it took Microsoft six months to fix a major security bug at the heart of pretty much every version of Windows. Sure, we keep hearing about how it will be better in future products, but that doesn't really seem to have materialized yet. Meanwhile, I still run across far too many developers who don't even understand the basics of things like SQL injection or cross-site scripting attacks.

Then there's spam. There's always spam, and there probably always will be, despite Bill Gates' cocky assurances that the spam problem would be solved by 2005. Right now I use a couple of blacklists (SpamCop and SpamHaus) on the Exchange server, and SpamBayes on the client, to block somewhere upwind of 500 messages a day. That's the price of having a widely publicized e-mail address. I know there are developers out there who get paid to figure out a way around all this blocking technology. I'm glad I'm not one of them.

And while we're on the subject of people that I'm glad I'm not, there's the management over at SCO, who have spent the last year suing everyone in sight over code in Linux using a variety of bogus copyright, trademark, patent, and contract theories. You might thing that a squabble in the Linux and Unix communities couldn't have much impact on your development using Microsoft tools, but would you care to think about how much of the Web would vanish if SCO were to be able to collect the ridiculous licensing fees they're demanding? You'd do without Amazon and Google, for starters. Fortunately I think even the American legal system isn't dysfunctional enough to let SCO win here. I hope.

Punditry Unleashed
What would a yearly roundup be without some trends? They'd drum me out of the pundits union if I didn't come up with some. I wouldn't want that to happen, so here's my list of what's been hot and not in my corner of the development world. What's hot:

Venture capital money: I know a couple of folks who are shopping new ideas around for the first time in two or three years. I'm all for injecting new money and Aeron chairs into the software economy again.

Outsourcing: I just hope it doesn't manage to absorb all of the VC money. For me, the best defense against being outsourced is still to not have a real job, but to spend my time on short contracts at the cutting edge. I don't think that's an overall solution for the industry, though.

Openness at Microsoft: They're not putting out much open source software yet (though parts of Services for Unix are covered by the GPL), but Microsoft is doing more to get information out than ever before. The widespread availability of Longhorn alpha bits, the explosion of Microsoft bloggers, and the rapid increase in the MVP ranks all point to a company that wants to communicate with developers. That can only help us do our jobs.

Code generation: Lots of new tools will help write code for you. Some of them even work well enough to use. This is a great way to leverage software to write more software.

XML: Darned if I know why XML is so much bigger than CSV ever was, but it is. I hope we're seeing the first signs of a world where people don't have to look at angle brackets, though. I know I'm tired of it.

And the flip side, what's not:

Computers in Politics: Hey, blogging and MeetUp were gonna revolutionize U.S. presidential politics. Oops, maybe not. Now the same folks who were once bullish on blogging as a replacement for traditional media are trying to peddle blogging as a replacement for traditional politics. These people have smoked one manifesto too many. If a politician wants to get online community-building software from you, bill them in advance.

Peer to Peer: Now that we've had a few years experience, can we just admit that P2P is for stealing music, movies, and software, and move on to something else? I hate to think about how many programmer hours have been wasted trying to find some other justification for this technology.

Grid computing: Or utility computing, or whatever you want to call it. Maybe I'm just not looking in the right place, but so far I'm not finding a whole bunch of exciting applications for this stuff, even though marketing departments appear to love it.

Social computing: Turns out that the friends of the friends of the friends of your friends are not, in fact, of any more interest to most people than people pulled out of a phone book at random. Another field where too many hours have gone into too little return.

RSS Aggregators: I love RSS, I really do. I read about 150 RSS feeds myself. But we do not need another RSS aggregator. There are enough. Go write something else.

The Bottom Line
So, here I am, another year older, and having written a great many more lines of code and a great many more words about code. Am I going to stay in this game for another year? You bet! For all the warts in the software world, for all the long hours and frustration chasing bugs, it still beats actually working for a living. I expect that most of you readers know exactly how that feels. Only, remember: Don't tell the bosses, or they might stop paying us to do it.

How was your last year? Any trends I missed that I should have mentioned? You can get hold of me at MikeG1@larkfarm.com. I'll use the most interesting comments in a future issue of Developer Central.