For those just broaching the topic, CMS (Content Management Systems) are a wide variety of programs and scripts that provide a skeleton of sorts to build a website on. These systems are pre-built in a 'vanilla' structure that provides base level functionality and the potential to be grown and customized greatly, as each project demands. The hallmarks of a well established CMS include plentiful visual themes that can be uploaded to the CMS, some sort of plug-in system that allows users to add complex functionality with pre-built code, and a back-end interface intended for both developer and less tech-savvy 'client' users.
Static code, on the other hand, is referring to the practice of taking an entire website, and building it from the ground up. This means every page, every stylesheet, and every script function is 'static', as opposed to dynamically created from moving parts, like within a CMS. Static sites are often seen representing smaller businesses and clients as 'brochure' sites.
CMS or Static, Who Cares?
At one point or another in every single website, EVERYONE should care. Or at least spare a thought to the topic. A few of the major reasons are listed below:
CMS Pros:
Use of a CMS can greatly speed the development of a web project through the use of high-quality theme templates and plugin functionality.
Websites can be organized and expanded with a high degree of fine-tuning and organization, with the back end handling automated tasks and content display.
The end client, and any of their users, are able to view the website and its content from the back-end administrative panel. Assuming the client has their own content to contribute, this goes a long way towards lessening the burden on a client who doesn't have time to learn about web code.
CMS Cons:
CMS can easily bog themselves down with unnecessary scripts, inline-styles, and unneeded functionality without a very close eye from the developer.
No CMS is perfect, and many can limit some advanced functionality, simply by nature of being reliant on specific web code technology. A PHP/MySQL-centric CMS like WordPress won't play nicely with other web technologies that don't account for it's install and function requirements.
Sometimes, having a back-end available is a non-desirable. Some clients don't even want to be able to see how the gears turn (or perhaps its in everyone's best interest they simply aren't let close to any delicate moving parts). An 'easy to use' back-end can be completely irrelevant or even potentially dangerous.
Speaking of dangerous, any well known CMS is going to come with as much security as is feasible built in. That also means, however, that said CMS will probably be used to build so many sites, its in the interest of less moral web-izens to crack said security for any time they want to take control of a sites information. An up-to-date CMS should operate safely, but can quickly become a target if neglected.
Is There a Right Answer?
No. Surprise! At best, you could say it's a case by case basis. On some projects, the speed and convenience of a CMS will make it the best choice, hands down. Sometimes a client may request static code due to prior experiences, or a very specific need from the site. In a perfect world where you always have surplus time (and a masterful grasp of all coding languages), I'd highly encourage you to hand code each and every time. In the meantime, is this very site built in Wordpress? Yes. Yes it is. And that works perfectly for what I need from it!