Hacking - Art or Science?
An anonymous reader asks: "The argument regarding the principle nature of hacking - be it an art or a science is not a new one. This paper hopes to discuss both the meaning of the term 'hack' and the underlying arguments for it being defined as an art or a science, in reference to the base principles and basic methodologies of the discipline. So in your opinion, is hacking art or science?"
Hacking is for newbs! LOLOL!!! ROTFLMAOOMFGBBQ!111!one!!!111one>
:-)
(Now that I've got your attention, and had a good chuckle...)
Let me put this to rest, once and for all. "Hacking" is not something to strive for, no matter what your defintion. What "hacking" is, is an expression of a natural problem-solving ability that all humans have. This problem solving ability can give us MacGyver-level talents allowing us to fashion a solution to any situation. Such innate talent is a good thing.
However, expressing it as hacking means that you're creating short term or disruptive solutions rather than long term solutions that will last. When hacking meets the discipline of Engineering, all hell breaks loose. Sure, that ugly hacked code you put in now does the trick in a pinch. But if it's not replaced with a long term solution in a hurry, it will cost the company large amounts of money in support and maintenece.
That's where true Engineering steps in. As an engineer (or architect as the case may be) you have a responsibility to weigh in all the competing factors to produce a solution that is both long term and inexpensive to maintain. Your solution may have to go through hell and back and still get the job done. You can never quite be certain of what situation your code will go through, especially if people's lives and/or fortunes depend on it.
So in short, leave the hacking in college. It was a lot of fun when you had raw, unfocused talent, but you should be more mature than that now. Use what you know to build a real solution and leave the "hacking" to the next generation of kids.
Javascript + Nintendo DSi = DSiCade
It be both?
As defined by wikipedia Art, in its broadest meaning, is the expression of creativity and/or imagination.
Science = Reasoned investigation or study...
Art or science... hmm. Could it be that the very question is a pointless exercise in semantics? Neither term is pejorative, so what's it really matter? Is it a fence or a wall?
Does it have to be either? Hacking, like most things in life, is neither a fine art or a pure science, so I'm always confused why certain people try to pigeonhole some discipline into either "Art or Science".
I hear this question over and over from some people. This question seems a little too academic and removed from reality-- if a discipline doesn't fit your narrow view of "Art or Science", perhaps the view is wrong.
If anything, I'd say hacking could loosely be called a craft, in the same way that any trade could be considered a craft--woodcraft, glasswork, gardening, auto mechanic or, just for fun, witchcraft (Hackers do mysterious things by reciting long incantations!).
Eventually many craftspeople are able to think outside the instruction manual and discover new ways to work their craft in ways that it wasn't intended to do.
"Can of worms? The can is open... the worms are everywhere."
Hacking something together is craft, or somewhat like an art. (Since the things produced are to have practical value it's not just an art.)
Mixed with a formal process and a good architecture hacking becomes engineering.
I believe hacking is neither an art nor a science, I think it's a craft -- comprised of part science and part art.
It's engineering plain and simple. To dress it up as anything else undermines the skill that is envolved in creating good code. The dictionary (dictionary.com) defines engineering as
The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.if that doesn't define writing code I don't know what does. There is nothing wrong with being an engineer.
I used to have a better sig but it broke.
This essay was much better when Paul Graham wrote it two years ago and called it "Hackers and Painters"
Nope. Programming is definitely NOT engineering. Not even necessarily software engineering. Some programming is part of software engineering, but not even close to all of it.
How can people claim any ownership to the title "engineering" when they refuse to follow any kind of process. Refuse to plan. Refuse to design. Refuse to analyze. Refuse to manage anything. Refuse to follow standards. Refuse to be rigorous in their duties.
People love to throw around the title "software engineer" when they mean "programmer". Don't get me wrong, not every piece of software needs to be engineered. Not even close. But most programmers in my 12 years of experience aren't engineers, period. But most of them wanted to be called "software engineers".
Hacking may have some engineering elements and even some artistic elements. But most of it is brute force application of technique.
My beliefs do not require that you agree with them.