February 2002 Archives

Glenn Vanderburg

AddThis Social Bookmark Button

Related link: http://zdnet.com.com/2100-1107-842922.html

In the referenced article, Matt Liotta sounds a note of
warning about the wisdom of Microsoft’s Common Language Runtime (CLR) and (although Liotta doesn’t mention it explicitly) the Common Type System (CTS). The CLR and the CTS represent the base platform on which .NET applications are written.

Bjarne Stroustrup, the designer of C++, once wrote that “Library design is language design.” His point was that every programming API is a language, and serves to augment and extend the base language in which it is used.

A corollary is that libraries don’t exist in isolation from languages. They tend to inherit models and philosophies from the programming languages they are designed for. The best-designed libraries mesh cleanly with their base languages, embracing the natural style and idioms, and exploiting the type systems, of those languages.

A library designed to be used by many languages is necessarily a kind of least-common-denominator. It is prohibited from exploiting language-specific features, because doing so would compromise its language-independence.

Does this mean that cross-language libraries are a bad idea? Of course not. But a cross-language library is always a compromise; we relinquish some of the power of our language in order to gain the power of interaction with other programs, written in other languages.

Matt writes,

Look at some of the other languages that have been ported to the CLR. In every case, those languages have had to lose something important that made them different to fit the common dominator offered by the CLR.

That’s absolutely true, and I’m glad to see people beginning to point this out. Programming languages have come a long way, but there are other advances waiting in the future. Our field has benefited from the ease with which we have been able to adopt new languages — Perl, Java, Python, PHP, Ruby — over the past decade. I fear that .NET, if it becomes as successful as Microsoft hopes, will present a huge barrier to the adoption of new and innovative programming languages — and their libraries and type systems — in the future.

(via /.)

Glenn Vanderburg

AddThis Social Bookmark Button

A few months ago, the classic film Lawrence of Arabia was released in a terrific DVD set. The set contains a documentary on the making of the film, made after its restoration in the late 80s. At one point, David Lean (the director of the film) said something that really struck me:

I just love making movies. I have a sort of burst of adrenaline when I get behind a camera. I just love them. I like lenses. I like looking through the camera. I like composing pictures.

It occurs to me that this attitude is characteristic of good artists and craftsmen. When looking from the outside at filmmaking, woodworking, photography, programming, or any other creative medium, it’s easy to see how one might get excited about the finished product, knowing that it’s something of your own creation. Everyone loves to be able to point to something great and say “I made that!” But to most of us, the mechanics of actually creating it — the tools, the techniques, the fiddly little bits of knowledge, the painstaking planning involved (especially for a movie!) — seem dull, tedious, completely at odds with our concept of creativity, flair, and vision.

And yet artists and craftsmen tend to fall in love, to some degree, with those very details of their craft. Sir David loved lenses (he had a gleam in his eye as he spoke those words). I have a love for code, the shape and feel of it, the process of writing it and changing it to be what I want it to be. And as I’m enmeshed in those details, I can sense somehow the finished product that is my goal emerging from the little details of craft. In fact, I think that’s a vital part of any creative process: the ability to focus on the details without losing sight of the big picture and the path from the here-and-now to your eventual goal.

It’s interesting to contrast David Lean’s comments with the depiction of Ed Wood (the perpetrator of such abominations as Plan 9 from Outer Space) in the biographical movie by Tim Burton. Ed Wood was clearly in love with the idea of being a moviemaker, with the romance of it all, with the dream of looking at a finished product and knowing that it was his creation. But he had no patience for, and no interest in, the techniques of filmmaking. He thought the flash of creativity was all, and couldn’t be bothered with the labor of creation.