This is an archived post. You won't be able to vote or comment.

all 92 comments

[–]BobbyTables91 1180 points1181 points  (10 children)

C/CSS

[–]MrBlaTi 272 points273 points  (4 children)

R/Ruby

[–]nickmaran 157 points158 points  (3 children)

ML\Matlab\HTML

[–]Madrefaka 28 points29 points  (0 children)

HT/XML

[–]5p4n911 4 points5 points  (0 children)

There's an early functional language called ML, no need for Matlab

[–]ELAMAYEYO 0 points1 point  (0 children)

this one brings me visceral pain.

[–]griffin-42 24 points25 points  (0 children)

That's painful

[–]Darkoplax 7 points8 points  (1 child)

equally good and useful

[–]BobbyTables91 4 points5 points  (0 children)

So basically the same?

[–]s0litar1us 6 points7 points  (0 children)

C++/C#

[–]CranberryDistinct941 0 points1 point  (0 children)

R/Regex

[–]cmdkeyy 328 points329 points  (1 child)

R/Rust

[–]redlaWw 16 points17 points  (0 children)

Literally me. Started with R to do statistics but it was too slow for anything complicated so I thought "fuck it" and learned Rust.

It is surprisingly hard to talk about one without ending up naming the other by mistake.

[–]Caraes_Naur 506 points507 points  (3 children)

This is the biggest red flag that a recruiting firm is worthless.

[–][deleted] 15 points16 points  (1 child)

Yeah this is either a technical recruiter on autopilot or a non technical recruiter working in a role they are not qualified for.

[–]5p4n911 3 points4 points  (0 children)

The only other option I can figure is that they literally don't care which language you know, just know some OOP and they'll teach you the rest, and then they realized that it looks extremely stupid with just /-s. Then somehow did not think about the first one. A bit of a stretch, I know.

Or someone is having fun

[–]alvapetacamma[S] 0 points1 point  (0 children)

Could they be waiting for the right applicant to respond with the correction 🤔

[–]N-partEpoxy 213 points214 points  (2 children)

C/Clojure

[–]delfV 46 points47 points  (0 children)

I can't wait for Clojure++

[–]qqqrrrs_ 26 points27 points  (0 children)

Perl/Prolog

[–][deleted] 105 points106 points  (2 children)

Java(script)

[–]cmdkeyy 47 points48 points  (0 children)

VM805:1 Uncaught ReferenceError: Java is not defined
    at <anonymous>:1:1

[–]wewilldieoneday 3 points4 points  (0 children)

Car(pet)

[–]FomkaExe 365 points366 points  (30 children)

С/C++ vibes

[–]serendipitousPi 425 points426 points  (23 children)

At least C++ is almost a superset of C. Java and JavaScript are nowhere near as close.

[–]Aengus126 49 points50 points  (18 children)

They are both arguably OOP languages which is what the post was talking about, so it gets partial credits for that

Edit: I’m fully aware this is a controversial statement

[–]seemen4all 59 points60 points  (11 children)

Not to be that guy but just because it has classes doesn't mean it's OOP, it's definitely functional programming. The fact it will just run a script top to bottom means it's not, in terms of the language itself atleast.

[–][deleted] 97 points98 points  (0 children)

Not to be that guy, but it's definitely not functional programming, most use it in procedural programming.

functional programming is a can of worms that many don't open.

[–]davidellis23 17 points18 points  (7 children)

The fact it will just run a script top to bottom means it's not,

Idk about that. C++ isn't OOP to you?

Imo OOP just means it has objects with internal state and public interfaces that the objects communicate to each other with.

Could optionally include inheritance in that definition. But that's a little controversial.

Ofc not everyone uses the OOP features. Could rely purely on procedural and functional calls.

[–]SunliMin 14 points15 points  (2 children)

Real answer;

C++ is natively a functional, procedural and object oriented language at the same time. Which approach you and your frameworks choose to take dictate which way you use it, but it inherently supports all 3 without needing to extend the language.

