Compilation Starts With A 'C'
Yeah, this might be a rather simple statement, mainly because the word Compilation really truly starts with the letter: 'c'. However, the idea also extends to the C language. Anytime a C program is built and sent off to its consumers there is a semi-complicated, definitely fiddly make/build process. This is what defines a compiled language like C or Golang from there interpreted brethren. An example of some interpreted languages would be the following: Ruby, Python, Forth. Is there an actual Forth "official" website? If for some reason you are human, and don't quite "grok" what Forth is, this is a pretty good explanation.
So why on earth is this worth another blog post? There exists an awash of blog posts, Quora answers and miles of Wikipedia edits concerning these topics. Glad you asked. All of this hoopla can be summed up in this one exciting NPM module called Harp. Harp, if you read their website, is an exciting static site blogging tool that will save you all the trouble of running one of those WordPress things. Which, if you read and listen to much of the Internet (no worries, it is chill you likely choose not to read), is like running a third world country.
Could this get any better you maybe asking? Well you could write all of your HTML in smaller, completely unmanageable chunks because only 50 out of every 328 web developers understands Jade enough to juggle where they are currently in that pipe field of hell.. But, no worries, Jade is way less fiddly because you don't have all of those brackets (shit, that's why I love HAML and SLIM because writing inline tags is a breeze and expected output is at an all time high). Except, when you want to include someone in the project who has no idea about Jade and tries to modify the compiled source because it just makes sense... to every web developer. Then we have trouble. Though now, how do you compile the compiled source? Yeah I don't know either. Presumably, and this is almost always a likely:
'Because I am not smart enough.'
Ok, so there are quite a few glaring issues with compiling things when the runtime is actually a perfectly good server. However, there must be some reasons for these kind of static site generators? Sure! Pet projects, quick one offs, LaunchRock style landing pages and personal blogs are perfect use cases. However, due to the technical knowledge required for bringing new team members up to speed, their reliance on committing compiled code to the VCS repository, and their somewhat beta 0.0.1-ness these should remain within the personal realm. Also, having to wait for someone to return from their lunch break just to get something compiled must be a boon for the entire teams velocity.