Write Software for People, Not Computers
- 2 minutes - Jul 16, 2014
- #javascript#rant#design-patterns#web-development
Throughout a normal day, I end up reading a lot of information about current issues in technology, and today is no different. There was a debate raging about whether or not high-level math was required for programmers that was sparked by this article by Sarah Mei Programming is not math . While it is an interesting topic, and, surprisingly, I mostly agree with Sarah on this issue, that is not the most important portion of her post. The important part is instead a quote from Structure and Interpretation of Computer Programs from MIT Press, and is as follows:
programs must be written for people to read, and only incidentally for machines to execute. Structure and Interpretation of Computer Programs, MIT Press
The interesting thing to take away from this quote from a book designed to teach introductory Computer Science to college students is that this concept never seems to sink in to many software developers. It fails to sink in to entire groups of developers, so much so that there are actual contests to see who can write the most obfuscated code .
Fortunately for developers, style guides and best practices for various languages have arisen. If you are a front end web developer, one of the important style guides that includes best practices is Idiomatic JavaScript which will hopefully guide JavaScript developers new and old to write better, more consistent, and supportable code for their websites.
All code in any code-base should look like a single person typed it, no matter how many people contributed. Idiomatic JavaScript
An important concept to grasp, then is that all code in your project should look like it should have a single author and be easily readable by humans. A perfect correlation to the desired end result of skilled software development efforts should be as easy to read as your standard novel which has a single author. Interestingly enough, it seems that Sarah Mei was making this argument all along in that:
For actual developer jobs, by contrast, the two main skills you need these days are programming and communication. Sarah Mei
In the end it seems that if all of us anti-social developers work more on our communication skills and ability to work well with others instead of throwing up more roadblocks that make software development a walled garden, we may actually have the power to make things a bit better for everyone.