ArticleS. MichaelFeathers.
TechnologistsDrive [add child]

Technologists Drive

These are heady times in the development community. There quite a few different ideas and techologies in the air: Web 2.0, AJAX, Rails.. the list goes on and on. Amazingly, a book about Common Lisp was a productivity award winner in the Jolts this year.

Personally, I'm surprised by all of this. In some ways, I'm a technology pessimist. I feel that the better technology doesn't always win, and I'm often surprised when it does. I still remember the shock I felt when I heard that Microsoft was going to adopt true garbage collection for .NET. By God, we were going to move computing out of the 1960s; in my lifetime, no less! And yes, I heard people clamoring for dynamically typed languages about five years ago, and in fact, I was one of them. But in my heart, I never felt they would take off. I felt that large vendors had a lock on the tools and languages market and for that reason, none of the up and coming dynamic langauges, languages which are largely open source, would have a chance. Well, it seems to be happening. There isn't a week that goes by that I don't hear about a team that has started to use dynamically typed languages in anger. Progress happens. Today, dynamic languages are gaining ascendancy but nothing is permanent. Static typing may come back with a vengeance and if you want to see how powerful it can be take a look at LINQ and what Microsoft has planned for C#, for example.

Looking back, the thing I think I've missed is that utimately, in IT, technologists drive. If you're part of the Agile community, this may sound like heresy. The Agile view is that business is paying so business should drive. But, the fact is that both points of view are true. Technologists form communities, they learn, they develop new technology and ultimately it arrives on the scene producing waves of change. Businesses decide on technologies and they do so to gain competitive advantage, but ultimately, you can't decide on a technology that isn't there, and you can't adopt technical practices that haven't been developed.

I've always felt that there is something strongly generational about software development. Young people become programmers, and if they are lucky they learn from the programmers they work with. You can trace strands of culture through the programming world. You find people who worked with someone who worked with someone who worked at MIT or people who worked with someone who worked with someone who worked on an early UNIX. In many other cases, you find people who haven't met anyone who could show them a different or better way of programming, and often they flounder.. but in other cases, they read and study, they meet people, they think and they try: they relearn the lessons of the past.

We're lucky today that, with the internet so much of this knowledge about earlier programming models is easily available, but you have to hunt for it. It is great to see people rediscovering these things, melding them with something new, and starting to drive.


 Mon, 27 Mar 2006 08:13:18, Ravi Venkataraman, LINQ and static typing
This is not necessarily relevant to the main topic, but I do not feel that LINQ is all that powerful. If it is intended as a substitute/stand-in for SQL, it will fail mainly because it is very verbose and has very limited power compared to SQL. If it is intended to provide a mapping from a database table to a class (object), it still does not seem as clean as tools that can be easily developed using dynamic languages.

If it is intended to be used with collections of various sorts, then it seems OK. Yet, all of these can be achieved easily today by the use of a UnaryPredicate[?] type class in Java. Admittedly it will be even more verbose than LINQ, but not all that much.

 Wed, 29 Mar 2006 14:53:02, Rob Wehrli, Jolt awards...oh grand pooh bah?
The heresay is in granting any form of "official title" to the Jolt awards. They are, IMO, total BS...little more than marketing honorarium paid back to their favorite suppliers of income and farced into a sense of reality by a perceived accuracy in a "voting" system. The mere fact that recognition in media is a DRIVING factor in IT product selection strongly contradicts that IT is somehow related to "better" technology.

As for the strands of culture, you find a lot more strands coming from the "changed from selling used cars to writing software during the bubble and my code reflects it" even from those who supposedly took courses in CS. I'm not sure if that is akin to anything that you might describe as a "technology pessimist." :)

How does Agile work in an open source project when there is no "business is paying" and technology is driven by technologists? The adoption of these resultant technologies are not even a potential source for a Jolt award since they are not paying customers of Software Development Magazine. Is it even possible to nominate a technology provider if no business name is involved? Every winning "product" is immediately followed by the "business name," which makes perfect sense if you're trying to sell ad space.

By association, we can also say that Software Development Magazine is to programmers as Jolt award is to technologically superior product. SDM caters to its ability to sell its number of readers to its advertisers. In other words, the quality of programmer reading SDM sounds suspiciously like a metric for measuring gullibility for wading through ad-ladden hype and voting for advertisers products.

CMP has already proven that it can not effectively manage a "real" technology publication as it recently shutdown production of C/C++ Users Journal. What we're seeing is likely a reflection of the business ethic involved that says we can't make enough money "driving" this brand. Do the tools vendors "drive" this particular segment of the media to the point where .NET is "all that matters" and the 80/20 rule applies to everything else? How far did Jolt go toward kissing Redmond's backside this year? How many inside front cover spots and multi-page full-color ads did they spend in the past 12, 24, 36, 48, 60, etc. months?

The only thing worse than the Jolt awards are those who will talk about them as if they are some kind of true recognition of technology. Of course, those vendors frequently recognized are much more likely to be spending serious ad money, so maybe there is something to it?! :) I wonder if buying ad space = winning Jolt = successful product? We already know that it doesn't = better technology!

Take Care.