Programming Languages. What are their truths?

I heard a guy say, there are four programming paradigms. First of all, I did not know that, second of all, he did not explain them, or not in a way that made me go lightbulb. So… well, any programmers here?? I have a buddy who makes about 5K a day when he is getting work, well he’s not actually by buddy as he hates me because I once nearly killed his cat. He won’t teach me anything, I think he dislikes me even besides the pain of his cat, but he says that paradigms are bullshit.

I will google.

Here’s a cookie.
Holds out cookie

Does it have a hole in it? If so I am terrified.

Anyway I googled as I said .

IMPERATIVE

DECLARATIVE

FUNCTIONAL

OBJECT-ORIENTED

PROCEDURAL

LOGIC

SYMBOLIC

Seems my “friend” lied to me.

Where’s that cute kittie?

This sounds pretty interesting.
Nanny 1, bring it on…

I’m sure Lars does’t actually do this. I need to get into something where I can piss on his shit.

The three most popular paradigms today are Object Oriented, Functional and Procedural.

Procedural is old-school, gives you more power but, as spiderman would say, more responsibility (easier to fuck things up).

Object-Oriented is what’s most common today, its claim to fame is that it encourages clean ways of organization and modularity.

Functional is gaining a lot of steam, but the concepts required are often more nuanced and mathematical. It’s more theoretical and cutting-edge in a lot of cases, and part of what makes it difficult is that a lot of the techniques you’d use in Procedural or OO simply won’t work in a Functional way – you need to rethink how you approach the problem entirely.

A lot of languages are some combination of these. For example, the language that as far as I can tell is the most liked by programmers (not necessarily the most used, just the most praised) is Scala, which is a combination of Functional and Object Oriented (funnily enough, I just looked up Scala and that’s the headline on its front page).

A lot of the object oriented languages are picking up more and more functional patterns though. For example, I know how to use about 4 languages (some more than others) : Python, Java, C# and JavaScript.

Python and Javascript are both dynamically typed object oriented languages, and they actually enable quite a lot of functional stuff because of the way they treat functions (they both treat functions as objects, I think).

C# and Java on the other hand still remain mostly traditional OO, probably in part because they’re statically typed and it might be harder to add functional features to languages like those. But even those languages have had functional features added in recent history, eg lambdas. C# even has first-class functions now apparently, and fully-supported closures. Java’s lagging.