It’s bound to happen sooner or later. Every so often Scoble (Microsoft blogging wunderkind) posts something that makes me question his sensibilities. One of his latest posts stopped me dead in my tracks. The post was a reply to a Jon Udell post on UI technologies in Longhorn. I thought Udell’s post asked questions any professional should be asking. Scoble tries to bring it into focus by saying:
Ahh, but Jon, the real play here is one of programmer productivity
Programmer productivity. As if every new technology/language introduced in the last few decades failed to deliver on that same promise. As if Longhorn and .NET are the productivity “tipping point.” As if being fluent in multiple technologies/languages is a bad thing. As if being fluent in multiple technologies/languages will go away.
Robert, your overselling the reality. I will use .NET to create commercial, shrinkwrap and enterprise software someday. I am becoming fluent in .NET technologies. But you should take a break from the Kool-Aid (although I hear the grape flavor is hard to put down). I see an advantage in understanding multiple technologies/languages and being able to choose the best for a particular situation. If anything, .NET will make the technology soup developers work with worse, not better. Just like every other “productivity improvement” before it.
I disagree. The language issue so far in .NET is minimal. All the mainstream languages in use and with the largest number of examples are the procedural ones – *just like in the real world*, the syntactic difference in C#, VB and JS are annoysome at best.
The thing I take larger issue with is the Framework. The first taste of mainstream Framework goodness was the Taligent/ScriptX stuff back in the mid 1990’s. It was shallow and spotty, but it meant I could abstract my understanding away from the underlying HW. I started thinking OO messages and moving away from ‘this block of memory’ and toward ‘this object’
The next dose of the Framework Twinkies I got was Java. For my employer I got an applet up and modeling a piece of HW with behaviors *in a browser* in a few days. It was an enlightening experience. The Framework let me learn just enough about each subsystem, to complete my task and it ran on ‘multiple computers’. Big win š
So .NET is just the 3rd evolution in all encompassing Frameworks. Network protocols and web standards are complex beasts and I would not want to have to (re)know the intricacies of TCP/IP packets to send a web page or parse an XML file and validate it. The programming world is becoming too complex for not having abstractions.
I for one welcome our New Framework Overlords.
There’s no doubt that frameworks have advantages. I have never programmed entirely in raw Win32. But there are also disadvantages. Too many levels of abstractions can be a bad thing. I also have problems with frameworks that try to handle everything, instead of doing fewer things better. The surface area of .NET is already huge. It’s a lot for developers to learn. It also opens the door to architecture problems and overlapping API’s (and that’s just in the XML area).
I have also used enough 3rd party frameworks to know that I’d never blindly put all my “eggs in one basket.” There are risks and if your building shrinkwrapped software you have to be aware of the risks and try to mitigate them.
Well there is a whole other direction in increasing programmers productivity …. if you are too young to remember APL, take a look at http://kx.com … a good article about programming language design (interview with K designer Arthur Whitney) … http://kx.com/press_releases/arthur_interview.htm
The point: chatty languages like Java and complicated overblown frameworks like .NET are not the only thing out there …
Greg Wdowiak | http://eaiblueprint.com
you people have too much free time on your hands. Meet a girl or rent porn.