I have been mulling this question over in my head the last couple of days because of a very annoying conversation with a colleague. Their opinion is that if you work in languages like PERL or PHP you are a ’scripter’ and not a true ‘programmer’. They feel that scripting is more hack and slash programming to solve an issue and not true development. I am obviously in the other camp for many reasons.
First, I have never been the type of developer who lets a language define my application development. I have moved from C, to PERL, to PHP, to Java, to ASP, to C# .Net with relative ease but varying results. You see, I don’t really care what the language or the structure of a programming language is to complete a task. What I am more concerned with is the results and the speed at which I reach them.
Most self proclaimed programmers I have run into tout the structure and organization of their programs as far superior to anything a scripter could create. However, these same people refuse to document their code in a way that makes it understandable. They trust that their programming skills will speak for themselves and code documentation just won’t be needed. In the real world, however, it always helps to have a map to see what is going on. Documentation is that map that ‘programmers’ skip. Scripters can fall into this same trap but since most linear programming is done this way at least it is somewhat easier to follow.
Second, programmers are under the belief that only complex code can solve complex tasks. This is not true. Efficiently written code can solve any task. If code is overtly complex for the sake of complexity or standardized structure, you are either trying to dupe someone into thinking you
work harder than you do or you are so embedded in the belief of absolute adherence to code structure is needed that you are missing the point of effcient programming. When a Zen Archer shoots an arrow, they only expend as much energy as is needed to accomplish the task. No more, no less. If the arrow is traveling 100 yards or 1 inch, it does not matter. The energy is the same. Programmers and Scripters need to adopt this philosophy. Code should be written to do what it’s intended task is. If it is written otherwise, it either lacks power to sustain itself or has unneeded levels of code or structure.
Finally, look at the major web sites out there and you will find a curious thing. Google: running on Linux with open source custom code written mostly in Java. Amazon: running on Linux using SOAP interfaces to their back end. Digg: running on Linux with a completely PHP back end. CNet: Linux servers with PHP and MySQL back ends. Yahoo: Linux based systems using a mixture of Java, Javascript, PHP, AJAX, and MySQL to drive their network of sites.
Now I ask you this, if you couldn’t write complex solutions with a “scripting” language like PHP, why would so many dynamic and technology driven sites be using it? Could it be that “programmers” need to stop worrying about their programming and should focus on their solutions no matter what language they use?
Tags: .net, application_development, perl, php, programmer, scripting
[...] Scripting Vs. Programming [...]
I’m with you. We are seeing a generation of loud mouthed bloggers emerging that talk about the “craft” and programming with this pattern, or that methodology, or this tier, or that object…yadda yadda yadda. That is all fine and good, but I find many of these new programmers are resume programmers…programmers more concerned with building their resumes and their “craft” tool box rather then meeting actual client needs. To be honest, these folks are kind of burning me out a bit. Seems the louder they get, the less fun programming becomes…
And building solutions is fun. So I have decided to ignore most of the blogging hip hop young coding facist. Let them take two years of development time to build a web site that sits upon layer after abstracted layer of patterns and frameworks and tiers…I’ll slip right by…and I won’t clean up their messes anymore after they have moved on to the next big gig to sharpen their “craft”.