Are you doing cool stuff? If so, you need to communicate how cool it is, with demo apps, exciting examples, articles, talks, and seminars. I love to bring the best new technologies into the public eye. I'm especially a fan of innovative programming tools and mobility software (Tablet PC, SmartPhone, and .NET Compact Framework). Contact me:
Code, industry analysis, and miscellaneous cross-links from Larry O'Brien, the former editor of Computer Language and Software Development magazines.
To receive an occasional announcement message regarding my seminars or publications, please subscribe to my mailing list.
Beautiful post by James Robertson on the Whidbey slip: short release cycles improve quality. This has absolutely become the consensus over the past half-decade.
However, the .NET infrastructure significantly affects this particular release: the CLR itself, the compilers, and the major applications (SQL Server, Visual Studio) boot-strapped with those require either a single synchronized release or a series of transitions spread out over months or years (like a long-running transaction in the database world) that would inevitably attract screams of "why is this so complex?"
Scoble has a good post on the Whidbey Slip [Scobleizer: Microsoft Geek Blogger]
In it, he says "The idea that Whidbey is being slipped just because it needs to tie up with Yukon isn't wholly correct...." and I have to admit to blogging just that conclusion without having actually, you know, asked Microsoft for their side of the story. I suspect it to be the case, but I haven't done enough research to conclude it to be true.
Back in September, I thought that Yukon was being slipped because of Whidbey, and now I've blamed Yukon. The truth is, these products are so complex that it's possible that either is the source of showstoppers. But what I do know is that Microsoft values shipping software and that polishing minor features in production-quality components while another team struggles to hit their quality thresholds will not sit well with competitive Redmond spirits.
What is the next step in the evolutionary tree of programming languages...the new languages I have heard of seemed to fall in the existing classifications: it integrates such feature from language A, such other from language B and so on...At the same time, object oriented languages can be enriched a lot just by creating new libraries. via [Curiosity is bliss]
No, libraries aren't themselves the future of programming innovation. Yes, the time spent mastering a modern library like the Base Class Library or the Java SDK is much, much larger than the time spent mastering the syntax of C# or Java. Yes, the time spent choosing methods is probably larger than the time spent choosing operations on the results of those methods. BUT...
Most programmers haven't really immersed themselves in non-imperative programming. Different languages facilitate different thoughts, different approaches to problem solving. You don't understand how a programming language solves problems by reading the grammar, any more than you understand Spain by the first chapter of a Spanish tutorial. I'm not going to say that declarative programming is always better than imperative programming, but there are certain problems that are really hard to even understand in an imperative language that just "fall out" when you think about them in Prolog. The reverse is also true.
Recently, I read this interesting article on generating an unending stream of digits for pi. Five lines of Haskell code. It took me about 50 lines in C#. Now that I get it I could compress the C# code significantly, but if I could "think in" Haskell, a five-line block of code is probably something that could be "grokked" in a single bite. So "generating digits of pi" is something that can be thought much easier in Haskell than in C#. Similarly, thinking about hardware is easier in C than in Visual Basic. Thinking in Web pages is easier in PHP than in Pascal. Etc.
Back in the 80s, I worked in Prolog quite a bit, including Borland's Turbo Prolog dialect. At that time, I could switch between Prolog thoughts and C thoughts very fluidly and did so on a problem-by-problem basis, just as someone might switch between French for romantic thoughts and English for engineering ones (isn't that what they say English is good for?). It's like being twice as smart -- you really bring to bear more of your brain's potential. It's a terrible shame that the world of multi-language programming died away.
.NET provides the possibility for a rebirth of that type of programming. Not only is language interoperability easier than it's ever been, you only have to learn one library! It's really a fantastic opportunity that, sadly, hasn't taken off as quickly as could be hoped.
There is a subtlety to the "class libraries are the new language" argument that I've ignored -- the design of a class library may be such an embodiment of a certain programming approach that it discourages alternate programming approaches. There've been a couple comments saying exactly that about the BCL, but I've asked and haven't been able to get anything concrete from anyone credible, even if I've promised not to reveal names. (If you want to make the case but don't want Microsoft to know who's complaining, you can email me from the homepage at http://www.ThinkingIn.NET/ and I'll sing it loud and long.)
Does Tufte do any online training or have a CD? Asked "bro" in my comments (or maybe it was my brother Steve...)
I don't think so and having attended a seminar of his, I can guess why. Tufte treasures "density of information" in representation. One thing he passes around at his seminars is what looks like an X-Ray transparency but is, in fact, an image of the universe from some astronomical survey. The resolution on it is microscopic -- I don't remember the numbers, but it's the finest film humanity can make -- and he extolls the wonder of holding the universe in your hand and goes through and comes up with whatever it is -- 10 megabits per square inch, say. Then he says, "And now, I'd like to show you the least dense information display imaginable" -- and he projects a VGA PowerPoint image on the wall. It's a big laugh, but then he goes through the numbers again and it comes out to something pathetic, like a bit every 4 square inches. (And, of course, he's very critical of the PowerPoint "cognitive style.") But a major theme in his class is his disdain for current display technologies and the wastefulness of most user interface design.
Mike Schinkel wants Microsoft to create a stepping-stone language for .NET -- VBScript.NET.
A couple of thoughts:
There needs to be a language for .NET that presents the user a simplified object and typing model. Mike lays out the case very nicely.
Microsoft doesn't have to be the one to implement it. A great idea followed by "Microsoft, are you listening?" frustrates me. If you want to be a rock-and-roll star, grab yourself an electric guitar... And, yes, that means the options are becoming an advanced programmer yourself or starting your own company and hiring people. (I'd love to get offshore bids on that -- "Here's my grammar. Here's The CLI Annotated Standard. How much will a compiler cost me? Uh huh. And will you sign a fixed bid contract for that?" Heh. ) I know that sucks for people like Mike who are journeymen programmers (("journeyperson"? Yeah, that's probably what the style manual says...) but the payoffs are potentially a lot better than "Microsoft took that idea from me!"
In my opinion, Microsoft isn't likely to bite at Mike's idea. They've got Monad (or, rather, they'll have Monad in the Longhorn timeframe). I spoke with Monad Architect Jeffrey Snover last week. I personally think Monad could be a huge hit. It's too soon to tell whether it will succeed in the marketplace, but I think Monad is a very significant advance in thinking about scripting languages. It combines the advantages (pipes and filters, scriptability, dynamic) of UNIX shells like ksh and bsh with the advances of .NET (objects not text, the Base Class Library, access to stuff like WMI and the Registry using directory-like metaphors).
PDC attendees didn't get the initial Monad bits. Hmm... Actually, Googling for Monad with site:microsoft.com is amazingly unproductive. Are there any Monad blogs...?

I am reminded of the South Park where Cartman tries to kill Stan with a wiffle bat.
Blogged on a Tablet PC
Just launched: a website promising live virtual coverage of this weekend's Grand Challenge race, in which robotic vehicles will race accross the California desert. via [Boing Boing Blog]
My guess is that this will be the biggest letdown since the last episode of Seinfeld, but on the off chance that something interesting happens (like an autonomous truck getting up to 50MPH or, better still, going on an unstoppable rampage)...
Thanks, Robert and Sam! I'm now in Orkut! But Scoble humiliates me further. If there's one thing more humiliating than begging for an invite, it's begging for an invite and having to clarify who you are.
Actually, this is evidence that Scoble lives in a future not yet distributed. I live dangerously close to a world where "If it ain't on the first Google results page, it doesn't exist." Scoble, who reads something like 1,000 RSS feeds, is entering a world where "If it ain't one click from the RSS feed, it doesn't exist." If that world becomes common (and it's plausible), there's a wealth of software opportunities -- not having to do with searching large numbers of RSS feeds (a challenge, but last year's war) but with contextualizing individual posts.
| March 2004 | ||||||
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
| Feb Apr | ||||||
Recent code:
Recent writing:
Review of Borland's C# Builder 1.0
Recommended .NET Programming Books
Programming Sabre with Java, C#, and XML
Best Practices for .NET Architecture
Windows Server 2003 as an Application Server
Toolroll:
Motion Computing M1200 Tablet PC
Visual Studio 2003 Enterprise Architect
Rational Rose Enterprise Edition 7
T Mobile Pocket PC Phone Edition