Types, leaky abstractions, and the best book on ASP.NET for pragmatic programmers

Don Box, in a comment, clarified that it’s “that having to define a new type just to write a program [is] the daunting part,” for casual programmers. Absolutely. There’s a certain amount of bookkeeping that takes the casual programmer out of the task-solving “flow.” This is a perfectly legitimate beef: a parallel to the complaint that checked exceptions interrupt “flow.” 

In Danny Boyd’s original post, he said that he was seeing “a number of PHP, Perl, and MySQL books appearing on the shelves of my coworkers.” This is a perfect example of the Law of Leaky Abstractions applying to Microsoft’s Visual Studio .NET. VS.NET attempts to “hide the complexity” of what is, in fact, an architecture that’s quite elegant. Since the vast majority of Microsoft documentation conflates VS.NET with “programming .NET” and VS.NET is not presenting a satisfying foundation from which to work, Danny’s coworkers are turning away from ASP.NET itself. Danny should buy them all a copy of Fritz Onion’s Essential ASP.NET book, which is a “Jolt Award” nominee for best technical book of the year, and whose “Chapter 1. Architecture” is exactly the concise explanation that Boyd’s coworkers need.

Open question: would a refactoring IDE help or hinder such casual programmers? Help because of the ease of “doing the right thing”, or hinder because of the “just trust us while we do some magic” factor? 

Nobody expects the object-oriented inquisition!

Danny Boyd has written an open letter to Microsoft challenging them on the subject of scripting languages. More specifically, he worries about the “need to produce simple, procedural, functional web-based database applications. I’m talking here about HTML forms that post or retrieve data for editing.”

Don Box, where I got that link, concurs with the general sentiment and cuts to the quick with the statement “many of us underestimate how big a deal type definitions are….”

What’s interesting, of course, is that to those of us who’ve drunk the Kool-Ade, types (roughly: what object-oriented programming calls a “class”) and events seem to make thinking about programs easier. When you think about a variable, don’t you think about the values it can have and the ways you can manipulate it? That’s its type. It’s just that there are a lot of applications where the only two types that are important are integers, strings, and dates. Three important types: integers, strings, dates, and floating point. Four! Four important types: integers, strings, dates, floating point numbers, and currency… Wait, I’ll come in again…

Lonestar, the alpha version of the forthcoming update to the Tablet PC OS, is amazing

I normally like to be quite specific when reviewing software, and I’m still under NDA regarding Lonestar, but I can make some general comments safely: the handwriting recognition in Lonestar is transforming the way I write. It’s a combination of three things: dramatic improvements in handwriting recognition (I doubt many people could read my cursive version of the word “hemorrhage”); the ability to rapidly correct text using a variety of mechanisms (choose an alternate recognition, change individual letters, scratch out and write anew); and a writing window / area that expands as you finish a line of writing.

Writing with a pen bestows a physicality to every letter, makes every word a small unity of expression. The Wacom digitizer tip has a scratchy resistance that’s remarkably like the feel of a fountain pen (albeit in an ugly plastic barrel that’s too thin and lacks heft). While the keyboard is great for keeping up with a rush of thoughts, a pen is by far the superior instrument for deliberate writing. (Also, for editing — the Tablet OS already supports the gamut of proofing marks but I’m afraid that we’ll have to wait for Word 2006 or some bold entrepreneur before the momentous marrriage of the blue pencil and WYSIWYG.)

A couple months ago, I wrote an 800-word column in longhand using Microsoft Journal; about 10 separate Journal pages (the resolution of the Tablet PC and the parallax challenge of the display forces you to write two or three times larger than how you would on paper). Suffice it to say that transforming the result into a Word draft was a considerable task. In the past few weeks, I’ve written more than 10 times that length directly into Word with scarcely a bobble (by far the greatest annoyance, and one that I hope will be cleared up before Lonestar is released, is that a space is not automatically inserted between the last word on a handwritten line and the first word of a subsequent line).

Lonestar, when it becomes available, will be a user-installable patch. The alpha is tiny — about 10MB. If you’re buying a laptop, you’re nuts not buying a Tablet PC.

Visual Studio .NET 2003 Automation Samples

These code samples show you how to build VSMacros projects, add–ins, and wizards to make your teams more productive and to bend Visual Studio .NET 2003 to the ways you like to work. via [Microsoft Download Center]

The download is all well and good, but what I love is that you just know that the original description used the phrase “bend VS.NET to your will” and was toned down. Other interesting recent MS downloads have been the Windows Media Player SDK MSDE Deployment Toolkit and an example of modifying the Today screen from the .NET CF.

RealMerit RealNetworks Allege That From October 2001 To March

RealMerit? RealNetworks allege that “From October 2001 to March 2003, for example, Microsoft’s ‘tying’ ensured that Windows Media Player was preinstalled on about 95 percent of PCs shipped…RealNetworks’ digital media player was preinstalled on less than 2 percent….Microsoft used contractual restrictions and financial incentives to ‘force PC makers to accept Windows PC operating systems with the bundled Windows Media Player and to restrict the ability of PC makers to preinstall or promote competing digital media players.’….PC makers told Real that their contracts with Microsoft kept them from removing or changing the status of a Windows Media Player; promoting RealOne subscription services during the first run of a new PC; and providing a desktop icon for Real Networks.”

Scobles Learning To Program In C Next Year Im Going

Scoble’s learning to program in C#. Next year I’m going to be writing a book for people learning to program. Lately I’ve been thinking a lot that it might be based on manipulating Office from C#. The gap between “Hello, World!” and “controlling my computer to do cool things” is too large for learners — who wants to struggle with the concept of recursion when the payoff is “So now you can calculate factorials!” Originally, I was thinking of .NET Terrarium as the context, and that does have advantages but, on the other hand, if you’re manipulating Word or Excel or Outlook, you’re tying the learning directly to the tools people use every day.

The challenge is making enough money during the day so that I can pull off this project and InkPositive in my spare time. I’ve passed up some significant opportunities to make a run at these projects (which I hope to eventually profit from), so I’ve got some exciting months ahead…

InfoPath And XAML The Scales Fell Off My Eyes This Morning When I Was Answering An Email To My Recent SD Times Articl

InfoPath and XAML

The scales fell off my eyes this morning when I was answering an email to my recent SD Times article discussing InfoPath. I wrote that column before the PDC and hadn’t really thought about it since (it’s mostly a criticism of InfoPath’s licensing model). But now I see the obvious: if InfoPath 2006 (or whatever) generated XAML, the result would be the exact “stepping stone” between power user and programmer whose absence I lamented in the article.