So make a hot chocolate, sit back and relax.
- Operating System (OS) - the system that your computer runs on, at the very base. Could be Mac, Linux, Windows. If you want to learn more about the stuff beneath the OS, I talk about it more in-depth in my Docker article
- Compiled language - read by your computer all at once and will completely break if you have an error.
- Interpreted language - 'translated' into binary as it reads it and if it finds an error, will break at that point. You can also run it as soon as you have finished typing, rather than wait for it to compile.
Although that's right, the technically correct way of saying it would be 'loosely typed'.
🤷🏼♀️ They mean the same thing but the Tech industry likes to be confusing so of course there are two ways of saying it...
In a language that isn't dynamically/loosely typed, you'd have to specify as you go - here's an example of some statically typed C#:
string myString = "Hello";
Declare + Assign:
string myString = "Hello";
C# is confusing because it has dynamic 'features' - you can do this and it would work...
var myString = "Hello";
Ok, so maybe C# wasn't the best example because it is the most confusing thing in the world (shoutout to Giovanni for the code snips and explanation).
I hope you saw the comparison I was trying to make there...
We can think of web design as a house -
The HTML is the structure of the house. It is the foundation and the bricks. You need it, else your house would just fall down.
The CSS is the decoration in the house. You need this to ensure that people want to visit your house, and that you want to be in your house... Bare bricks and scratchy floors are no good...
I hope that analogy works! You could also come up with different analogies to explain what JS fundamentally does - the sails on a boat, or the engine in a car maybe?
Say on your website you wanted to have a form for people to fill out and when they click 'submit' (after they're filled out all of the fields), you want an animation of some fireworks to appear 🎆
You've got the CSS animation, lovely. Now how do you make it appear when a user clicks 'submit', but only when they have filled out all the fields?
Wait... it doesn't know to wait for all the fields to be filled in... the 'required' attribute will stop the form being sent without everything filled in, but you have put your event listener on the button, so it would show fireworks regardless of the form!
Now, obviously, I didn't name it so people have their own interpretations about why. I have done some research and light opinion (twitter) research, and these are my findings:
It has nothing at all to do with Java, except for some convoluted history. Back in the day when the internet was just a baby thing, Netscape (the biggest browser company at the time) decided to equip its browser with a scripting language that would allow web designers and users to interact with the different objects on the page (images, forms, links, etc.), but above all with Java applets (programs that allow interaction with the user). Java is a very popular language, developed by Sun Programming, that is most suited to back-end programming (more heavy logic and databases, less pretty buttons and fireworks) although can be used pretty much anywhere.