If you would've told me ten years ago that I'd be advocating the use of JavaScript for anything other than the teeny tiniest bit of flair, chances are I would've punched you right in the muzzle.

Then again, ten years ago, JavaScript was a Terrible language, absolutely terrible. The current generation of JavaScript in use today is ECMAScript 5.1, which was released in 2011 (Internet Exploder excluded of course, they're still using ECMAScript 3).

While it's true that, in the beginning when JavaScript was first invented, it was designed as a shitty little scripting language (by the name of LiveScript) used to augment browser behaviour for Netscape users. JavaScript started out being an interpreted scripting language, with slow and inefficient interpreters. Today however, this is no longer the case, things have changed.

The JavaScript engine in Google Chrome, the V8 JavaScript Engine, is not an interpreter. V8 is a JavaScript compiler (actually a set of compilers, but that's not important right now).

Google's strategy for speeding up JavaScript was to compile it down to native machine code. And for JavaScript that has been optimized for use with V8, execution is almost as fast as code written in a "real" language such as C. So I'd call V8 a huge success, and it's still getting better. So the excuse of avoiding JavaScript and client side scripting because it's terribly slow and inefficient, is pretty much null and void at this point, it's a moot argument.

What about JavaScript as a language? Is it still a terrible experience to code in it?

Well, yes and no. It has it's fair share of quirks, still, but it has evolved a lot since the '90s. Short answer is, it's gotten better. And it's still getting better. I'm told that ECMAScript 6 is going to further improve the language's syntax, and add some features that are sought after. One can only hope that the adoption of ECMAScript 6 will be sufficiently fast.

Then there's the whole JavaScript eco-system that has evolved in the past few years. It's downright amazing how far it's gotten in a few short years. We have front-end scaffolding utilities such as Yeoman, task runners such as Grunt, and package managers such as Bower. It's gotten to the point where the front-end tooling is matching that of any other area of development.

We've had an increase in speed by several orders of magnitude (not even accounting for Mores law). We have a good set of tools, with more and better tools on the way. we have some amazing looking modern frameworks, such as Meteor. we have unit testing, we have virtually anything you can think of that you'd need to start developing a rich client side application today.

So go download Yeoman (requires Node.js) and start building your client side application today. It comes bundled with Grunt and Bower, so you can take a good look at the multitude of packages already available to you with % bower search.

Don't worry about whether or not JavaScript is fast enough, it is, and will only get faster. Or that it's a language reserved for rank amateurs, it's not, take a look at Gmail.

A few weeks ago I started coding on a project for a client. While it is
true that I've been doing web development off and on for the past ten or
so years, there's one thing I've actively avoided; Javascript.

To tell you the truth, most of my work has been backend code. I've more
or less ignored the entire frontend side of programming, regardless of
environment. The user interface has always been secondary to me. That
changed a few years ago, when I was reading about UI first software
development.

In particular it was these words:

"When writing end-user software, UI design should really come first.
To the end user, the UI is the application."

This of course, made a whole lot of sense. The user doesn't give half
a rats arse how pristine the backend is, or how flexible and modular the
code is. If your UI is slow and ugly, your whole program is slow and
ugly.

So what do you do when you need to make a snappy feeling web based
application? Javascript. As a long time defender of the plain HTML,
suddenly realising the need for Javascript is uncomfortable to say the
least.

In Javascript's defence though, Javascript has come a long way in ten
years. Javascript processing in browsers has increased by orders of
magnitude. And with shiny frameworks such as JQuery, it's almost
easy to use (if you don't need to do something advanced).

The project I'm currently working on however, required more than just
standard JQuery. It called for a SPA architecture, which unfortunately
means that it have to be built almost entirely with client side code,
i.e. Javascript and CSS. Fortunate for me there are a lot of good
frameworks on the market for client side development. So far I've gone
for following:

Truth be told I'm feeling slightly overwhelmed. While I've used
Bootstrap and JQuery in the past, this is really the first proper client
side project I've worked on. It's a learning experience, to say the
least. Learning to handle a half dozen new libraries at once is a bit
of a mess, but the documentation is good. It's just a bit annoying
having to spend ten times as much time reading documentation as I do
actual programming.

In the end I've gotten most of things to work, next up on the todo list
is to integrate Mustache and Knockout. Hopefully this will make it
possible for me to split my HTML out in multiple template files. As it
is, everything is in a giant file, because I can't figure out how to
make Knockout load external template files...

Getting all of this to play together is a bit of a challenge, but who
doesn't enjoy a good challenge?

I figured it was time for me to get with the times and start one of them
blog things that is so popular among the kids these days. And what better
way to start a blog, than to write yet another blog engine?

I present to you, the worlds first blog powered by Augustus, a static page
generator (that totally isn't a rip-off of jekyll) written in php 5.4.

So far it doesn't do much, and some features are somewhat broken. The few
things that are done however are:

The testing server accessible via gusto run, courtesy of php 5.4.

The creation of new posts and pages.

Automatic indexing of tags and categories.

Some of the things that will be working, when I get some more time to work
on the engine are:

Archive indexing.

Improved post management.

Regarding the name

I am a huge fan of animation. And Augustus, or Gusto, is the name of the
character played by Rob Paulsen in Disney's Adventures of the Gummi Bears.
Augustus "Gusto" Gummi. And that is a character that I still to this day
think is a badass.