Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Program development in Java

    Program development in Java

    B. Liskov · 2000

    ProgrammingSoftware Engineering
    Open LibraryAmazon
    Stats for nerds
    3recommend
    9mentions
    4people
    2010–2026years
    78% recommend22% neutral

    Mentions per year

    201020122014201620182020202220242026

    What Hacker News says

    1. rramadassJan 2026
      > OOP is non-scientific and the snake-oil hype ... ridding the world of the OOP rot is a far deeper infection.

      You are spewing nonsense.

      Read Bertrand Meyer's Object-Oriented Software Construction, Barbara Liskov's Program Development in Java: Abstraction, Specification, and Object-Oriented Design and Brad Cox's Object-Oriented Programming: An Evolutionary Approach for edification on OOD/OOP.

      thread
    2. rramadassJan 2025
      Like most articles on "Inheritance" this is clueless about providing any "real meaning/understanding". People always take the soundbites (eg. Uncle Bob SOLID) provided as a mnemonic as being the end-all, don't fully understand the nuances and then usually arrive at a wrong conclusion.

      LSP (https://en.wikipedia.org/wiki/Liskov_substitution_principle) has to do with behavioural subtyping guaranteeing semantic interoperability between types in a hierarchy. It involves not just the syntax of function signatures but their semantic meaning involving Variance/Invariance/Covariance/Contravariance and their guarantees using an extension to Hoare Logic i.e. Preconditions/Postconditions/Invariants (derived from Meyer's DbC). Thus without enforcing the latter (which is generally done via documentation since there is no syntax for expressing pre/post/inv directly in most languages) the former is incomplete and thus the complete contract is easily missed/forgotten leading to the mistaken belief "Inheritance is bad". The LSP wikipedia page links to all the concepts, the original papers and more for further clarification.

      See also Bertrand Meyer's Using Inheritance Well from his book Object Oriented Software Construction, second edition book - https://archive.eiffel.com/doc/manuals/technology/oosc/inher...

      Finally see Barbara Liskov's own book (with John Guttag) Program Development in Java: Abstraction, Specification, and Object-Oriented Design for a "correct approach" to OOP. Note that Java is just used as a example language while the principles are language independent.

      thread
    3. rramadassJun 2023
      You might find Program Development in Java: Abstraction, Specification, and Object-Oriented Design by Barbara Liskov with John Guttag interesting.
      thread
    4. rramadassJan 2023
      To be blunt, you are stating "opinions" without any basis in facts; hence it is hard to take you seriously.

      Separation of Concerns, Modularization, Reusability, Type Hierarchies, Type Composition, Interface contract-based programming, Frameworks etc. were all made mainstream by OOD/OOP. These are things taken for granted by programmers today. As somebody who has been doing OOD/OOP since the early nineties i can tell you it was the single biggest reason for the explosion of Software in the past few decades.

      As a concrete example, early in my career i had programmed in C using the Windows API; both 16-bit and Win32 (Thank you Charles Petzold). It was difficult, tedious and a lot of work. And then Microsoft introduced MFC (Microsoft Foundation Classes) Framework with Visual C++ IDE. With a few clicks of the wizard, i had a complete skeleton application with a lot of hard work already done for you. That was a revelation for me on the power of OOD/OOP. Things i had slaved over in Win32 was now at the fingertips of every noob who could type. The same revelation happened (but not to the same extent) when i moved from Xlib to Motif on Unix platforms.

      I had pointed you to Bertrand Meyer's book OOSC2 (in my other comment) as the book to read to understand OOD/OOP. Another great book to study is Barbara Liskov and John Guttag's Program Development in Java: Abstraction, Specification, and Object-Oriented Design.

      thread
    5. rramadassMay 2020
      No.

      You might find the book Program Development in Java: Abstraction, Specification, and Object-Oriented Design by Barbara Liskov and John Guttag very useful for understanding OOD/OOP.

      thread
    6. bonyenNov 2019
      Back in the day, I treasured my copy of Liskov and Guttag's "Program Development in Java". I enjoyed its discussion of a disciplined programming style centered around maintaining invariants in your data structures. It was also the only book I've seen which talked about modeling the state of your design using a graphical notation inspired from Alloy. I wanted more exposure to this material so I even purchased a copy of their earlier work (which is also excellent). Point being, I have a lot of respect for her.

      Like some of the other comments, I loved how she expresses her thoughts about computing in this article, e.g: "In my version of computational thinking, I imagine an abstract machine with just the data types and operations that I want..." (reminds me of Norvig/Graham talking about Lisp). But I don't like this article overall because I think it takes cheap shots at men in computing.

      "I’m worried about the divorced couple in which the husband publishes slander about the wife, including information about where she lives." When I first encountered this statement, I thought it was being unnecessarily specific but didn't think anything else of it. After finishing the rest of the article, I think it was a purposeful choice, and in the current environment, I don't think it's a fair statement to make. A male making the opposite statement would likely be called out, so I'm calling her out here.

      "At Berkeley, I was one of one or two women in classes of 100. No one ever said, “Gee, you’re doing well, why don’t you work with me?” I didn’t know such things went on. I went to graduate school at Stanford. When I graduated, nobody talked to me about jobs. I did notice that male colleagues, like Raj Reddy, who was a friend of mine, were recruited for academic positions. Nobody recruited me." She didn't say this explicitly, but my interpretation is that she's using this as evidence of a gender bias in recruiting. Clearly, gender bias is one possibility, but what about giving people the benefit of the doubt? There are other more charitable explanations (somebody who understands conditional probability better than me could comment on this situation from a probabilistic perspective).

      "Back then, advisers placed graduates through deals with departments around the country.

      Yes, but nobody made deals for me. In the ’90s, I went back to Stanford for a department celebration. A panel of the old professors, without knowing what they were doing, described the old boy network. They said, “Oh, my friend over there told me that I’ve got this nice young guy you should hire.” It was just how it was. They were clueless. They talked about a young woman who did so well because she married a professor! Clueless. Another colleague had a pinup in his office. I asked him, “What’s that pinup in your office?” Clueless." I love her directness here, but on the other hand her choice of words suggests to me that she has a chip on her shoulder, something I wasn't expecting from somebody so accomplished!

      This reminds me of how greatly our beliefs affect our perception of the world, like in the beginning of a relationship when everything seems perfect, but after a fight, suddenly even the smallest things about your partner start to annoy you. The quirkyness of their laugh, or the way they chew their food – how did I miss how annoying that was before? But in reality they didn't change at all – only my perceptions did, because I no longer liked them.

      "Even so, is it correct that there were approximately 1,000 faculty members when you started at MIT, only 10 of whom were women?

      That was my recollection.

      So there was progress, but …" I don't like the use of the word "progress" here, but I realize that is potentially another highly flammatory discussion. Here, it's just more evidence that this discussion is politically charged.

      "My sense is that all scientific fields have failed to recognize some foundational contributions by women.

      In the 10 years before I was head of computer science at MIT, the department identified only one woman worth hiring. When I was the head [from 2001 to 2004], I hired seven women. We didn’t scrape the bottom of the barrel. All three junior women I hired are outstanding. There was a long period of time where women were not considered at all." Is that last sentence meant to be taken literally? I would be surprised if it were true. I'm ignorant of the goings-on at these levels, but I have faith that the majority of people involved in these decisions (around the time that she's referring to) were not sexist (the mere fact that she became the department head is evidence of this). I would also be interested in more details about why she was successful in hiring women compared to the previous head.

      The big tech companies are making an effort to hire more women. One way they do this is by recruiting heavily at events where there are a preponderance of women. Somehow, this is seen as not being discriminatory, but I disagree. It's like there's two separate lines of applicants, and by choosing to focus on one, the people in the other line are hurt (and to be clear, my position is that I'd rather gender not be part of the equation at all, at least for tech jobs).

      I could go on about the article, but I think I've made my basic point.

      I also realize that I'm subject to the same biases that I allude to above. I too have a chip on my shoulder because I believe I was unfairly accused of being a sexist at work. As a result, I've become highly sensitive around this topic (e.g. I followed the James Damore events very closely) and I too view things through an (even more) distorted lens.

      thread

    Related

    Cover of Object-oriented programming
    2010–2026

    Object-oriented programming

    Peter Coad
    3 recommend · 5
    Cover of Abstraction and specification in program development
    2010–2023

    Abstraction and specification in program development

    Barbara Liskov
    4 recommend · 7
    Cover of Low-Level Programming
    2019–2026

    Low-Level Programming

    Igor Zhirkov
    3 recommend · 8
    Cover of Software abstractions
    2015–2026

    Software abstractions

    Daniel Jackson
    3 recommend · 5
    Cover of A method of programming
    2015–2023

    A method of programming

    Edsger Wybe Dijkstra
    2 recommend · 4
    Cover of Software fundamentals
    2019–2025

    Software fundamentals

    David Lorge Parnas
    4 recommend · 10
    Cover of Elements of programming
    2009–2026

    Elements of programming

    Alexander A. Stepanov
    31 recommend · 58
    Cover of A discipline of programming
    2009–2025

    A discipline of programming

    Edsger Wybe Dijkstra
    16 recommend · 51