Write Software for People, Not Computers

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.

comments powered by Disqus

Related Posts

Always Namespace Variable Names in JavaScript

After running into a few issues with variable naming collisions over the past few days, it drives home how much we all should be namespacing our variable names in JavaScript. When writing JavaScript code that is only in use on your own website, you should still always namespace your variables. If you are writting a JavaScript library that will be in use on any website a user puts it on, namespacing your variable names is a minimum requirement.

Read More

Top 5 Ways to Make a Developer Your Enemy

  • 2 minutes - Apr 16, 2014
  • #rant

Developers are known to be some of the most finicky employees you will encounter in the workplace. However, this is a list of things that will annoy or infuriate developers and non-developers alike. Have the IT Manager send an email to all staff saying that all computers will have a keylogger installed. – This one is wrong on so many levels, the least of which is that it shows how little faith the company has in its employees and breeds mistrust of authority.

Read More

Why Use AddThis.com Sharing Buttons

AddThis.com produces a bit of JavaScript that enables website owners to quickly and easily add social sharing buttons/links to their website. In addition to allowing users to easily share your content socially, they also provide analytics information about what content is shared via which method, giving a greater insight into visitor behavior. However, just because it provides these benefits to websites does not necessarily mean that it is a good tool to implement on your website.

Read More