Since I sometimes write and also do some programming, I began to wonder if there really are any significant differences between the two activities.
On the surface, it would seem that the two are very different. Programming is usually associated with logic and hence, with the left hemisphere of the brain. Writing, on the other hand, is normally viewed as a creative endeavor which taps on the right hemisphere just like other things creative.
Studies show that creative people have a dominant right hemisphere and logical people have a dominant left. Since one side is dominant than the other in both types, does that mean that writers can only write and not program well, or that programmers can only program and not write well?
I think both are really just different sides of the same coin just as Slackware and Debian are different packages of the same Linux kernel and GNU components.
Writing is not purely creative. You need a dash of logic to put structure in what you write. Programming is not pure logic either. Most of the brilliant hackers (think Dennis Ritchie, Ken Thompson, Richard Stallman, Linus Torvalds, Bill Gates, Steve Jobs, Eric Raymond, etc.—not network intruders or system crackers) are known to be very creative people. And in programming, sometimes only creativity can get you out of a situation where logic and reason deem hopeless.
Both of them even have the same elements. Communication is the raison d'ĂȘtre of both. In the case of writing, you are communicating with another person—your readers. In programming, you communicate with the machine. Both also use language to communicate. This could be English or Spanish for writing, and Lisp or Smalltalk for programming. And just like any other languages, programming languages also have grammar; they just call it syntax. They even have their own elements of style.
I like to think of programming as “writing” a program and do it just like I would do any writing project. There’s still that planning phase before any writing gets done, of course. The only differences are the language and references I use and my target audience. Instead of a dictionary, I reach for the language’s class or function reference—I even use a text editor for both.
I believe that writing a program is like writing a book (programs also have publishers, right?). A small program equals a small book and a large program equals a large book—or a series of books. I could be wrong, of course, considering that I haven’t written any significant program (or book) worthy of SourceForge or Google Code. But then again, maybe the next hottest programming methodology will be called Persuasive Programming wherein you aim to persuade the computer to refrain from giving you headaches and to just do whatever it is that it should do.
What do you think? Could it be that we got it wrong when we correlated programming, which deals more about the abstract and conceptual, to building construction which is more about real and concrete materials? Should programmers, then, be called Software Writers rather than the current and more macho title of Software Engineer and Software Architect? Or shouldn’t writing and programming mix?


No comments:
Post a Comment
The main rule in posting comments here is simply to act the way responsible adults should and have fun.