Why there is no OOP (object oriented programming) in Julia?

OOP (in the traditional single-dispatch sense), was never removed from Julia, because it was never added to Julia. Note, in Julia everything is an object, in some sense, unlike in most languages, such as Python and C++.

People do not agree on the definition of OOP, the class-based OOP of Python or C++, or OOP as meant by Alan Key who coined the term for Smalltalk. Either way this talk is relevant (IMHO the most important programming talk I’ve seen, at least look at the first 2-6 min.):

OOP wasn’t meant for speed (runtime speed that is, maybe for programming speed, but it’s also doubtful that holds up).

C++ is one of the most-performance-obsessed languages out there, with Bjarne Stroustrup claiming, if I recall, OOP is something you DO pay for (in runtime speed), if you use it. I tried to find the source for it, at least I found this interview:

https://www.stroustrup.com/slashdot_interview.html

9) C++ complexity vs. OOP simplicity
by hanwen

[Sorry for the potential inflammatory matter in this question].

How do you relate the complexity of current C++ with the much-touted simplicity of Object Oriented Programming?

Longer explanation: […]

C++'s evolution was motivated by a few mottos (you don’t pay for what you don’t use, C compatibility, etc.)

Bjarne:

[…] I was not a contributor to commercial OO hype. […]

If you do want there’s:

ObjectOriented.jl is a mechanical OOP programming library for Julia. The design is mainly based on CPython OOP but adapted for Julia.

2 Likes