The hacker ethic

by Jono Bacon

Anyone who is even vaguely familiar with free software/open source is likely to be familiar with the hacker. While I will spare you the lecture about the true definition of the term 'hacker', there is no doubt that this devoted individual who has no interest in 'owning your box' as per the press representation of the 'hacker', has a particular motivation embedded in their brain that makes them a hacker. This individual often spends many hours sitting in front of vi or emacs, staring at the code within, performing some kind of cryptic magic, trying to make the different parts of their vision make sense in the terse programming language that they use.


Hackers are notorious beasts due to one major reason: their commitment to the project. Although I have already coined a mental vision in your mind of a hacker in front of a whirring computer staring at code, the hacker can of course be involved with a non-code aspect in a project. This could include system administration with their home network, documentation, advocacy, web development or other areas. The key here is that the hacker typically strives to improve things, find the best solution and make things work better and faster. The hacker is often never satisfied with their work as they are always convinced that there is a better way, or a finer hack.


I believe that the mental machinery that makes someone a hacker is instilled at a very early age. As an example, when I was younger, I used to have a Commodore 64. This wondrous example of sheer processing power was my first real experience of playing with technology. When I got the C64 for christmas from the sleigh riding, chimney riding big man, I was basically left to my own devices to try and figure out how to use this thing. I was young, excited, confused, and had no idea how to use this chunk of keys, wires and squeaky tape drives. Worst of all, my parents knew even less, so I had no option but to figure it out on my own.


There I sat, hunched over the keyboard, staring at the screen in the same way that I would some 17 years later, attempting to mentally organise the wealth of possibilities with this system. I typed in things, they didn't work, I
typed in other things, and they also didn't work, but then I would type something in, and it would work. Wow. To the casual observer, they would probably not understand how:



10 PRINT "JONO IS COOL"

20 GOTO 10



could cause so much joy, but after spending hours subjected to a repeated battering of SYNTAX ERROR messages, a screen full of JONO IS COOL was a big deal. After a few minutes of excitement however, my calculating little brain was interested to see what I could do next. I had played games on my C64 and I had seen these graphical characters that I could control - surely I could do that?


This is essentially the key to the meat and potatoes of the hacker ethic. The hacker always wants to push things further. My first C64 program was simply not good
enough; I was convinced that I could push it further. I really wanted to see the limits of the machine, I wanted to see how far I could really push the C64. This was not only a desire in terms of writing code, but also applied
to actually seeing other software really push the machine. I would look at the various games available for the C64 and deliberately choose games that looked graphically impressive. To me, gameplay was second to the graphic ability in a game; I was never really interested in games, but I was interested in seeing the machine perform impressive feats of programming. The game for me was to sit there and try to figure out how they did it.


I know for a fact that this kind of thought process was nothing unique to me at all. Many other computer users and developers experienced exactly the same kind of thoughts and experiences when they were younger, and this sowed the seeds for their later forays with technology. In many ways, the computer seems to be the ultimate toy to the hacker. The computer can be made to work in various ways, and these ways can often impress the hacker and enable the hacker to push it even further. Naturally, this kind of excitement over technology is not just limited to computers. How many of you had/have an interest in robotics, electronics, home cinema, lego, woodwork and amateur radio. All of these interests have the concept of trying to push hardware to its limits, and trying to create and see new things, be it the craziest lego creation or building a steam engine in your
workshop.


When computers first began to start taking a consumer form, and the Homebrew Computer Club were developing the future peers of the industry, the hacker ethic really started to develop. This is when I believe a lot of true innovation started to develop. Hackers were getting source code for their computers and sharing it with each other to make their computers do new and interesting things. This concept of sharing was of course the norm until a certain Mr Gates send an open letter to hobbyists proclaiming the possibility
of charging for software.


Within the free software community, the same concept of hackers sharing with hackers has gained considerable popularity over recent years, and the ethic has been made available to a younger generation of would-be hackers.
Free software has created the same kind of peer review structure that seemed to inspire the early homebrew hackers to push their computers to new and interesting things; free software developers seem to share the same desire to push their software to do new and interesting things, and to enable their users to have better flexibility with their software. This organised chaos of hacking code with other hackers from around the world has not only created a culture of openness, but has also developed a culture of sharing and pulling together to to collaborate on shared goals and ambitions.


One of the reasons why I love free software is the fact that hackers can thrive in an environment that is right for hackers. I love the fact that when I turn on my computer every day, there is something new to read, download and
play with; there is always someone new trying something new. The desire to push the limits will never stop, and free software hackers will never stop trying to push free software in every way they can. This is why free software such as Linux will run on everything from a watch to a super computer cluster, and this is is why we have text mode quake, AALib, emacs with its built in web browser/news reader/kitchen sink, bootable CD distributions, floppy based rescue disks, text parsers piped into shell scripts and other innovative morsels of technology. Some are useful, some are not, but in the end it doesn't really matter, a hack is a hack.


The moral of this story is that we all love playing with technology. We all love pushing it in different ways and exploring new avenues of technical capability. We are all hackers, and whether you are a part of the free software ethos or not, hacking will unite those of us with a desire to explore, exchange and extend.

What are your thoughts on why hackers hack? Are you a hacker with a particular reason for hacking? Share your views below...


2 Comments

chase
2004-01-29 23:27:17
And the book is good too
"The Hacker Ethic" - Pekka Himanen


http://www.amazon.com/exec/obidos/tg/detail/-/037575878X/102-0883902-6236908

bluelightning32
2005-05-27 01:12:42
Games...
I'm not old enough to have used a C64, but I can see how testing games graphics on it would have been fun. Now it seems for computer games it's a matter of how expensive of a video card will I have to buy to get this to look good instead of how well will this push hardware to its limit. I suppose console systems take C64's role of fixed hardware, but it seems the rationale gap opened to divide user and developer.


I found it more fun to try to cheat in videogames with a hexeditor. Even more fun was the fact that it was hexeditor I wrote. The goal wasn't to beat the game's missions or other players by cheating, the game was a test of programming and reverse engineering skills to understand its inner workings.