Freigeben über


To Hack or Not to Hack

The other day I solved a problem in a slightly out of the box way. That is to say that it worked but its not the sort of solution you will see recommended by anyone as “the right way” to do things. The reasons for having to do this are not relevant except that this is an example of what I would call a hack. I said something on Twitter to the effect that I might still have some hacking in me. I received the following reply (the account has protected updates which is why I am not showing their name)

1 of the 1st questions my tech students ask is "Do you know how to hack?" then, "Are you going to teach us how to hack?"

My reply to that was to suggest asking students what they thought hacking is and why did they want to learn it. I think one would get a wide variety of answers from students. And from professional or other experience programmers as well. So what is hacking and is it good or bad? As with so many things there is a lot of grey here.

In most areas of endeavor hackers are not good things. In fact one dictionary I looked up the word gave as one of the definitions “a person who engages in an activity without talent or skill.” A hack golfer is someone who is not very good at golf. A “hack” in most fields is something that is not put together very well. Most professional would get pretty upset if you called them a “hack [whatever].”

Only in computer stuff do we elevate hackers to high status. Clearly we have a different meaning than most people/fields. I tend to define a computer hacker as someone who gets computers or software to do things they are not really supposed to do or to do things in ways they were not designed to operate. OK that is still rough but you get the idea. But is that really a good thing? Maybe, maybe not.

In general I think people hack when they don’t know “the right way” to do something. Often they rationalize think there is no right way or supported way to do what they want. On occasion they may actually be right. Of course that there may be a good reason not to support what they want to do may not occur to someone who likes to hack by nature. Smile 

Early in my career computers were far more memory limited. Program sizes had to be very small. Once you ran out of room you had to get clever. The operating system I was developing for allowed one program to easily start a second program using a method called chaining. Getting context and information to that second program was necessary but the ways to do so were limited. Almost any solution was pretty much a hack. It wasn’t pretty and there were few standards. But people did it and it sort of worked. Fortunately we don’t have to do that anymore – generally. Someone who continues to write code that way is still hacking but when it is not a necessary thing its not really a good thing. Support becomes a big issue as it does with most hacks. Why? Because often few can understand the tricky nature of a result that bends and mutilates the standard ways of doing things. And of course if the supported tools change in ways that break the hack it is all over.

The good thing is that a hacker tends to have some good knowledge, often of things most people don’t know about, as well as a real creative streak. Call it the ability to look for novel solutions to unusual problems. The more knowledge they have the more interesting and complicated problems they can solve. Hackers by nature tend to be information sponges – they absorb lots and lots of information and when you need some you can “squeeze” then and get some of it. The trick in managing them is to get them to understand that not every project is a chance to show how much more clever or tricky they are than everyone else. In the long run a non-hacked solution is easier to maintain, to modify, the enhance, to understand, and to generally get the job done in ways that are best for everyone.

So are you a hacker? Have I got you wrong? Are you a wanna be hacker? Have I described what you want to be or do you see a hacker completely differently? Do you hate hackers (perhaps think of them all as script kiddies or people who break into other people’s systems) and think I make them look too good? Let’s discuss hackers and hacking.

Comments