Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
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 Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

    cpponsea

    2 HN recommenders · recommended in 3 months, 2021–2022

    YouTube

    1:29:27 · 245K views · Feb 15, 2019

    Kevlin Henney revisits structured programming, from Go To Statement Considered Harmful to block-structured code and object orientation. He argues it still matters for how we write code today.

    HN commenters point to it in discussions of goto, early returns and cognitive load when reading code.

    Software Engineering & LanguagesSoftware architecture & designC, C++, Rust, Go & systems languagesProgramming language design
    1. 1:02:27
      Procedural Programming: It Never Went Away — Kevlin Henney | Build StuffBuild Stuff - #1 Software Dev Conf28K views • 8 years ago
    2. 44:35
      Object-Oriented Programming is BadBrian Will2.6M views • 10 years ago
    3. 50:23
      Old Is the New New • Kevlin Henney • GOTO 2018GOTO Conferences125K views • 8 years ago
    4. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    5. 1:04:00
      CppCon 2015: Sean Parent "Better Code: Data Structures"CppCon106K views • 11 years ago
    6. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    7. 54:55
      Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott MeyersThe D Language Foundation19K views • 8 years ago
    8. 1:27:46
      CppCon 2014: Mike Acton "Data-Oriented Design and C++"CppCon863K views • 12 years ago
    9. 1:00:10
      Functional architecture - The pits of success - Mark SeemannNDC Conferences152K views • 10 years ago
    10. 1:54:00
      Can C++ be 10x Simpler & Safer? - Herb Sutter - CppCon 2022CppCon277K views • 3 years ago
    11. 1:55:24
      Ideas about a new programming language for games.Jonathan Blow530K views • 12 years ago
    12. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    13. 1:00:29
      Google I/O 2012 - Meet the Go TeamGoogle for Developers108K views • 14 years ago
    14. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    15. 43:04
      "Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)Strange Loop Conference468K views • 4 years ago
    16. 33:52
      Nordic.js 2014 • Douglas Crockford - The Better PartsNordic.js73K views • 12 years ago
    17. 2:11:32
      How I program CEskil Steenberg1M views • 9 years ago
    18. 1:29:49
      Going Native 2012 Keynote Stroustrupsavage30933K views • 14 years ago
    19. 1:32:47
      Data-Oriented Demo: SOA, compositionJonathan Blow201K views • 11 years ago
    20. 46:09
      Why Isn't Functional Programming the Norm? – Richard FeldmanMetosin1.6M views • 7 years ago

    3 comments from Hacker News

    1. @jiggawattsJul 2021· in “Linux: Using goto In Kernel Code (2003)”

      I get that, but the comment was specifically about pointers (not gotos or structure), and is interesting in general from a historical perspective. The "goto" keyword is similarly dangerous. I've seen very good arguments for leaving it out, and generally poor arguments for keeping it in a language. "I can use it safely" is not a good argument, because it's just like Jim Jefferies' standup routine linked above: "Why should I have my guns taken away from me?" An example of a good argument for structured programming is the talk "The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]": this video Similarly, this article makes a very good argument that concurrent or async code is essentially the "goto spaghetti reinvented, but even worse ", and that Structured Concurrency is the solution: [LINK]

      RecommendsView on HN
    2. @kbensonApr 2021· in “Using the switch(true) pattern in JavaScript”

      If you haven't seen it, Kevlin Henney's talk about "The Forgotten Art of Structured Programming"[1] is interesting (if somewhat long in the examples later), and somewhat related. It's not specifically about return early (and a case could be made that it should or should not apply specifically to early return), but it is about if, else, return, and how they affect cognitive load when reading code. 1: this video

      RecommendsView on HN
    3. @shadowofneptuneSep 2022· in “Making Wrong Code Look Wrong (2005)”

      For some of these reasons, I prefer to write this: if (condition) { throw } else { <rest of code> } Rather than: if (condition) { throw } <rest of code> The justification, which I found in this presentation ( this video ) is that if you only looked at the block structures, could you tell that the rest of the code might never run?

      CitesView on HN