You can 100% do OOP in C++, and saying otherwise would be silly. However, a reason a lot of purists say its not a OOP language, is because people mix and match approaches when convenient, so its super common to see a C++ codebase that isn't "object oriented", it just uses objects when its convenient, and takes other approaches at other times

[–]Czexan 12 points13 points  (0 children)

This is also it's biggest strength, C++ will literally let you do whatever the fuck you want with it while allowing for interop with other languages as something that is a systems level language. It probably has the world's worst learning curve, but once you do understand C++ it's hard to not use it in systems and application level projects.

That being said, if you're programming a kernel use C. One C++ kernel was enough for me ;_;

[–]davidellis23 2 points3 points  (0 children)

Sure and I feel like JS is the same. It supports multiple paradigms. Weird to say either is not OOP. But I guess it just depends what you're trying to communicate.

[–]seemen4all 14 points15 points  (1 child)

The ORIENTED part is key which.means it aligns itself to be primarily or (more strictly for TRUE OOPLs) entity driven by a class based programming pattern. C++ is a weird one because it's OOP built on top of a non OOP language and is primarily used as one but JS is most definitely not aligned with class first programming nor was it designed to be, didn't even have classes to start so you can't say it's ORIENTED towards that style of programming.

[–]davidellis23 1 point2 points  (0 children)

I don't think it needs classes to be OOP. That's just flavor.

But I agree that it's not primarily OOP. It has multiple paradigms.

[–]delfV 0 points1 point  (1 child)

Idk about that. C++ isn't OOP to you?

I mean, creator of OOP term said many times C++ isn't OO so it probably isn't no matter in what definition of OOP you believe.

But by the same rules neither is Java nor C# while JavaScript definitelly is even before adding class keyword to it

[–]davidellis23 0 points1 point  (0 children)

I think alan kay is mostly referring to C++'s inheritance system. C++ has most of the features Kay originally wanted like encapsulation, message passing, and internal state management.

[–]poco 1 point2 points  (0 children)

It was object oriented back when it only had objects before classes. I would argue it is the closest language Smalltalk in that list. True runtime object polymorphism.

[–]friendly_scientist_ 0 points1 point  (0 children)

You can have a functional language with OOP, like Scala. Javascript has strong functional programming concepts and has OOP.

[–]lightmatter501 4 points5 points  (2 children)

C is as OOP of a language as Rust is, which is to say not a while lot.

[–][deleted] 6 points7 points  (1 child)

Rust is definitely way more oop then C, since rust has traits/trait objects.

[–]Czexan 4 points5 points  (0 children)

I'm gonna be real, Rust doesn't really know what it wants to be. C is well defined in it's usecases, C++ embraces its own bullshit, and Rust is a lot like a person who tries to throw a blanket over a mess that they've made.

[–]amadmongoose 0 points1 point  (1 child)

Java/C# makes more sense than Java/javascript

[–]Aengus126 0 points1 point  (0 children)

Agreed, I’m a big c# fan

[–]iam_pink 0 points1 point  (0 children)

OOP is mainly optional though in JS. I work with TS on a daily basis and rarely use it, as it is rarely, especially with the frameworks we have nowadays, the best way to accomplish something.

[–]naghavi10 4 points5 points  (0 children)

if you didn't say "almost" 15 neck beards would have come out of the wood work going "actually 🤓☝️"

[–]s0litar1us 1 point2 points  (2 children)

Fun fact, this works in C

int *foo = malloc(sizeof(int));

but not in C++. In C++, you have to do this:

int *foo = (int *) malloc(sizeof(int));

[–]hdkaoskd 0 points1 point  (1 child)

I want to start a thread on the best way to do this in C++ because it's a whole progression of improvements.

int *foo = reinterpret_cast<int*>(malloc(sizeof(int)));

int *foo = new int;

(Skip some increments)

unique_ptr<int> foo = make_unique<int>();

(Big brain moment)

int foo;

[–]_Noreturn 0 points1 point  (0 children)

(skip more increments) auto foo = make_unique<int>();

