Ahhhh-hhaaaaaa! Oh! Sorry, guys, I didn’t know you were waiting for me. I’ve been taking lots of naps lately because there is SO MUCH dirt and mud around to dig in; I just get all tuckered out so easily! I’ve also been getting more baths and washed down with the hose more often, and I have no idea why…
Ok, where were we? Oh, that’s right, coding languages!! So, I feel a little sheepish; I might’ve jumped the gun a little on my last entry. I got so excited letting you all know how many languages were out there that I didn’t really talk about why we needed them. Like we talked about a while ago, these languages allow software to function. They tell them what to do! They make everything from websites, factories, machines, and even your shower radio, work!
So, these tons and tons of coding languages can be grouped into a few different categories. To get started, you can sort most of them into high-level or low-level languages, depending on how intricate they are and the nature of the information they need to supply.
Low-level languages are closer to the binary language that computers speak. Because they’re not as close to human languages, they’re a little harder to learn and use; but they offer way more functionality and control, and can be used for lots of detail and specific uses. Why are they called low-level, you ask? Trever says it’s because they have a LOW level of abstraction.
Now high-level languages have, you guessed it, a higher level of abstraction. And again, you’ve got it; they’re closer to human languages and easier to learn and use! BUT they usually don’t have as much functionality and direct control. I guess they’re more automated?
Didja think that was it? HA! Nope! So the more abstracted from 1’s and 0’s that languages get, the more specialized they are! Every language functions a little differently and is better at doing certain tasks than others. We can break these high-level languages down even more by their paradigm, or the way they handle data. The two big players in this arena are object-oriented and functional.
And these names also make a whole lotta sense when we start digging into what they mean. Guys, who knew – technical people have names and words that make sense! Anyway, functional programming is all about math and data that can’t be changed, called immutable data. So this means that the ONLY thing that can change in functional programming is the input. Everything else can’t be changed. Logic, y’all! Because nothing else can really be changed, it also doesn’t really matter what order the code is in to get the same output. You put everything in, and it comes out the same at the end!
This is slightly different from the other paradigm I just mentioned, object-oriented programming; things, uh, change. And yup, guys, super creative here, object-oriented programming – you know what, that’s super long. Let’s go with its’ abbreviation – OOP – Yeah, you know me! Sorry, I got carried away there… Man. Where was I? OH YEAH. It’s based on objects, guys! So these objects are data structures that have BOTH data and code! Every object is unique (just like me!), and even if it’s a copy of another object, it’ll still have different variables (like, uh, I’m a copy of my dog mom and dad, but still unique! Ok that example is slightly worse, but, you get it.). Ok, let’s think of a better example. OH! Ok, so if you think of OOP as ACTUAL objects, that might help. Liiiiiiike, Trever’s car! It has properties, liiiike, it’s big enough for me to fit in my copilot chair, it’s black, and it has wheels (ahem, DATA). But it also does things (CODE) like burn gas to get us to places!
AAAH, you guys, there’s so much more to talk about. Front end, back end, scripting language, procedural, logical, database, it goes on and on! But my dog bed is a-callin. Maybe next time we’ll dive a little more into the wide world of web languages. After all, that’s where we spend more and more of our days – including me! Don’t tell Trever I have my own Chewy account…