<?xml version="1.0" encoding="UTF-8"?>
<!-- name="generator" content="pyblosxom/1.3.2 2/13/2006" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
<channel>
<title>Isaac Jones Blog 25 Oct 2006</title>
<link>http://blog.syntaxpolice.org/isaac</link>
<description>Welcome to the Future</description>
<language>en</language>
<item>
  <title>The Fun of Functional Infrastructure</title>
  <link>http://blog.syntaxpolice.org/isaac/technology/onInfrastructure.html</link>
  <description><![CDATA[

<p>Say the word "infrastructure" and you conjure up the images of
paved roads, hot water, and that <a
href="http://en.wikipedia.org/wiki/Series_of_tubes">series of
tubes</a> that makes up the Internet.

<p>In other words, <i>infrastructure</i> is that necessary stuff that
lets you get your job done, but it doesn't seem <i>sexy</i>.  Every
open source project needs a high-quality infrastructure, though, and
it turns out that building infrastructure is extremely <i>fun</i>,
even though it's not as sexy as building "the next killer app".

<p>I've spent a lot of time building software infrastructure.  The <a
href="http://www.debian.org">Debian</a> project is (mostly) not about
building new applications.  It's about brining together projects with
a solid infrastructure so that real people can use it.  <a
href="http://www.haskell.org/cabal">The Haskell Cabal</a> is a piece
of infrastructure that helps other people to compile and distribute
applications.

<p>So what makes building software infrastructure seem less fun, even
though it's really  great?  It's the idea of  measuring the results of
your work <i>indirectly</i>.  It's easy  to say that we wrote <i>n</i>
lines of code this year,  or that "my application" has <i>n</i> users.
Depending on the size of n, that might make us feel good, or feel bad.
But  measuring results  indirectly is  much  harder.  You  have to  be
content to say  things like, "I <i>helped</i> 10  programmers build 15
applications for 5000 users, but I only helped each one a little bit."
That's an indirect result.

<p>But if you are more interested in the <i>result</i> than in <i>who
creates it</i>, then you're in a good position to let yourself have
fun building infrastructure.  If you are more interested in fun than
in glory, then you're in a good position to get fulfillment in life :)

<p>In fact, infrastructure is really fun to build, at least in
computing.  You get to take a series of tubes and put them together in
a new way.  You get to lay the groundwork for many projects that come
behind you.  There's a bit of systems administration, a bit of
hacking, and a lot of contact with the your peers in the community.
People will help you figure out what to build since they're chasing
right behind you using your stuff (at least in the open source world).
People will respect and even occasionally thank you for helping them
to do their job.

<p>Of course, some pieces of infrastructure become sexy.  Debian's
apt-get is considered pretty darn cool among those in the know.
Writing awesome compilers that real people use (like <a
href="http://www.haskell.org/ghc">GHC</a> or <a
href="http://www.galois.com/crypto.php">Cryptol</a>) is the dream of a
lot of computing science academics.  The Internet itself is actually
cool these days, or so I hear.

<p>The <a href="http://www.haskell.org">Haskell</a> language and
community is badly in need of infrastructure right now.  We need
people to flesh out and improve the existing debuggers, code coverage
tools, and IDE support.  We need a robust <a
href="http://hackage.haskell.org">package database</a>, sysadmin
support, and project repositories.  We need folks to make Debian and
Gentoo packages from Haskell packages.

<p>If you like people, and want people to get to know you and to
appreciate your work, then go out there and discover an important
piece of infrastructure that people need.  Ask them what exactly they
want, how they would build it, but be sure to bring your own vision to
the project as well.  Most of all, have fun building something with
your friends.

]]></description>
</item>

</channel>
</rss>