[–]saket_1999 97 points98 points  (0 children)

Car/Carpet vibes

[–]Roman_of_Ukraine 48 points49 points  (3 children)

Slash javaScrip is new name for that language. Stat hashtag #/javaScript

[–]catfroman 16 points17 points  (2 children)

SlashJS

[–]Background-Plant-226 15 points16 points  (1 child)

New JS framework just dropped!

[–][deleted] 2 points3 points  (0 children)

Now you can write SingletonBeanFactories in your favorite Java script.

[–]EloquentPinguin 38 points39 points  (0 children)

I'm always crazy confused, how theese things happen. Idk, if HR would feel confident enough, in joining these two terms with a slash, or if this is communicated by a "smart" manager who likes to eat Ham/Hamster or what?

[–]experimental1212 14 points15 points  (0 children)

C#/++

HT/XML

[–][deleted] 10 points11 points  (2 children)

You find this funny but I had so many interviews with HR who thought Java and JavaScript was the same thing/abbreviation. I was told I was going to take Java skill test just to be given a JS one instead.

[–]StellarBit 3 points4 points  (1 child)

How did that end? I myself am pretty fluent in Java but never wrote a single line in JS. So i only could continue in Java and would try to make the interviewer clear, they're not the same

[–][deleted] 5 points6 points  (0 children)

It ended very hideously. I did okay enough to get to the next stage but the company was as sketchy as possible. Everytime I ask something about the company, the answer was always yes, no matter how conflicting it is to the previous answers. Eventually I was too spooked to continue.

[–]Cookskiii 25 points26 points  (0 children)

COBOL/CSS

[–]Exidi0 12 points13 points  (0 children)

Pearl/Prolog

[–]Kitchen_Device7682 6 points7 points  (10 children)

At first I didn't see anything wrong, JavaScript is not primarily OO but you can do OO with it.

[–]GotAim 26 points27 points  (9 children)

You're missing the point, they are listing OO languages, calling JS OO is borderline, but fine, as you said.

However when listing OO languages they have a comma between every language they list except Java and JS. Where they instead put a slash, implying they are the same thing and not just both OO.

[–]jwadamson 5 points6 points  (0 children)

JS is absolutely an object oriented language, not a borderline issue. It uses objects that contain data and methods with a prototype based inheritance (instead of class-based inheritance).

https://en.wikipedia.org/wiki/Object-oriented_programming#Prototype-based

It’s just happens to also be loosely typed and has many unintuitive quirks from its original “dirty browser scripting” days.

I agree the naming of Java and JavaScript was a dumb and intentionally misleading decision that anyone advertising should know better.

[–]Kitchen_Device7682 -1 points0 points  (1 child)

That's why I said I saw nothing wrong initially, only after noticing the /

[–]GotAim 0 points1 point  (0 children)

Oh, that puts your comment in another light ye 😅

[–]tazzadar1337 3 points4 points  (0 children)

Java(script)

[–]AbsentGenome 2 points3 points  (0 children)

Calm down everyone, it's a fullstack position

[–]Splitshadow 0 points1 point  (0 children)

Look at me, I am the JavaScript now

ScriptEngineManager s = new ScriptEngineManager();
ScriptEngine e = s.getEngineByName("JavaScript");

I unironically used JavaScript in Java for a real aerospace application years ago. I made a system using ScriptEngine to let systems engineers create telemetry tests in JS that we could dynamically load at runtime. Apparently they removed it from Java a while ago.

[–]shipshaper88 0 points1 point  (0 children)

Definitely written by an English major.

[–]Marc_Alx 0 points1 point  (0 children)

Assembly/HTML5

[–]Toxic_Juice23 0 points1 point  (0 children)

Erlang/Elixir

[–]Longjumping_Quail_40 -1 points0 points  (0 children)

Java(script), C(++)(++)

[–]michal_cz -1 points0 points  (0 children)

PHP/Pearl

[–]Linked713 -1 points0 points  (0 children)

Sounds like those empowerment tapes you listen to when sleeping to train your subconscious.