News & Views

Programming Language: Begin With Full Stack JavaScript

JavaScript & the MEAN stack (MongoDB, Express.js, Angular.js, and Node.js)

If you are considering making a career switch to web development you have many, many options; like way too many options. If you start looking around on forums you’ll find a lot of fairly useless information because most sr. developers are divas (this is written by a sr. developer, so I can say that ;) ) and have a very strong opinion about what is “best.” In this case “best” causes initial problems because how do you determine what fits that word? The language that is the best architected? That definitely is a pipe-dream, but even if you can win the argument, it makes no difference if you can’t get a job. The one with the most jobs available? There were an awful lot of Flash and ColdFusion jobs available 5 years ago and all those developers are standing around with their hands in their pockets or learning a new framework/language. Is it the one that’s easiest to learn? Used the most? Has the best prospect to last until we have flying cars?

Your options: there is the LAMP stack (Linux, Apache, MySQL, and PHP), ASP.NET and C#, Ruby on Rails, Java or Groovy on Grails, mobile development, both native Java/Objective C or a 3rd party option like Titanium or PhoneGap. There’s Python and Django or a zillion awesome JavaScript MVC’s. You could try learning Haskell (though I wouldn’t wish that on a snake), Google’s fancy language GO, Salesforce’s Apex, or UX stuff.

Is your head spinning yet? There are more options but I don’t want you to stop reading. At DigitalCrafts we chose the MEAN stack as our base immersive course and I’m going to explain why. It is not the “best” stack because that simply doesn’t exist. It is an outstanding choice for a variety of reasons, and I’m not going to knock any of the other frameworks/languages/stacks to get you there.

First off, it is, more or less, all JavaScript. Since the web’s inception an overwhelming number of frameworks and stacks have risen and fallen but the vast majority of them require a knowledge base that exceeds one person’s ability or requires years to accumulate. This makes a large team necessary which creates efficiency and productivity problems, source control problems, etc. JavaScript had humble beginnings in Netscape, but with the advent of Google’s V8 engine in 2008 an awful lot changed. The development community had slowly leaned more heavily on JavaScript to accomplish front-end manipulation, but then two important things happened. One, V8 sped up JavaScript so much that is now faster than PHP, Ruby, and Python, with hope (perhaps naively) that it may even outrun C someday. Two, Google made it open source so developers began re-dreaming what it could do.

There’s usually one outcome if you take the best developers in the world and give them something cool to play with: revolution. The browser began taking the reigns as the new workhorse of web development. Ryan Dahl developed Node.js, MongoDB popped up (MongoDB is not technically JS but it uses JSON format), and the Angular.js, Ember.js, Express.js,, Backbone.js, Meteor.js (to name a very few) frameworks surfaced. With Node.js taking Javascript to the back-end (server-side), MongoDB replacing the need for classic SQL servers, and the variety of JS frameworks that do everything from socket management to data binding, you have a language that can singularly do everything without any help.

Every website that survived the Web 2.0 phase uses JavaScript already. It is absolutely ubiquitous on the web whether native or in a framework like jQuery. The evolution of the language has created an extremely fast, one language solution that enables the entire stack. Node.js is one of the hottest technologies in Web conversation today, and JavaScript is featured in more job postings than you can shake a stick at. Another major advantage is that the technologies are so young that a student is on a much flatter playing field. Mature languages will always require experience but with the evolution of web technology pointing to a very, very heavy JavaScript future, the MEAN stack prepares students on all fronts of the stack that is still fresh. To further strengthen the argument, you'll find twice as many JavaScript repositories on the list of most popular GitHub repos (see here or here) as the next copetitor. If you reduce that list down to the top 450, Javascript has more than all, or five times as many as the next.

More to come!