Semicolons and Tabs vs. Spaces - A Universal Answer

There has always been discussion and debate on various topics in programming. I believe none have been backed with the passion and unmovable beliefs of either side of the debate as with these two topics.

Should a programming language require semicolons to terminate a statement? Javascript allows either way. Should you use them anyways?

Should code be indented with tabs or spaces? If spaces, how many? Four? Eight?

I've been in these debates myself. Hours spent discussing the merits of tabs, benefits of spaces and the tradeoffs of each style. Are semicolons ugly, clear, useless, or mandatory?

These arguments have been going on for ages. Recently however there seems to be an uptick in these types of discussions.

I came across two just today. The first being episode 2.0.9 of This developer's Life. Most of this episode revolves around the semicolon's debate with excellent interviews with Scott Hanselman and Aaron Patterson among others.

The other was Stupid Question 44. This is a blog post about using regions in Visual Studio. For those of you who aren't .NET developers, regions is an IDE feature that lets you surround a set of methods grouping them into a "region". This does nothing more than let you collapse that code in the IDE. It accomplishes nothing at runtime. The compiler completely ignores them. Pro-regioners say they help organize code. Anti-regioners say you're code shouldn't suck in the first place. There seems to be no in between.

I piped in with a comment on the regions post, then it hit me.

I have an answer to all these questions!

There is one single answer to address every one of these questions. Semicolons or not? The answer to this is identical to the tabs vs. spaces questions. The same for the regions questions.

Here it is. . . . . . . . . The one true answer. . . . . . . . .

It doesn't matter! Now get back to work.

I believe wether you're on the job or working on a hobby project, we as developers are trying to produce value. To solve a problem. To create something. To put a dent in the world, or at least a script to backup some files. Spending time on these types of religous debates accomplishes nothing. Let's focus on what matters.

No user of our software or customer of our companies sees or cares whether we used tabs or spaces, semicolons or not. In fact, the process running our application doesn't even care. By the time our carefully placed characters have been put through the compiler or interpreter all the energy spent debating has been filtered out and the end result is identical anyways.

Let's spend our energy on useful things instead, like how crappy php is. :)