Ever wonder how people on the outside of a specific industry such as software development understand and describe the common terms within that field? Even if you haven’t, I am here to start a series of posts explaining developer and technical terms that might seem like a foreign language to folks who aren’t part of the developer world.
The first term I decided to dissect was JavaScript. Love it or hate it, JavaScript has become THE coding language to know and understand. There are plenty of programming languages out there: Python, Java, C, C++, JavaScript, and many more. I choose JavaScript because it’s the language I hear the most about. Before I did my research, I would have told you that JavaScript is the catch-all for coding languages, it’s easy, takes on many different forms, and rules the web today as we know it. I also picture two devs sitting together over some delicious craft IPAs arguing over whether JavaScript is the best or the worst. It’s kind of like beets, you either love them or hate them (I love them in case you were curious, don’t judge!) After doing my research, if I had to sum up JavaScript in one sentence, I would say:
JavaScript is the lightweight, easy-to-learn, multi-paradigm coding language that was born to make webpages interactive and dynamic, and has morphed into a language with multiple frameworks, many use cases, and whose variables include numbers, strings, arrays, objects, or functions.
Was that a mouthful? Yes, and I bet you can sum it up better than me. If you want to take a stab at it, drop your one sentence explaining JavaScript in the comments!
The history behind JavaScript was pretty interesting to me and I think you could say my age was showing when I completely forgot about a time when webpages were static (I was born in 1993, which is when the first web browser became available so cut me some slack!). JavaScript first appeared in 1995 after a major player in the web browser space, Netscape, decided they needed something more than boring, static web pages. To do so they wanted to implement Scheme (another coding language that is a scripting language). I didn’t dive too deep here, as this blog is about JavaScript not building the web as we know it today so if you want to learn more about scripting languages or Scheme, you can do so via the links.
Netscape first enlisted Sun Microsystems (Oracle eventually acquired them!) and one of the OG coding languages Java to help with their endeavor. However, once those two options weren’t working, they asked Brendan Erich to create a new language with syntax like Java, but less like Scheme. Alas, LiveScript was born! Wait…LiveScript? Yeah, that is what they first called JavaScript for like a minute (3 months to be exact) and I am sure to this day there are people out there confused thinking JavaScript is a spin-off of Java (I before today being one of those people). JavaScript is in fact not a spin-off of Java despite the confusing name. Many believe because Java was the hot new programming language of 1995 Netscape decided to name it JavaScript as a… you guessed it, marketing ploy!
So I could go on about the history of JavaScript, but I want to also explain what it is and how it can be used. A lot of coding languages can be used for front-end and back-end development, but most are better suited for one or the other. I would say JavaScript is one of the few that can go either way. Of course, we know JavaScript was born to make web pages dynamic, so you can use it on the front end, but nowadays with so many awesome frameworks JavaScript can be used on the backend too, like say…HarperDB! We actually wrote our entire database in Node.js
What am I talking about when I say framework? Well if you’re a seasoned developer or even a really new developer you probably already know, but for those who don’t, a framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code. I will state that in layman’s terms. Frameworks are like the cooking utensils of your coding language. They are all used to cook food, but they offer different benefits. A KitchenAid mixer might get you to a batch of cookies faster, but a charcoal grill will be better suited for steaks. Either way, you still have to cook for yourself. I really like food so food analogies are a big thing for me.
A quick Google search of top JavaScript frameworks would show you the above-linked hacker.io blog
Here is their list:
1.Angular
2.React
3.Vue.js
4.Ember.js
5.Meteor
6.Mithril
7.Node.js
8.Polymer
9.Aurelia
10.Backbone.js
Beyond those 10 there are many many more. I tried to find an exact number and I don’t think one exists. My understanding is everyone and their mother has created a JavaScript framework. That’s freaking cool! That means a huge ecosystem and community has been built around JavaScript and it also means you can probably do anything your heart desires with JavaScript.
JavaScript is considered a multi-paradigm language so again, you can do a lot with it. Programming paradigms are “ways” or “styles” of programming. A few highlighted paradigms are in this great resource here. The programming paradigms JavaScript is included in are functional programming, prototype-based object-oriented programming, and event-driven programming.
I don’t want to spend too long on why JavaScript is bad, I am sure someone will think that I’m being biased, but I feel like we should end on a high note. I found this article amusing and informative on why people hate JavaScript and I honestly am intrigued. I don’t often hear from colleagues that JavaScript sucks, but then again since we use it heavily here
Hate it or love it, JavaScript is here to stay. From its humble beginnings, there have been strong opinions about JavaScript and I am sure those opinions will carry on into the future. I think the fanboys and the haters of JavaScript both have valid points about the coding language that is not just dominating the web, but even non-web-based applications. It’s EVERYWHERE. It’s amazing that there is such a large ecosystem of developers to support others and so many frameworks that can work on the backend and frontend. This will be the first of many posts, but I like to think it’s interesting looking at the developer industry terms from an outside perspective. Let me know what you think, what terms you would like to see next, or just say hi!