Do you know your favorite language?

Language battles aside, let’s not focus on which language is better or what’s so bad about a language; let’s focus on using the language.

Neo

When you are using a language for writing software you’d better know it well. When you write a line of code and need to compile it and run it to find out what the code does there is something wrong.

Imagine writing a book by using words and grammar you have heard being used but are not quite sure what it means or what its proper use is and finding out after publishing. That is why publisher and proofreaders exist. We expect different quality in use of language and spelling when comparing an average blog post (such as this one) and a book from Barnes & Noble. When a book has a lot of faulty grammar and spelling we toss it aside unless the reviewers (or the authors) inform us that this was intentional and an experimental style.

As for software: who proof-reads our code? Maintainability is an obvious worry and not that hard to ensure by peer reviews. Checking the code/software for the intended purpose is harder. That is why we should use (Unit) Tests. If/when we are sloppy at doing that (or too proud or too confident) by sticking to the easy scenarios or disregarding tests entirely software will suffer.

Read this test that shocked me for more than one reason. C and C++ programmers have this aura that emits a guru glow, an untouchable code warrior theme song and a scent of all-knowing power. Wise people don’t believe the aura. Silly people think they earned the aura.

Learn your language (and IDE too for that matter) and learn it well. Pick up a book or the language reference, attend a course and, perhaps most importantly, look stuff up when in doubt and then remember it.