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
    The C++ standard template libraryP. J. Plauger

    The C++ standard template library

    P. J. Plauger · 2001

    Programming
    Open LibraryAmazon
    Stats for nerds
    1recommend
    8mentions
    5people
    2015–2026years
    38% recommend50% neutral13% critical

    Mentions per year

    2015201720192021202320252026

    What Hacker News says

    1. rramadassApr 2026
      People should check out P.J. Plauger's books, specifically;

      1) The Standard C Library - One of the best books to learn about industrial-strength C programming implementation techniques.

      2) The C++ Standard Template Library - Similar to above but for C++ STL.

      Both the above were licensed through his company Dinkumware. I had an opportunity to license, study and use them for a project and found the experience quite rewarding. It is not as complicated and relatively easier to understand than GNU libc and libstdc++. Of course i have both the books which explain the implementation.

      3) His other set of interesting books are the 3-vol Programming on Purpose; a series of essays on various topics. The 1st is on Software Design, the 2nd is on Software People and the 3rd is on Software Technology. They also contain lots of nuggets of wisdom which are still relevant today. My favourite is the one on software design - https://archive.org/details/programmingonpur0000plau

      thread
    2. rramadassOct 2021
      Indeed; In C/C++ land this is rather the norm.

      I learnt more about C and C++ from studying Plauger's The Standard C Library and Plauger/Stepanov's The C++ Standard Template Library. I also remember learning Object-Oriented Framework design from MFC Internals.

      thread
    3. rramadassOct 2020
      Since C++ is a "Multi-Paradigm" language your study of C++ code should include the various different expressions of the language. Also it is best if you can have a book explaining and walking you through the codebase. To that end i can suggest the following from my own experience;

      * To study OO expression of C++ via Class libraries/Frameworks i recommend a study of "Microsoft Foundation Classes (MFC) library" paired with the book MFC Internals. The code is available with the installation of Visual Studio.

      * P.J.Plauger's The Standard C Library and The C++ Standard Template Library(with Alexander Stepanov, Meng Lee and David Musser) will teach you excellent C and C++ Generic programming skills. Code available with the standard C++ toolchain installation.

      * The Boost libraries paired with the book C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond.

      * The FXT library of Algorithms by Jorg Arndt (https://www.jjj.de/fxt/fxtpage.html) along with its book Matters Computational for writing optimized C++ code.

      I would also suggest reading the following two classics to learn designing in C++;

      * Multi-Paradigm Design for C++ by James Coplien.

      * Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples by Barton and Nackman.

      thread
    4. throwaway2037Mar 2024
      The C++ Standard Template Library is now 29 years old. It doesn't have a graph (or generic B-tree) data structure. That says it all for me. In my too many years of programming, I have only needed to program a graph structure once or twice. Yes, the are "ubiquitous in software engineering", but still incredibly rare in most enterprise programming projects.
      thread
    5. madhadronMar 2019
      When a programmer today tries to understand what Kay is saying, they usually get caught up with decades of intellectual structure labelled "object oriented programming." You need to go back to the influences he's pointing at as instrumental and see what the words meant in the zeitgeist of the time. And you also need to tease out what parts have become implicit in our own zeitgeist and what haven't. Then you need to figure out what implications the sum of all the parts that haven't are.

      This isn't an issue just with Kay. It's true for basically any intellectual structure you care to engage with. The definition of "gene" in biology is a similar case, but that's a rant for a different time.

      For example, when he says dataless programming, he points to a couple of papers. For example, Balzer's "Dataless Programming."[1] Go read the abstract. It's talking about the algorithms part of the C++ Standard Template Library and the idea that you shouldn't have to rewrite your program just because you're changing from an array to a linked list.

      But that's not all. Add "the cell/whole-computer metaphor would get rid of data, and that "<-" would be just another message token." That is, why stop with the Standard Template Library? A program made of assignments, loops, and conditionals is as much a formal object as a linked list. Why should we have to rewrite it when the "data structure" is changed from running as a traditional program on a single core messing with registers to having its state stored in a distributed tuple space and steps in it being executed by workers that pull them off a queue?

      This is where his math background really comes in. For a mathematician, the algebra of structured programs is the same in kind as the algebra of numbers or the algebra of sequences of numbers or the algebra of topology preserving mappings of a space. What Kay was trying to get at was a way of letting you write an expression in such an algebra and be able to bind it to whatever instantiation of the algebra you might want, including ones that don't exist yet.

      To do that, all the pieces of your language have to be of the same kind, whether they be numbers, lists, types, or loops. And here's our big delta from "everything is an object" in familiar languages to what Kay was talking about. In Ruby, Python, JavaScript, or Java (let's ignore Java's primitive types for now and pretend boxing is all smiles and rainbows) the only things that are objects are the things that were values in structured programming languages. That's why Kay doesn't see these as object oriented.

      Also, consider his comment "I don't know of any type systems that aren't a complete pain, so I still like dynamic typing" against this background. It suddenly feels a lot more reasonable. A type system for this kind of work is basically pointing Kanren at your expressions and writing a logic program to reason about your domain. Then, next week, when you change the algebra substantively, that logic program might be almost unchanged or may have to be almost entirely scrapped and rewritten.

      [1]: https://www.rand.org/pubs/research_memoranda/RM5290.html

      thread
    6. microtherionMay 2018
      His libraries were licensed to a number of vendors. Specifically, the STL is covered by https://www.amazon.com/C-Standard-Template-Library/dp/013437... and there is a third book covering the rest of the standard C++ library: https://www.amazon.com/Draft-Standard-Library-P-Plauger/dp/0...

      However, the "Draft Standard C++ Library" book was finished just before the standard was radically overhauled for the STL, and the STL itself and the language have evolved massively, so in my opinion, those two book have not aged as well as the C library book has.

      thread

    Related

    Cover of Discovering Modern C++
    2016–2026

    Discovering Modern C++

    Peter Gottschling
    4 recommend · 8
    Cover of The Standard C Library
    2009–2026

    The Standard C Library

    P. J. Plauger
    17 recommend · 29
    Cover of Functional Programming in C++
    2019–2026

    Functional Programming in C++

    Ivan Cukic
    3 recommend · 6
    Cover of Inside the C⁺⁺ object model
    2010–2026

    Inside the C⁺⁺ object model

    Stanley B. Lippman
    7 recommend · 14
    Cover of Ruminations on C++
    2016–2025

    Ruminations on C++

    Andrew Koenig
    3 recommend · 4
    Cover of Advanced data structures
    2016–2021

    Advanced data structures

    Peter Brass
    3 recommend · 4
    Cover of Object-oriented programming
    2012–2026

    Object-oriented programming

    Brad J. Cox
    recommend · 17
    4
    Cover of Abstraction and specification in program development
    2010–2023

    Abstraction and specification in program development

    Barbara Liskov
    4 recommend · 7