bitwise technical
editor Dermot
Hogan has managed and developed global risk
management systems for several major international
banks and financial institutions; he is currently
developing a Visual Studio Ruby
programming environment.
In this month's Bytegeist,
Dermot considers the The Cult
Of The Hacker - and says he'll have none of it!
CALL ME A HACKER ...? ...By Heavens, Sir! You'll be hearing from my lawyer.
"A hacker is an ill-trained
coding dilettante, an amateur - and someone to be
avoided at all costs..."
Are you a hacker? If you are - and you admit to
it - I venture to suggest that you and I may have some
irreconcilable differences of opinion.
To me, to be called a 'hacker'
is an insult, somewhat near to those insults which are
bandied about in the Australian parliament from time
to time: "the Honorable Member makes a dingo's
droppings look tasty"... that sort of thing.
Incidentally, for the full, unexpurgated version of Aussie
political insults I suggest you study the choice quotations
of the former Australian Prime Minister, Paul
Keating.
Unfortunately, in a family magazine like Bitwise most
of Mr Keating's finest have to remain hidden. But to
give you a flavour, here's one of the printable ones:
"I was implying that the Honorable Member for Wentworth
was like a lizard on a rock - alive, but looking dead."
Anyway, back to hacking...
To some, hacking is a good thing, a noble enterprise
engaged in by honest souls working for the benefit of
mankind. Having spent a good few years repairing the
depredations of corporate hackers, I have a different
view. It's reinforced by the things you come across on
the Internet. At least corporate hackers keep their ill
thought-out changes well hidden. But, public or private,
to me a hacker is an ill-trained coding dilettante, an
amateur - and someone to be avoided at all costs.
To prove my point, you really just have to look at almost
any open source project. These tend to fall into three
types:
There's the vastly ambitious (and insane) ones:
rewriting the whole of Java Swing in Lisp, say. These
end up dead after the initial enthusiasm of the initiator
has faded - or he's been carted off to a mental institution.
There are thousands of these - just look in SourceForge.
Then there are the projects
written in commonly used languages - like PHP - to
which any illiterate programmer seems to think that
he or she is entitled to contribute. There are many,
many 'hacks' contributed to these kinds
of projects, each 'hack' seemingly fixing a problem
caused by another 'hack'.
Finally, there are the tightly controlled projects
- like Linux or MySQL. Hackers just aren't allowed
anywhere near the core of these systems. They are coded
by professionals who are paid for their efforts (who
do you think pays Mr Torvalds' salary?) These are the
projects that work.
On The
Other Hand... For a more Utopian
view of hacking see:'How
To Become A Hacker'
"Hackers solve problems and build things, and they believe in freedom and voluntary
mutual help... Hackers are naturally anti-authoritarian. Anyone who can give
you orders can stop you from solving whatever problem you're being fascinated
by
- and, given the way authoritarian minds work, will generally find some appallingly
stupid reason to do so. So the authoritarian attitude has to be fought wherever
you find it, lest it smother you and other hackers."
There's also another class of open source project,
normally done by academics. These really are free - no
GNU-like licences here. Two of my favourites are TeX
by Donald Knuth and Antlr by Terrence Parr. These projects
really are extraordinarily good and they are so because
they have a single directing intellect behind them: no
committees or well-meaning 'hackers' around.
This 'cult of the hacker' seems to have arisen in the
last few years from two factors: first, the availability
of high powered, cheap computers. It's easy to sit down
at a computer, with a good IDE, and write code. The problem
is that you tend to miss out on an essential part of
the process here. It's called design.
The second source of hackerism seems to be college computer
science courses. Now I'm sure there are good computer
science courses and bad ones. But I know that when I
was recruiting programmers, the last people I would recruit
were computer science graduates. I nearly always went
for mathematicians, engineers and physicists first (oddly
enough, I never came across a chemist who wanted to be
a programmer: probably too busy manufacturing illegal
drugs). I didn't consciously adopt this recruitment policy.
It's just that the brightest people weren't those who
did computer science. I generally (but not always) found
it better to hire brains rather than experience; you
can train bright people, but getting the less able to
do what you need is more difficult. I'd hire an expert
when needed, of course - you don't pick up the required
knowledge of how to tune a big relational database overnight;
it takes years of practical experience.
I don't know whether this is still the case with computer
science graduates - it's a long time since I was in
that sort of business - but I suspect that it is still
so. I was trained as a physicist, but it was only many
years later, after I had left college, that I realised
that the awesomely bright people who tried to teach me
weren't so much teaching me physics; they were teaching
me a way of thinking about the world. This method of
analysis is now something I use continually but I didn't
realise at the time that I was even being taught it.
Being young and naive, I thought that electrodynamics
was the important thing: it wasn't - the way of
thinking about electrodynamics
was the nugget of gold. I've never once used Maxwell's
equations in my working life. But I have used that way
of thinking continually. I can't tell you what that way
it is - but I can recognise it in others.
You can see this in Microsoft's famous (infamous?) recruitment
tests. These are aimed at trying to detect the best people
out of the many thousands that apply to the Evil Empire.
Some of the questions are whacky, some are tricky. I
don't know how effective they are, either. But Microsoft
are trying (along with Google, Apple and, I would guess,
IBM, though why anyone with a spark of independent thought
would want to join Big Blue beats me) to get the best
engineers from a horde of undifferentiated computer science
graduates. One thing I would bet on - saying that you've
contributed a 'hack' to some PHP project won't get you
very far. And neither will a working knowledge of sorting
algorithms obtained from a computer science degree.
Incidentally, I don't think I'd pass Microsoft's tests
- but, hey, you can now buy books on how to pass them!
I've also had enough of working for large corporations
- they have ways of screwing things up you wouldn't
believe. But if anyone calls me a 'hacker', they'll hear
from my lawyers...