Sat, 28 Feb 2004
Some Writings of Richard Gabriel Reviewed
Writer and programmer Richard Gabriel has written a number of
essays on the process of software development and its relationship to
other disciplines, such as architecture and other forms of engineering.
What Gabriel does better than most is twofold. First, he takes the trouble to
achieve a deeper understanding of the disciplines, warts and all. Second,
his comparisons take into account the depth of the difference between
software and buildings, rockets, etc.

Particularly in the book
Patterns
of Software, Gabriel's comparisons focus on the field of
architecture as understood by the controversial Christopher Alexander.
While Alexander's tome
A Pattern
Language is widely revered in the object-oriented software
community, its acceptance in his field is less unanimous. Though I'm
only familiar with it through Gabriel's discussion, it seems that there
are a number of ideas that run counter to accepted architectural
practice, such as the assertion that the practice of designing and
building must be intimately connected. Already we have a point from the
field of architecture that hasn't been widely carried over to the
software world: you can't have architects simply handing off blueprints
to relatively unskilled builders and expect a good building to result.
Gabriel's investigation of other forms of engineering reveal similar
disconnects between reality and the notions that software
methodologists typically hold. In his essay
Mob Software: The
Erotic Life of Code, Gabriel points to the series of
failures that preceded NASA's eventual success sending humans into
space, thus skewering the
widely-held idea that the space program demonstrates that a disciplined
team of engineers can produce reliable results quickly and cheaply.
There's lots of other interesting material here, particularly if you
chart the evolution of Gabriel's thought from earlier to later essays.
In
Patterns of Software, Gabriel laments the fact that, due to
the overwhelmingly proprietary nature of software (in the 80's and
90's), it was impossible for programmers to study the code of great
programs in the way that architects can study great buildings. He also
cites the poor quality of Free Software (in the forms of emacs and gcc)
as one of the factors that helped drive his start-up out of business. In
his 2000 essay
Mob Software, Gabriel celebrates the emergence
of Open Source as enabling the very study he earlier wished possible,
and goes so far as to suggest that the revolution Open Source is part of
may overturn the conditions of
Worse is Better
that Gabriel has famously described.
Like his muse Alexander, Gabriel puts forth some heretical ideas. The
virtues of code reuse are questioned and the overuse of abstractions
decried. It's all done in a very readable style, but the insights
contained compare favorably with related texts such as ESR's
Cathedral and the Bazaar and Highsmith's
Agile
Software Development Ecosystems. I'm not sure I'd agree with
the jacket of
Patterns of Software that this material is of
equal interest to programmers and non-programmers alike, but I've found
it invaluable as I reassess my understanding of software development and
its place in the world.
[/book_review]
Wed, 25 Feb 2004
Free as in Software
Yet another debate over the best way to achieve freedom in software is
in full effect. This time, the proximate cause is the Apache Software
Foundation's adoption of a new license version, called the
Apache License 2.0,
which has
been poorly recieved by members of the GPL and BSD camps.
Someone at the FSF has declared that the
Apache License 2.0 is incompatible with the GPL
because it contains some restrictions about license-holders' actions
with regards to patents.
Perhaps more significant is the OpenBSD project's
rejection of the license
as excessively restrictive, which forces them to start
maintaining their copy of apache as a fork under the code's previous
license (ASL 1.1).
I've been using, advocating, and making minor contributions to various
forms of free software for a number of years, but the One True Way has
never been clear to me. Use of the GPL is demonstrably compatible with
the development of lots of good software. The same can be said for the
BSD license, the old ASL, the Artistic License (from perl), the Mozilla
Public License, and probably some others that I can't think of. In the
long term, this proliferation of workable licenses is probably a good
thing, as it may allow the best ideas to prove themselves in the field.
Right now, though, it sure is chaotic.
[/code]
Tue, 17 Feb 2004
The Ugly Face of Activistism
The article
Action Will Be Taken
at the
Left Business Observer explores the
emerging popularity among progressives of a disturbingly
anti-intellectual worldview, which they dub
activistism.
Rather than go through the long and painful process of
developing a better worldview than the Global Free Market
Fundamentalism embraced by the elites, many have put their
faith in action. But this leads to all sorts of problems, which are
expounded upon in the article.
The article closes with a
call to action:
We're not calling for leadership by intellectuals. On
the contrary, we challenge left activist culture to live up to its
anti-hierarchical claims: activists should themselves become
intellectuals. Why reproduce the larger society's division between
mental and physical labor? The rousing applause for Noam Chomsky at the
World Social Forum in Porto Allegre was hardly undeserved, but ideas
don't belong on pedestals. They belong in the street, at work, in the
home, at the bar and on the barricades.
Couldn't agree more. Chomsky is a great example. On the one hand we have
young turks claiming
the only useful thing Chomsky could do at this
point is set
himself on fire (seen on
nettime), on the other we have
people at Chomsky's talks prefacing their questions with self-effacing
statements like
I know I'll never understand this as well as you,
but... (heard at MIT). But why do people pin so much on one man?
It's worth spending time with Chomsky's ideas, because he's sharp and
has put a huge amount of his life into working towards democratic
values. But he's only one person, and has his own foibles just like
anyone else. I suspect that it's this very reluctance among many progressives
to do the intellectual heavy lifting that leads to such fixations on
prominent intellectual figures such as Chomsky. Screw that, DIY.
[/general]
Sun, 15 Feb 2004
Agile Software Development Ecosystems
I was pleasantly surprised by Jim Highsmith's
Agile Software Development Ecosystems,
which appears at first to be a rather dry list of software project
management approaches, but is mostly very readable and a bit
revolutionary. The strongest parts of the books are Highsmith's
interviews with notable folks including Kent Beck, Martin Fowler, and
Ward Cunningham, together with Highsmith's analyses of what's gone wrong
with common approaches to software development.
If the 381 pages can be distilled to an idea, it would be something like
this: any kind of halfway interesting software project is a learning
process for both programmer and user, so you need to emphasize
communication and openness to change in response to the things you learn
as you proceed through the project. Although this sounds painfully
obvious, Highsmith points out that the approaches that became popular in
the 1990's (which he labels Rigorous, in opposition to Agile)
make the opposite assumptions: that
all of a project's functionality can be perfectly determined ahead of
time, and that written specifications and documentation can be used by a
non-coding "architect" to design a solution that is in turn handed to
cube-dwelling automatons who laboriously crank out code, which is
finally handed over to the client and called complete. No wonder so many
projects end up tremendously over budget and under expectations.
Part of what makes this book great is its relaxed and confident approach
to the subject matter. Highsmith doesn't set out to convince us that his
way is the best way or the only way to run software projects. Instead,
he spends lots of time talking about the situations where Agile methods
are appropriate, and where they aren't. Though he doesn't dwell on the
topic, these discussions are of particular interest to American
programmers worried about outsourcing; the projects that benefit from an
Agile approach are those that require constant interaction between
programmers and customer, which is not so easy if the former is in India
and the latter in Indiana.
[/book_review]
Wed, 11 Feb 2004
Rotary Fishtanks
Dave? Russ? I think you guys need to check
this out. For the
uninitiated, the rotary is an alternative evolutionary branch of the
internal combustion engine family. With sufficient R&D it is possible
that the rotary design would surpass the conventional reciprocating
piston design in efficiency and reliability. Unfortunately, only Mazda
has put any real work into the design, most of which has been in
high-performance applications such as the classic
rx7. Until now -
Paul Cochrane in Australia has developed a fascinating new line of
applications.
[/general]
Fri, 06 Feb 2004
Massachusetts Lawmakers: screw the economy, let's placate a conservative minority
Researchers have demonstrated a connection between having a
welcoming environment for
creative people
and spurring economic growth. Massachusetts, of all places, should have
this in the bag. Boston/Cambridge is one of the world capitals of higher
education, and the area encompassed by Route 128 is one of the densest
homes of high tech innovation this side of Silicon Valley. The Boston
area has great public transit, rich cultural resources, and a diverse
population. Obviously there are downsides, including the high cost of
living, unmarked and potholed surface streets, and other typical urban
issues, but the point remains that this is an area with a rich history,
primed for further economic development.
So it seems a bit odd that Massachusetts politicians would
try to create
a climate in the state that is inhospitable to the well-educated,
open-minded people that are needed to keep the state's economy going.
While the various for and against organizations are generating lots of
calls to politicians,
polls
indicate
that there's no consensus either
way on the issue. So why are people like Finneran putting so much energy into the issue?
Perhaps because it's easier to try and drum up votes from diehard partisans than
it is to bridge differences and solve the problems that affect all of
us. I'm reminded of the way that Louise Day Hicks took a
de
facto pro-segregation position throughout her career, not because
she was racist, but because it guaranteed her a solid base of political
support.
[/rant]
Wed, 04 Feb 2004
Why is this still hard?
A group called the
Organizer's
Collaborative has a Visual Basic desktop application used by
nontechnical folks. It works nicely enough now, and has a volunteer
programmer who continues to fix bugs and add features, but the VB platform
prevents taking advantage of the following opportunities:
- Mac users would like to use the app but VB only runs on windows
- People in other countries like Japan would like to be able to use
the program but upgrading to a unicode-happy version of VB would
introduce further restrictions (that I don't get since I don't follow
VB)
- Free Software advocates would like to help with the project but
don't want to work on a program locked into the Microsoft
environment
Thus a change in development environments appears timely, although the
usual constraints are in place (little money or access to programmer
time, rich and expanding set of features) and such a move couldn't be a
step backwards for users on Windows, so the application needs to
continue to be responsive and a small download that's easy to install.
In the year 2004 of our common era, it should be a snap to find a
rapid application development environment that runs on Mac, Windows, and
Linux, has good unicode support, and is Free Software, right? Maybe,
maybe not.
There is always that first and most infamous "write once, run anywhere"
product: java. The requirement that the user might have to download a
JRE seems like enough to rule it out. I still haven't seen an acceptably
lean, snappy, and non-ugly java GUI either, though I will admin that the
last one I saw in
2003 was enough to put me off them for another year or two, much as in
2002, 2001, etc. The Freedom question is tough, too - all the tools for
developer and user are at least free of cost and available on some Free
platforms, but I believe Sun still plays their ownership card tightly.
How about using Python? It's a popular language with a few GUI bindings,
in fact it comes with one called Tkinter. Unfortunately, reports on
Usenet indicate that its OSX version doesn't work well.
Another python GUI is wxPython, the solution settled on by
the smart folks building
Chandler. It targets all
three platforms and fulfills the other requirements as well. OSX support
is rumored to be OK now and steadily improving.
One potential problem with using python: Windows installation is
covered with
py2exe,
and linux might be addressed by .rpms and .debs,
but users on Macs are presumably going to have to install the pieces by
hand, which is not going to work for the average nontechnical type. Not
being a Mac person I might be missing something, but I don't see
anything on the web to suggest that there's an acceptable answer right
now. So wxPython seems like a 'maybe', with some downsides.
All these niggling details of the GUI tools remind me why I like
web development - it's a relatively easy way to build cross-platform
applications. The tradeoff, obviously, is that the GUIs one can
efficiently create through HTML are either painfully limited, or they work only
in one point version of one browser on one platform. Traditionally. But
now there is the "Mozilla platform", which among other things makes it
possible to harness the toolkit that powers the desktop applications
Mozilla, Firebird, and Thunderbird. To be precise, stuff designed with
the Mozilla toolkit now uses a combination they call XUL, rather than
the original Mozilla browser/email/etc suite's XPFE. From what I can
tell, in XUL, the user interface is defined in XML & CSS, and
application logic ties in with some brew of XML and javascript, and
possibly C / C++ / ?. After chasing around the web for a few hours, it's
also clear that XUL is a moving target right now, and the assumption
seems to be that most apps are going to be client / server rather than
desktop only. I'm guessing that one can build standalone apps that keep
track of their own data, but it's going to take a bit more reading.
[/code]
Mon, 02 Feb 2004
Whither the o-log?
Had a great chat today about the potential uses and abuses of weblogs
for
small nonprofits and grassroots organizers. A
couple key points:
Most people have no idea what a 'weblog' (or worse, 'blog') is.
This is not news. What I hadn't fully grasped is that, for those few
members of society who have an idea what such a thing might be, ideas of
'what-I-ate-for-breakfast' and 'picture-of-my-cat' predominate.
Naturally, people with such an understanding think you're crazy if you suggest that
weblog technology could be helpful with their serious work. Maybe
another moniker along the lines of
k-log
is in order? Either way, this is an issue to keep in mind when spreading
the gospel.
Second point: weblog-type functionality serves a crucial role in helping
uninformed visitors assess the vitality of a website, and by extension
the project represented by the site. A great
static site might have been built 4 years ago and left to languish, but
a simply designed site that features regular updates on the activities of
the project proves that the lights are on and somebody's home. Given that
there are way more projects happening than I can ever be aware of, much
less participate in, I am much more likely to look closer if I can be
confident that there's something going on worth my while. Before weblog
tools started to take over the web, these functions were often served by
publicly accessible archives of an email list, but putting regular
updates directly on the website reduces the effort required of the
visitor and gives a project a better opportunity to craft the messages.
[/media/weblogs]
Sun, 01 Feb 2004
The Revolution will not be Televised
Over New Year's weekend I was in San Francisco and saw that
The Revolution will
not be Televised was screening. It didn't fit into our schedule and
I was bummed to miss it, but things turned out for the best and I got to
see both the film and a lively debate last night in Cambridge.
The film shows a Chavez who is a dedicated servant of his country's
lower class, who enjoys loyal support from his officials and the poorer
people. We see thousands of notes written to Chavez, asking his help
with personal and community problems. It is also striking how seriously
the poor have embraced the new constitution; everyone seems to
have a copy and know it by heart.
In contrast, the elites and the media they control (including
all television channels other than the one owned by the state) are shown
to be almost rabid in their contempt for Chavez, his policies, and his
supporters. We see a neighborhood meeting of the wealthy, who
are instructed to keep an eye on their servants as they may be sympathetic
to Chavez, and are encouraged to learn how to use handguns and to expect
that their use will soon be necessary. The elite-led opposition looks
even worse when it stages its military coup, in which Chavez is made to
surrender from his palace to prevent it from being bombed by the
military. The newly-installed elites - primarily older white men, in
contrast to the diversity of Chavez' officials - are shown celebrating
as they officially dissolve the national assembly, supreme court, and
other democratic institutions.
As is indicated by the title, one theme of the film is the commercial
media's complicity in the coup. After Chavez supporters have marched
through the streets and inspired the palace guard to take the coup
leaders into custody, we see Chavez' officials, inside the retaken
palace, watching a commercial channel interview one of the escaped coup
leaders, who insists that everything is under control and that the
palace is still controlled by the new government. The US government is
shown to be on the side of the coup as well - we see a clip of Colin Powell
praising it as a victory for democracy.
After the film was over, a lively discussion ensued. The first to speak
was a woman who identified herself as a middle-class member of the
opposition. She argued that many in the opposition are sympathetic to
Chavez' goals of building a fairer and more democratic society, but
don't believe that Chavez is capable of achieving those goals. Others
pointed out that it was very strange that someone interested in fairness
and democracy would side with the wealthy elites who had engineered a
military coup against a democratically elected leader.
A number of claims were made by opposition members about inaccuracies in
the film, but even if all these claims were true, the basic conclusions
of the film remain. Certainly the situation in Venezuela is far more
complicated than is depicted in the film (no surprise there!), but I
certainly did not hear anything to make me think that there was any
moral justification for the coup, or that the elites who lead the
anti-Chavez opposition have anything in mind but a return to the corrupt
looting of the country that their predecessors have engaged in.
Some resources for further reading: the Chavez-critical
Caracas Chronicles
(see at least the
hilarious autobiography
of the writer) and the Chavez-supporting
Venezuela Analysis. As
one of the top five oil producers in the world, access to Venezuelan
resources is high on the US list of priorities; at the same time,
Venezuela has the potential to be one of the biggest victories for
grassroots democracy anywhere in the world. For these reasons it seems
rather important to keep our eyes on what happens there, and what the US
government does or does not do to shape the situation.
Update:
some
reasons to suspect CIA involvement in the coup, along with more
background.
[/media]