4 ms·
Java has always been an object oriented programming language. A class is a basic construct of the Java language. It wasn't added into Java. People still use cla
by rosybox 7y ago
Java has always been an object oriented programming language. A class is a basic construct of the Java language. It wasn't added into Java. People still use classes. All the major new programming language have OOP features, you can create instances in Swift, Kotlin, Go and Rust for example.
async language features are just inline co-routines. Inline co-routines are a useful concept. It's a single tool in a big toolbox of other tools and not every problem requires the same tool, just like OOP features. It's just more stuff you can use if you want. If you don't want it, you don't have to use it, you can just write Haskell or OCaml without using objects and not worry about it and you won't have to worry about how long you live.
- noncoml 7y ago> Java has always been an object oriented programming language And C++ has always been an “OOP” language. But they are both a dumped down version of OOP as they both don’t have metaclass support or extreme late binding. For something more aligned to OOP look at smalltalk or Ruby
- viraptor 7y agoIf you grab specific favourite functionality, this quickly becomes a no-true-scotsman situation. We know what OOP looks like in general. First-class metaclasses support is not available in Java, but if you really need it for some specific cases, you do them at compile time using annotations processor. The extreme-late-binding as Alan Key would like it does indeed make Java an inferior OOP. Service registration does this on a macro scale though. (although I've seen more abuse of micro-scale extreme late binding than use of it in good design)