Tuesday, November 01, 2005

On the psychology of .NET programming

Here's as good a reason for avoiding .NET (if you can) as I've ever heard:

API Proliferation Twenty years ago, in November 1985, Windows 1.0 debuted with approximately 400 documented function calls.5 Ten years later, Windows 95 had well over a thousand.6 Today we are ready for the official release of the .NET Framework 2.0. Tabulating only MSCORLIB.DLL and those assemblies that begin with word System, we have over 5,000 public classes that include over 45,000 public methods and 15,000 public properties, not counting those methods and properties that are inherited and not overridden. A book that simply listed the names, return values, and arguments of these methods and properties, one per line, would be about a thousand pages long. If you wrote each of those 60,000 properties and methods on a 3-by-5 index card with a little description of what it did, you’d have a stack that totaled 40 feet.7 These 60,000 cards, laid out end to end — the five inch end, not the three inch end — can encircle Central Park (almost), and I hear this will actually be a public art project next summer. Can any one programmer master 60,000 methods and properties? I think not. One solution, of course, is specialization. I myself have specialized. This evening I hope no one will ask me questions about web forms or ASP .NET or SQL Server because those aren’t my specialty. I do Windows Forms, and my language is C#. [ Charles Petzold - Does Visual Studio.NET rot the mind? ]
And this is only counting the core!! Is .NET 112 times better than Windows 1.0? Well, maybe it is, but I'm not sure it's 45 times better than Windows 95!

Petzolds ruminations on the way Microsoft tools shape the developers philosophy are interesting. As someone who programmed for dos and then Windows 1.0 upwards (i even wrote a few Windows applications in assembly language, now there was a trip!) I can honestly say I preferred the old days. I remember around the time MFC took off realising that the beast had grown too big. The beast never looked back.

These days I program in Ruby (and am learning some Haskell) and I've never been a happier coder. Rails is still pretty grokkable and the core team are doing their best to keep the core, core. Over time everything gets crufty and rots inside out, you just have to hope you can deliver a lot of useful stuff before that happens. It might be too late for .NET already.

01/11/2005 12:05 by Matt Mower | Permalink | comments: