JavaScript Flavors?

In the old days, there was just JavaScript. But in 2015, there seems to be a million different flavors of JavaScript.

Could someone help me get an overview of everything that is out there, and what each thing does?

Thanks.

Sure thing - take a good look at https://en.m.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks#Features

Well, I guess you could be older than I am, nothing to that. But there have been various “flavors” of JavaScipt for many years.

I get the feelng your question is about JavaScript frameworks?

I don’t know what my question is exactly about because I live in a vacuum when it comes to JavaScript.

As far as I know, int he 1990s, there was ONE language called JavaScript. Period. End of story.

20-25 years later, I hear all of this talk of “frameworks” - which I have no fricking clue what that really even means?!

I hear about all of these different things like Angular and Node and I have no clue how they relate to JavaScript.

Where I am going with this is that I am considering learning JavaScript, but I don’t want to waste a year learning Tutti-Fruitti JavaScript when everyone uses Vanilla-Fudge JavaScript.

See?

In the 1990s JavaScript could run client side in the web browser.

Today JavaScript can run almost anywhere.

All of the different names you see can be broken up into three groups.

  1. libraries - which are written in JavaScript and provide functions to do things you need to do often in JavaScript - these are dying out as JavaScript adds the commands to do the same things directly.

  2. Frameworks - which are written in JavaScript and allow you to create entire applications with the framework providing most of the functionality without you needing to write it yourself.

  3. Platforms such as node.js which provide ways to run JavaScript in places other than the browser.

There is still only one flavour of JavaScript that all of the above use and which you need to know if you want to take full advantage of any of the above.

If you try to use anything that builds on JavaScript without learning JavaScript first then you will likely end up with inefficient code and have problems getting it to work. At the very least you will not understand how the code you are copying works.

I have often seen people with a dozen or more lines of jQuery (a library) code that they can’t get to work where one or two lines of plain JavaScript without the library is all they need.

There are different versions of JavaScript that have been released over the past few years to add the new commands and clean up ones that should never have been added in the first place. You might come across references to versions such as ES3, ES5 and ES2015 (or ES6). ES2015 is the latest version although there are a few comands it introduces tht not all browsers support yet. ES5 was introduced in 2015 so the extra commands it introduced are almost all supported by browsers commonly in use today. Perhaps the biggest change from the 1990s was the introduction of the Document Object Model (which makes up about 2/3 of JavaScript and allows it ti interact with the web page in all sorts of ways). The original JavaScript effectively died out when Netscape 4 did as since then it has been a far more powerful language capable of millions more things than the original language could do. As a result you may as well consider JavaScript of the 1990s to be a completely different language to the language that uses that name today.

1 Like

Very helpful response, @felgall :thumbsup:

Okay.

Okay.

So JavaScript is like HTML or CSS is that maybe there are different versions, but otherwise it is all the same regardless of whether you are on Linux or Windows or Mac?

Yes except that with JavaScript it can also run in PDFs, on the server, on the desktop and hundreds of other places that have nothing to do with web pages.

Basically, there is just JavaScript, like HTML and CSS. But people don’t like to write things from scratch every time. You can do really complex things with JS, and people abstract a lot of the code they’ve written so that it can be re-used. Then they call it a framework or a library and make it available to others to use. But it’s just JS.

They call it a library when it’s basically a bunch of functions that can be reused. They call it a framework when it’s basically a template for a website with a lot of cool functionality built in.

I don’t use JS much, but I really enjoy learning about JS itself, and avoid libraries like jQuery, as they take you one step away from how the actual JS is working. It’s quite fun to learn how JS itself works. It’s a bit like understanding how your car works. Often we just ignore what’s under the hood, but it pays to understand a bit about how it works. Using jQuery is a bit like driving the car, shifting gears etc. without really knowing what’s happening under the dash.

But is there is no law saying I can’t just write my own JavaScript without using a library or framework, right?

What version is JavaScript on currently?

Can you help me better understand what a framework is? When you say “a template for a website” I don’t really follow you…

I guess I have always preferred to write my own code as it helps me to understand things better. But a lot of people criticize that approach.

What are the most common JavaScript libraries?

What are the most common JavaScript frameworks?

What are the most common JavaScript platforms?

http://www.developereconomics.com/feature-comparison-of-4-popular-js-mv-frameworks/

http://techslides.com/best-mobile-frameworks-and-platforms-for-hybrid-html5-apps

You could, but it would be a lot more work in most cases. Note, most, not all.

On the contrary, there are very strict laws governing this. It is a crime to write your own JS. You must use someone else’s code, or you could face a stiff jail sentence. :stuck_out_tongue:

All versions. :stuck_out_tongue: Core technologies do get updates, but the older code still works. So there are new things being added to JS all the time, but the older code still works.

Here’s a simple analogy. Let’s say you build websites for a living, and you often find yourself reinventing the wheel each time. So you decide to gather together all the bits and pieces you use every time into a form that you can reuse each time you build a site to save yourself having to do it all over again each time. That’s basically what a framework is—be it an HTML, CSS, PHP or JS framework.

You surely realize there are safe haven places right? There are a few states here in the U.S. that are safe havens, along with France, and I think Thailand? Not too sure about the last one but blanket statements like those are dangerous, Ralph. And, to be frank, quite misleading.

Well, if you want to try to skirt the authorities like that, good luck to you. But with Interpol, the NSA and other organizations watching around every corner, I’d say watch your back very carefully. :stuck_out_tongue:

[quote=“RyanReese, post:14, topic:195567”]blanket statements like those …
[/quote]

I never said anything about blankets. :confused:

It’s a good thing too. I can tell that you really know where your towel is at.

4 Likes

Unless it’s the createPopup method, in which case it most definitely doesn’t work in IE11 in ‘edge’ mode.

1 Like

The Can I Use site provides an excellent run-down on cross-browser compatibility issues.

1 Like

So do I have to “install” JavaScript on my computer (or webserver) to use it?

And how would I choose which version I am using?

The version that’s used changes depending on the web browser, which includes your own web browser and the ones that other people use to visit your web site.

It’s not for nothing that JavaScript is known as the most inhospitable development environment.