21 votes

Fifty Shades of OOP

16 comments

  1. [2]
    stu2b50
    Link
    IMO it's mainly inheritance chains that have really become hated. Modern programming, including in corporate Java, mainly favors composition and dependency injection and value classes.

    IMO it's mainly inheritance chains that have really become hated. Modern programming, including in corporate Java, mainly favors composition and dependency injection and value classes.

    12 votes
    1. first-must-burn
      Link Parent
      Composition over inheritance was something I learned from Effective Java by Joshua Bloch in the nid- 2000's. One of the only programming books I've actually read cover to cover. So many useful ideas.

      Composition over inheritance was something I learned from Effective Java by Joshua Bloch in the nid- 2000's. One of the only programming books I've actually read cover to cover. So many useful ideas.

      8 votes
  2. [11]
    Akir
    Link
    Should I be on lobste.rs? It seems like half of all programming related stuff that gets posted here is in response to some (usually very unhinged sounding) arguments being made there.

    Should I be on lobste.rs? It seems like half of all programming related stuff that gets posted here is in response to some (usually very unhinged sounding) arguments being made there.

    9 votes
    1. [4]
      trobertson
      Link Parent
      Probably, yeah. Ever since HN degraded* I've been going to lobste.rs/active for programming discussion. Actual practitioners and academics talking shop, divorced from big-corp motives and...

      Should I be on lobste.rs?

      Probably, yeah. Ever since HN degraded* I've been going to lobste.rs/active for programming discussion. Actual practitioners and academics talking shop, divorced from big-corp motives and bullshit.


      * HN users/posts nowadays are 30% fascist, 50% hype/shill/ads, 10% worthwhile, and 10% oblivious to just how bad it's become. dang, in particular, is the poster child for the latter group.

      9 votes
      1. [3]
        Akir
        Link Parent
        I don't suppose you (or anyone else) can invite me?

        I don't suppose you (or anyone else) can invite me?

        1 vote
        1. [2]
          tauon
          (edited )
          Link Parent
          For a while now I’ve been on there (albeit somewhat infrequently, and I’ve definitely spent much less time on Lobste.rs than Tildes), and while I would have something to say in a comment...

          For a while now I’ve been on there (albeit somewhat infrequently, and I’ve definitely spent much less time on Lobste.rs than Tildes), and while I would have something to say in a comment occasionally, I’ve found just scrolling through and reading the articles to be very informative and satisfying-enough already.
          So I can only recommend doing just that without an account… although I wouldn’t say no to an invitation either. :-)

          Edit: Thanks creesch for hooking me up!

          1 vote
          1. trobertson
            Link Parent
            @Akir @tauon I don't mind giving you an invite, but you'll need to private message me an email address. This is what the invite process looks like: https://imgur.com/a/5TkxXBK

            @Akir @tauon

            I don't mind giving you an invite, but you'll need to private message me an email address. This is what the invite process looks like: https://imgur.com/a/5TkxXBK

            3 votes
    2. skybrian
      Link Parent
      I think of it as a less controversial but also less interesting alternative to Hacker News. It's pretty focused on programming and technical topics. Hacker News has more AI news, business news,...

      I think of it as a less controversial but also less interesting alternative to Hacker News. It's pretty focused on programming and technical topics. Hacker News has more AI news, business news, and politics.

      6 votes
    3. [5]
      creesch
      Link Parent
      Should is a big word, but I find it a nice addition sometimes. As troberston says, it certainly beats the complete dumpster fire that is HN comments. If you want an invite send me a DM with an...

      Should is a big word, but I find it a nice addition sometimes. As troberston says, it certainly beats the complete dumpster fire that is HN comments. If you want an invite send me a DM with an email address.

      edit:

      They also have an IRC channel (yes, IRC) on libera.chat which sometimes has some neat talk going on. If you happen to join there, there is also a #tildes channel on the same server where we idle for the sake of nostalgia with a bunch of us :P

      5 votes
      1. [2]
        TaylorSwiftsPickles
        Link Parent
        Does any conversation ever happen or are you people just idling there? :P

        #tildes channel on the same server where we idle for the sake of nostalgia with a bunch of us :P

        Does any conversation ever happen or are you people just idling there? :P

        1 vote
        1. creesch
          Link Parent
          Once or twice per month people accidentally start a conversation :P

          Once or twice per month people accidentally start a conversation :P

          3 votes
      2. Toric
        Link Parent
        I had no clue we had a #tildes channel. I just finished setting up a proper bouncer, so IRC is finally persistent for me!

        I had no clue we had a #tildes channel. I just finished setting up a proper bouncer, so IRC is finally persistent for me!

        1 vote
      3. Akir
        Link Parent
        After sleeping on it I realize that I probably don’t care to create an account since that only lets you comment, so I will pass for now. I may hit you up later if I change my mind though.

        After sleeping on it I realize that I probably don’t care to create an account since that only lets you comment, so I will pass for now. I may hit you up later if I change my mind though.

        1 vote
  3. [2]
    first-must-burn
    Link
    What a nice read. Having not seriously touched Java or C++ in many years, it was a bit of a nostalgia trip for me. It also reminded me of some truly awful OOP code I have written. I think the real...

    What a nice read. Having not seriously touched Java or C++ in many years, it was a bit of a nostalgia trip for me. It also reminded me of some truly awful OOP code I have written.

    I think the real reason to lean away from these languages is they are simply too complicated and flexible. I spent the better part of a year trying to parse arbitrary C and C++11 code and generate automated tests for it. It was a nightmare. Every time we tried the tool on new code, we found new usage patterns that we hadn't considered. Basically what I learned is there is no limit to the weird shit people can write in C/C++.

    I like Go because it's very opinionated about almost everything, which brings a certain homogeneity to the code, making it easier to read and maintain. You can get this for other languages with style guides and opinionated code reviews, but it saves a lot of time (and arguing) to have it built into the language.

    I don't know if there are any modern tools that fix this, but my other beef with C/C++ (and to a lesser extent Java) is that it is truly an epic battle to create and maintain a build system. Sometimes it feels like it requires as much code as the application itself. And the builds are so slow!

    9 votes
    1. zatamzzar
      Link Parent
      Granted, this is me trying to remember something from 1998, but there was a nice product that would allow you to instrument your code so you could exercise every code path possible (with C/C++)....

      Granted, this is me trying to remember something from 1998, but there was a nice product that would allow you to instrument your code so you could exercise every code path possible (with C/C++).

      It's hard to do something like that with languages that are that close to assembly.

      1 vote
  4. vord
    Link
    I've never felt more seen. SQL functions at its best when you are doing things as a batch. I spent many years converting code which would spend like 3 hours iterating over a dataset to like 4 SQL...

    When many objects exist, it is often much more efficient to process them in batches rather than individually. Having small objects with distinct behaviors can lead to poor data locality, more indirection, and fewer opportunities for parallelism. Of course, advocates of data-oriented design don’t reject encapsulation outright, but they encourage a more coarse-grained form of it, organized around how the code is actually used rather than how the domain model is conceptually structured

    I've never felt more seen. SQL functions at its best when you are doing things as a batch. I spent many years converting code which would spend like 3 hours iterating over a dataset to like 4 SQL statements which did it in a batch inside of 30 minutes

    3 votes