💾 Archived View for bbs.geminispace.org › u › Morgan › 17676 captured on 2024-06-20 at 11:57:15. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-06-16)

➡️ Next capture (2024-07-09)

🚧 View Differences

-=-=-=-=-=-=-

Comment by ☕️ Morgan

Re: "Object-orientation and other dumb ideas"

In: s/Stories-from-the-Interwebs

Bad OO code can be very bad :) but good OO code can be great. Indeed, it's a matter of not overusing the OO features.

Reality is rarely hierarchical ;) and even when it is, the hierarchy might not be stable.

Mapping OO structures onto data is a favourite topic of mine: a clean mapping to data can be a sign of a good design.

☕️ Morgan

Jun 05 · 2 weeks ago

14 Later Comments ↓

🚀 agh · Jun 06 at 08:08:

I think it largely comes down to the language. Simula and Smalltalk were designed as OOP, Ada, is imperative and OOP, however, the OO principles in Ada are in the language, thus enabling the user to abstract the problem and solution domains in (OOA)nalysis, and (OOD)esign methodolgies. If the either of those domains do not fit, than perhaps the language is inadequate, which is not a problem of OOP, but the language. C, and C++ are not OO languages, they are trash based on a legacy of PDP11, and reducing the high order constraints of Algol.

🚀 agh · Jun 06 at 08:10:

The webpage linked is a good read, it fails to recount the reason why OOP was created, and what problems is what was solving in software engineering.

🐙 norayr · Jun 07 at 15:18:

i guess i can add that what i dislike is when the language doesn't allow mixed style programming. for example in java even if you are writing a simple hello world, you have to use oop. and given that java is often used in education as first language, the beginner is told to write something they dont understand. why class? why public? also i think oop is indeed not easy to understand and one should not start with it. i thin simple structural language like pascal or even lisp is much more understandable for a beginner than oop and java.

🐙 norayr · Jun 07 at 15:19:

and i used oop for years before i was able to understand what am i doing, and i only understood because i started to program in oberon, its first dialect and because i have read wirth's related part of the book i think i linked before in this thread.

☕️ Morgan · Jun 07 at 17:02:

Dart is pretty much Java minus the annoying bits. So:

void main() {
  print('hello world');
}

or even

main() => print('hello world');

🐙 norayr · Jun 07 at 19:10:

i am sorry that i could not resist to tell this, but some language names i just don't want to hear. those are sometimes pretty good, just i have this feeling that it wouldn't be so well known if not the big powers behind it, and i have this feeling of injustice, because there are not bad, comparable languages that don't have much of corporate support, and those aren't known and especially, loved by people. plus this is geminispace, many of us are here because we'd like to be able to understans significant amount of tech we use, thus we are attrackted by simpler and more minimalistic tech. and usually corporate languages aren't like that because well, the corporation which promotes the language has to market it and add new features in newer releases, show 'growth', because how without it?

☕️ Morgan · Jun 07 at 20:24:

I get where you are coming from :)

For me there are two main types of corporate involvement in the language space: creative, and coercive.

On the creative side there has been a lot of good stuff. Apple, Microsoft, Google, even Facebook have done a lot of work on their own languages, and I'm sure the world has benefited ... software is complex, programming language are complex and hard to build, and we all benefit from the state of the art being pushed forward.

The coercive side would be when a corporation is pushing for their preferred language or platform to the exclusion of others. That can be pretty bad. On the whole though I think the situation there is a lot better than it used to be! It's generally considered uncool now to overly restrict developers. But corporations have big feet and may push for exclusivity as a side effect even without any particular bad intent.

Honestly, I think we are in pretty much a golden age of software, from any independent developer's point of view--at least, as golden as we've had it--where it's easy to exchange ideas, most tools and platforms are open, and if something's really good there is every chance it will succeed. It's still an incredibly tough market if you want to start a new language :) and it's frankly amazing that we do keep seeing interesting new ones. What a time we live in...

🚀 stack [OP/mod] · Jun 07 at 20:28:

There was a low point in my life when I started studying for a Java certification test, because it really looked like I wasn't going to get any work without it in NYC...

🚀 agh · Jun 08 at 03:21:

Yeah I agree, the language should be multi-paradigm, tho, Smalltalk is interesting, and Self too. I understand Self takes the everything-is-an-object to the n-degree. Java is a place north of me as far as I am concerned. Sun produced some nice things, but a high order language VM, no, Smalltalk did that better.

🚀 agh · Jun 08 at 03:26:

I thought I understood OOP when I started learning C++, it was exciting, then I realised C++ was a dumpster fire, it's multiply inheirtance, polymorphism, and generics were total crap, these are important abstractions for OOP, and C++ could not provide a decent language feature of any. Many years later, I picked up some books by Grady Booch on Ada, and OOP really crystalised for then. Ada provides those abstractions in the language, and it is all static compile time, unless you are referencing the root type (Class in Ada terms), like Oberon, you can avoid the overhead of the method table loopup.

🚀 agh · Jun 08 at 03:29:

Yeah, Pascal should be the first language to learn in an educational setting, it sets the bar high, typed, fast compile times, and code often works without changes from generation to generation, this minimises cognitive load, and allows the student to focus on what is important.

🚀 stack [OP/mod] · Jun 08 at 04:05:

I was obsessed with Self for many years, and eventually got to play with it. Sadly Sun hired Ungar and pretty much killed further development. Many amazing things from Self -- compiled polymorphic caches and a very innovative garbage collector wound up in Java's JIT compiler.

Self is like Smalltalk on drugs. You can use any object as a prototype and add slots, and everything just works. Things get weird fast, and you have to come up with all kinds of ways to keep inheritance from biting you.

I kind of loved it, but in the end, it's really hard to get anything done with it. After a while I missed the simplicity of Smalltalk (which now has bytecode interpreters that use Self tech).

I spent a couple of years writing a language that was Self-like, but instead of individual slots you mixed and matched interfaces, or groups of slots. It actually worked a lot better than Self conceptually. Eventually I ran out of steam and money, like so many of my great ideas that no one cares about.

🚀 agh · Jun 08 at 06:46:

I spent a couple of years writing a language that was Self-like, but instead of individual slots you mixed and matched interfaces, or groups of slots. It actually worked a lot better than Self conceptually. Eventually I ran out of steam and money, like so many of my great ideas that no one cares about.

Wow that sounds awesome, unfortunate about the lack of steam and money. I love interfaces, and Smalltalks multiple inhiertance does get scary (like C++'s) for sure.

🚀 chirale · Jun 11 at 05:11:

There's something you don't like? Call it stupid idea and social contagion. Add some out of topic hot takes.

Original Post

🌒 s/Stories-from-the-Interwebs

Object-orientation and other dumb ideas — Daniel Lemire has posted some great articles and is always interesting to read. Here is his short take on OOP, a stupid idea based on nothing that went so viral that opposing it would cost you your job, your friends, and your reputation. Includes a guide on how to spot these brain viruses as they spread near you. Look around and spot some current idiocies around you, and post your observations here, if you dare!

💬 stack [mod] · 19 comments · 1 like · Jun 05 · 2 weeks ago