Developers Should Not Write Shell Scripts
Jul 12th, 2007 by Alex
By the time you write enough Java code to be considered for the self-imposed “developer” title, you shouldn’t try to write shell scripts anymore. Do you system administrator and network engineers a huge favor and :q! now.
There are times when I get the impression that people don’t know what the hell they’re doing. I may not know a better way to do it, but I get uncomfortable when I get that vibe. Especially so when someone is senior to me. What ever happened to the “programmer” title? Programmers needed a degree in computer science and could write a dozen lines of code with their eyes closed. Developers have a degree in something else and cut and paste a lot. Developers have lots of reference manuals and use them periodically. Programmers might have the vi or emacs handbook but ignore all other reference materials; most of the time they’re either outdated or way too basic. Give me a classic programmer any day. Even if they don’t know what they’re doing they don’t get my stomach all tied up in knots.
Repeat after me, developers should not write shell scripts.
Alex, I found myself “starring” this article in Google Reader and read it a few times before I decided how I wanted to comment on the article. I notice you draw the distinction between “developer” and “programmer”, giving the latter a higher recognition. Throw “software engineer” in that mix and we now have three terms that are sometimes used interchangeably by people. The title with my company is “Senior Software Engineer”, however they assign people to projects they still say developer or tech lead, depending on their role.
I do quite a bit of shell scripting myself (both for personal means and for work), and I find it an indispensable skill to have. However there are some of my co-workers who I would trust them writing the simplest of shell scripts (or it would take them just plain too long). But yet they are decent developers in java/.net/etc. So I definitely see your distinction, however I believe it goes beyond the difference between developers and programmers. It is the difference between those that dabble in all areas of technology, outside of what they need for work, and also those who all the concepts and languages just plain “click” for them.
Hope I didn’t open up a can of worms on this one :=)
I think it comes down to multidisciplinary education, formal or otherwise. The more you know across a broad range of topics, such as shell scripting, enterprise design, networking… the better developer you’re going to be. A programmer — to me — has a good understanding of the underlying fundamentals. There’s too much connectivity and cross-polination across different types of systems these days to have a narrow/deep understanding of one topic area.