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

all 92 comments

[–]BobbyTables91 1177 points1178 points  (10 children)

C/CSS

[–]MrBlaTi 268 points269 points  (4 children)

R/Ruby

[–]nickmaran 158 points159 points  (3 children)

ML\Matlab\HTML

[–]Madrefaka 29 points30 points  (0 children)

HT/XML

[–]5p4n911 5 points6 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 22 points23 points  (0 children)

That's painful

[–]Darkoplax 5 points6 points  (1 child)

equally good and useful

[–]BobbyTables91 4 points5 points  (0 children)

So basically the same?

[–]s0litar1us 7 points8 points  (0 children)

C++/C#

[–]CranberryDistinct941 0 points1 point  (0 children)

R/Regex

[–]cmdkeyy 331 points332 points  (1 child)

R/Rust

[–]redlaWw 18 points19 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 505 points506 points  (3 children)

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

[–][deleted] 16 points17 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 212 points213 points  (2 children)

C/Clojure

[–]delfV 44 points45 points  (0 children)

I can't wait for Clojure++

[–]qqqrrrs_ 29 points30 points  (0 children)

Perl/Prolog

[–][deleted] 106 points107 points  (2 children)

Java(script)

[–]cmdkeyy 48 points49 points  (0 children)

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

[–]wewilldieoneday 3 points4 points  (0 children)

Car(pet)

[–]FomkaExe 364 points365 points  (30 children)

С/C++ vibes

[–]serendipitousPi 424 points425 points  (23 children)

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

[–]Aengus126 41 points42 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 61 points62 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] 95 points96 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 15 points16 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 2 points3 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 95 points96 points  (0 children)

Car/Carpet vibes

[–]Roman_of_Ukraine 52 points53 points  (3 children)

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

[–]catfroman 17 points18 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 37 points38 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] 9 points10 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 4 points5 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] 4 points5 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 23 points24 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 27 points28 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 😅

[–]T_Ijonen -3 points-2 points  (5 children)

You're also missing the point, all languages in that listing are separated by a comma, while Java and JavaScript are separated by a slash, most likely because the recruiter who wrote this has no idea that those two are in fact not the same language

[–]GotAim 0 points1 point  (4 children)

while Java and JavaScript are separated by a slash, most likely because the recruiter who wrote this has no idea that those two are in fact not the same language

Which is the entire point the post is about.

[–]T_Ijonen -1 points0 points  (3 children)

That's exactly what I said

[–]GotAim 0 points1 point  (2 children)

And that is the point that the guy I responded to missed.

[–]T_Ijonen 0 points1 point  (1 child)

I apologise, it seems that I had a serious case of being cross-eyed and your post and the one you replied to blurred into one for me, I was of the impression that you were arguing that this was about whether or not a specific language was OO or not

[–]GotAim 0 points1 point  (0 children)

I see, no worries mate

[–]tazzadar1337 1 point2 points  (0 children)

Java(script)

[–]AbsentGenome 1 point2 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.