09:07 pm, 21 Feb 05
influential hackers
I've been thinking lately about the hackers that have inspired me and the sorts of people they are. Bear with me: I'll come back to this in a sec.
First, a top five list in the order I encountered them.
What's striking to me about this list (aside from the fact that they all ended up on LiveJournal -- no idea how Graydon got here, I just noticed him on a friend's info page) is that the sorts of people I've grown up admiring have been hackers in the nuts and bolts sort of sense, mostly doing what scholarly types would call systems.
For contrast: a friend got hit by a car (she's ok) and I took Sep to the hospital to visit her. (Sep: check out some of his papers for his background.) He recently sold his startup to Google and so he mostly had businessy questions about Six Apart, but we talked a bit about grad school. He said I ought to study machine learning. Machine learning! Who do I know who knows anything about machine learning?
Where were the academic types to influence me while I was still a kid? Sure, a lot of them end up wanking in academia but the same can be said for the vast majority of application programmers (which is what
jwz did, after all) who ending up wanking in the industry writing web apps. And the weirder thing is that I now have access to the academic cream -- tonight I was reading The boosting approach to machine learning: An overview and they kept citing Yoram Singer, who is one of the 15 or so people in one of my groups at work. But I notice I still look up to the systems guys.
It seems to me there's this whole body of knowledge that's screaming for somebody good at hacking things out to take advantage of but for some reason it doesn't seem to happen. This paper was explaining how Eq's 8 and 9 could be shown to be similar around zero because their Taylor expansions are the same "up to second order" and I was struck by how rarely these things I've learned (like Taylor expansions) are applied. Two theories:
I think there's another aspect: My friend Noam has created multiple large-scale systems that are great practical applications of crazy theoretical ideas (refuting theory (2) above), each probably worth more money than I'll ever be worth in my life. In terms of great hackers he ought to be at the top (he's got a really unique and awesome personality, too). But rumor has it he's a rather sloppy programmer. And I think that may get more to the heart of it: a researchy friend at work who just got his PhD came to me the other day to ask how to do something trivial with his computer, something like changing his bash prompt.
You see, for
jeffr to become a great kernel hacker he had to become a knowledgeable programmer and user first, and I think that's where the split lies: people at the tops of their field in e.g. machine learning, or computer graphics, are not necessarily actually good with computers. But the sort of person who naturally rises to fame making systems is almost by definition good at writing code. That is, good systems programmers are a natural evolution of good programmers.
First, a top five list in the order I encountered them.
- There's gotta be a whole generation of people my age who, just like me, grew up reading
jwz's gruntle and thinking "I wanna be just like him when I grow up". Computers aside, I think I even discovered Depeche Mode 'cause he wrote about them.
- I first encountered something
graydon wrote on a mailing list maybe five years ago and I've been vaguely following him ever since: he doesn't know it but he's responsible for all sorts of things including my discovery of functional languages.
- I actually probably met
jeffr because of his "fame", because that's how Jag met him. He's a top-notch fellow in general but what's especially inspiring to me is how unstoppable he became without any community to help him: my father worked with some of the earliest computers, my mother as a math major took one of the first CS classes offered at UCLA, my friends throughout middle school and onwards were computer geeks, but as far as I can tell Jeff just got a computer and went.
brad's unstoppable in a different way: a seemingly endless supply of good ideas and also the ability to make things happen.
- And the fifth slot is unclear, maybe Jacques Garrigue of O'Caml fame (pretty much any PL theory question or machine optimization that ever comes up on the mailing list is absolutely nailed by him) or Owen Taylor (Pango) or Linus Torvalds.
What's striking to me about this list (aside from the fact that they all ended up on LiveJournal -- no idea how Graydon got here, I just noticed him on a friend's info page) is that the sorts of people I've grown up admiring have been hackers in the nuts and bolts sort of sense, mostly doing what scholarly types would call systems.
For contrast: a friend got hit by a car (she's ok) and I took Sep to the hospital to visit her. (Sep: check out some of his papers for his background.) He recently sold his startup to Google and so he mostly had businessy questions about Six Apart, but we talked a bit about grad school. He said I ought to study machine learning. Machine learning! Who do I know who knows anything about machine learning?
Where were the academic types to influence me while I was still a kid? Sure, a lot of them end up wanking in academia but the same can be said for the vast majority of application programmers (which is what
It seems to me there's this whole body of knowledge that's screaming for somebody good at hacking things out to take advantage of but for some reason it doesn't seem to happen. This paper was explaining how Eq's 8 and 9 could be shown to be similar around zero because their Taylor expansions are the same "up to second order" and I was struck by how rarely these things I've learned (like Taylor expansions) are applied. Two theories:
- There aren't many problems where this sort of knowledge helps.
- There aren't many applications for Math in the real world.
I think there's another aspect: My friend Noam has created multiple large-scale systems that are great practical applications of crazy theoretical ideas (refuting theory (2) above), each probably worth more money than I'll ever be worth in my life. In terms of great hackers he ought to be at the top (he's got a really unique and awesome personality, too). But rumor has it he's a rather sloppy programmer. And I think that may get more to the heart of it: a researchy friend at work who just got his PhD came to me the other day to ask how to do something trivial with his computer, something like changing his bash prompt.
You see, for
It's not about what they've done, it's about the person.
I like your posts like this.
Some very bright physicists where I work do not understand basic principles of motion but are doing wonderful work on carbon nanotubes.
The academic/industry disconnect is pretty real, and it's hard for me to understand. One of my early jobs was working with this group of computational linguistics folks, taking their bits of code and trying to glom it into one "thing" that actually did something. See, there were all these grad students who'd get a thesis out of some idea about natural language understanding, and they'd end up writing some piece of demo code, then graduate and never actually finish it, or integrate it with what others had done before, so their advisor hired me to try and do that kind of nuts-and-bolts stuff.
The first shocking insight I had here was that, here were these people, extremely smart people who would spend six years thinking about one particular computer-programming problem, and not only were they not very good programmers, but they didn't want to be. They didn't want to be programmers! They were linguists, or if you squinted right, mathematicians, and once they had an abstract proof, they felt they were done. The purported goal -- which, according to their advisor, was occasionally something like "have a system that knows how to read unix man pages and then answer English questions about them" -- just wasn't interesting to them at all, that was just the means, not the end.
And I don't think this was even something as callous as "just give me my damned PhD, I don't care about the research." I think they did care about the research, they just didn't care at all about rubber hitting road. And in my mind, computers are only interesting insofar as they do things, so it took a long time for me to actually understand that.
(The second shocking insight was that the field of "computational linguistics" had progressed exactly 0.00% between the years 1972 and 1990, and had become nothing more than mechanism for transferring currency from the Defense Department to grad students. Which is not the worst use of DOD money I've ever heard of, but was still pretty disheartening.)
... with the exception that computational linguists built up vast corpora of natural language, thus providing ordinary linguists with lots of data to play around with. When I was working on my MA dissertation (in the days before there was a lot of Turkish on the WWW) I was greatly helped by a corpus prepared by the NLP project at Middle East Technical University.
in industry, at least "north american software industry", the isolation from research really gotten out of hand. as far as I can tell -- and I'm young so I'm just looking at this retroactively -- it seems to me that since sometime in the 80s software we've actually been traveling in reverse. regressing. we're publishing worse programs, in worse programming languages, and holding them to ever-lower standards.
that recent ACM article with alan kay says something about this. he mentions that he felt smalltalk was just a little stepping stone and he expected there would be this big flourishing of cooler stuff made by people raised on it. but he says that, unexpectedly, the spread of computers outpaced the ability of anyone to teach them sensibly, so the result has been a sort of "pop culture" of unsophisticated computer work on a massive scale. computers turned from an experimental thinking tool into a mass media, and lost a lot of their cleverness along the way.
this sort of lines up with my experience. I was in public school around that time. I learned logo and basic and whatnot on very simple machines in the early 80s. at that time educators (at least in rich-kid schools in suburban canada) were trying to teach young kids, 7 or 8 years old, simple programming languages, as a fundamental skill. when you turned on a machine -- an apple, icon, commodore, sinclair, etc. -- they had a language interpreter greet you right off the bat. you fiddled around with it and did little assignments like printing your name 100 times or asking you a question and switching branch based on the answer. I mean, you also played a lot of oregon trail and carmen sandiego, but the languages were there and sometimes you had to work with them. the bright kids in grade 5 or 6 could get the logo interpreter to draw pretty shapes, or play a warbly little song. there were popular magazines containing source code you could copy into the machine to have it do a neat trick. it seemed like there was optimism that these things would turn out to be part of our mental landscape. that programming would be a sort of "learning tool", like knowing how to read or do arithmetic.
I've gone back to visit classrooms now and this is no longer the mood. now every 7 or 8 year old uses computers, all the time. a billion times better machines than I had at that age. they have cell phones more powerful than supercomputers of my youth. but they don't know anything interesting to do with them. they don't even aspire to know how to program them. programming is some distant, industrial, uninteresting activity. they're tools for communication and gaming. and teachers, if they ever aspired to teach programming -- I'm not sure they did -- certainly do not want to teach it anymore. they just want the damn machines to be quiet so they can get the students to pay attention. all the computers in the classroom are effectively televisions.
http://www.nsba.org/site/page_REN4.asp?TRACKID=&DID=470&CID=428