JavaScript Explained (By a Non-Developer)
Tags: javascript, codenewbie, programming
Published: 2020-07-30 17:48:38

*An honest interpretation of all things developer from the person you would least expect, a marketer.*

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!** 


##A Very Little History Lesson##

The [history behind JavaScript](https://en.wikipedia.org/wiki/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](https://www.geeksforgeeks.org/introduction-to-scripting-languages/) or [Scheme](https://www.scheme.com/tspl4/), 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](https://en.wikipedia.org/wiki/Brendan_Eich) 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! 


##Meet JavaScript, Which is Not Like its [Uncle Java](https://en.wikipedia.org/wiki/James_Gosling)##

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 now a days with so many awesome frameworks JavaScript can be used on the backend too, like say…[HarperDB](https://dev.to/harperdb)! We actually wrote our entire database in Node.js (I promise that was my only HarperDB plug). 


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](https://hackr.io/blog/best-javascript-frameworks) 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 and if you disagree drop in the comments your top ten (it's kinda like MySpace top 8 🙂 ). 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.](https://careerkarma.com/blog/types-of-coding-languages/#programming-paradigm) The [programming paradigms JavaScript](https://advancedweb.dev/javascript-paradigms) is included in are functional programing, prototype-based object oriented programming, and event driven programming. Did I miss any? What is your favorite programming paradigm and why? 

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](https://www.crockford.com/javascript/javascript.html) on why people hate JavaScript and I honestly am intrigued. I don’t often hear from the devs at HarperDB that JavaScript sucks, but then again since we use it heavily here I assume you wouldn’t want to work at HarperDB if you hated it (lol, is this true? Do devs pick jobs solely based on programming languages? Will you work at a job that uses a programming language you hate?) 


##Conclusion (Even though I could write a 10 page essay right now)##

[Hate it or love it](https://www.youtube.com/watch?v=BuMBmK5uksg), 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!