What is JS like

Recently, we have been seeing a huge raise for JavaScript, it’s being used almost everywhere, from creating Single Page Applications for the web, to creating desktop applications with tools like Electron, to even making mobile applications with frameworks like React Native.

At the first glance, getting into the JavaScript world looks so immense and overwhelming, with literally hundreds of new tools, packages, frameworks, libraries, shims, and literally everything in between for every single thing you want to do. Experienced developers keep throwing you fancy names and you actually never know what does what.

Actually JavaScript itself has flavors and types, varying from CoffeeScript, to TypeScript, to insert-fancy-name-Script, each flavor have been trying to solve some sort of a problem that doing with plain JS just sounds about painful

TL;DR

JavaScript is a language that has been improving for quite a while. ES5 is a pretty well supported release of JavaScript and supported by all browsers today. In 2015, ES6 has been released. It offered tons of new features, including Arrow Functions, Promises, Reflection, Collections, and so much more. ES7 brings even more features to the language.

If you ever want to go by coding JavaScript then you’re probably going to love ES6 as it offers a lot flexibility and options and really lets you do a lot really quick.

Probably the first thing you’re ever going to hear about next is NPM. Think of NPM like PHP’s Composer or .NET’s NuGet for JavaScript. Though it’s more Google Play as it contains immensely huge amount of packages ranging from gibberish to arguably cool things like jQuery.

But wait, what is exactly jQuery?

jQuery is a super popular library that allows you to do a lot of stuff with really minimal effort. It basically registers the global $ variable and assigns tons of helper functions to it. So you can do $.post to POST, $.get to GET, $.animate to animate.

With webpages built on the back-end, jQuery can get handy with quadrillions of plugins available everywhere. Like, creating a datatable is more like, googling that, putting a JS and CSS file in the head, and wee.

But really, jQuery is so much counter-productive and sometimes just plain odd. Like, this is an example of how badly can a jQuery function be named. But anyways jQuery doesn’t really go so far when you try build things like SPAs and complex dashboards, because that’s what frameworks are for.

Beep boop

Frameworks in general, from what I’ve experienced, just encapsulate the whole processes from creating to running and displaying your application in a certain way that performs, develops, and scales really great. It lets you structure your code and connect it together in a certain way where all management and complexities such as performing DOM operations are outsourced away to the framework. It defines your application design.

Vue is actually one of my favorite JavaScript frameworks, it is really intuitive and gets things done. One of the best things I like by Vue is that it is a progressive framework. You don’t have to use all of Vue or not. You can just slightly, heavily, or fully use Vue. You can literally use Vue as much as you want.

JavaScript frameworks allow you to better handle your data from your server, display it, and send new data back to the server in an efficient and developer friendly way. JavaScript frameworks often offer 1-way and 2-way data bindings, component-based structure, and many many other fancy things.

The only disadvantage of using a modern framework is that it gets really hard with ES5, you need at least ES6 to really make use of things and make stuffs stuff (verb) better, which is limited to only a newer set of browser versions.

What!?

No not really, most of everyone uses ES6 AND support older browsers. How? well, simply put, a transpiler is used. Babel is one of those fancy transpilers that converts your ES-whatever code to some old JS, and things just automagically work. Babel has lots of plugins to do a lot of transpilations, React has even its own Babel plugin to transpile some react-specific code. Babel’s output is usually passed to webpack to bundle modules.

Yep, one more thing

Webpack is a module bundler, it bundles out all of the modules, components, and combines them with their dependencies (such as those installed via NPM) to create some static JS that represents the whole of your logic, which is usually the JS that actually gets loaded by the browser.

So TL;DR huh?

I’ve probably written the shortest ever about JavaScript. It’s a huge huge huge world full of different cool and odd things. If reading the article just sounds overwhelming, long, and just weird, oh well, yeah, JavaScript itself is that. But only at the beginning. Once you know how to do the wizardy you’ll feel like JavaScript legend and you’ll really love to code everything with it.