Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
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
    W

    Wisdom and Wonder

    wisdomandwonder.com · Personal blog · on HN since 2008

    Wisdom and Wonder is a personal blog about Scheme, Lisp, functional programming, and mathematics.

    Visit blogRSSHN submissions
    Languages & CompilersProgrammingHistory
    What HN says

    HN mostly links it for the post on why MIT switched from Scheme to Python, which commenters bring up in debates about teaching languages.

    Stats for nerds
    32HN people shared it
    18linked in comments
    831story points
    Jan 2026last shared
    2009people per year2026

    Top posts on HN

    1. 1
      Why MIT switched from Scheme to Python (2009)
      17 people · 710 points · first shared 2009 · 232 comments on HN
    2. 2
      Why Church chose lambda (2009)
      2 people · 84 points · first shared 2009 · 9 comments on HN
    3. 3
      The iPodTouch Is What The OLPC XO Should Have Been
      1 person · 11 points · first shared 2009 · 18 comments on HN
    4. 4
      Random math Art in scheme - pics under nifty art
      1 person · 5 points · first shared 2009 · Discussion on HN
    5. 5
      A History of Macro Systems
      1 person · 4 points · first shared 2008 · Discussion on HN
    6. 6
      Just How Small Can a Scheme Be?
      2 people · 3 points · first shared 2009 · Discussion on HN
    7. 7
      How the Y works: Applicative Order Y-combinator in Racket
      1 person · 3 points · first shared 2013 · Discussion on HN
    8. 8
      Some Thoughts on Mathematics
      1 person · 3 points · first shared 2012 · Discussion on HN
    9. 9
      The Difference Between Undergraduate and Graduate School
      1 person · 2 points · first shared 2009 · 1 comments on HN
    10. 10
      How Do You Compete for Your Own Job?
      1 person · 2 points · first shared 2009 · 2 comments on HN

    What HN people wrote when they linked it

    • ssivarkAug 2018

      The impression I get is that many people want to be system designers stringing together pieces to create systems to solve problems (part of the motivation might be that it is easier to extract economic value from such integrated solutions, rather than better functioning pieces).

      The problem is that in an immature field that's still evolving, the components are not yet well-understood or well-designed, so available abstractions are all leaky. However, modern software engineering is mostly built on the ability to abstract away enormous complexity behind libraries, so that a developer who is plumbing/composing them together can ignore a lot of details [1]. People with that background now expect similarly effective abstractions for machine learning, but the truth is that machine learning is simply NOT at that level of maturity, and might take decades to get there. It is the price you pay for the thrill of working in a nascent field doing something genuinely uncharted.

      "Math in machine learning" is a bit of a red herring. We hear the same complaints about putting in effort to grok ideas in functional programming, thinking about hardware/physics details, understanding the effects of software on human systems [2], etc. Fundamentally, I think a lot of people have not developed the skill to fluidly move between different levels of abstraction, and a variety of approximately correct models. And to be fair, it seems like most of software engineering is basically blind to this, so one…

    • DonHopkinsSep 2019

      Sugar missed the boat on JavaScript.

      Python seemed like a good idea at the time, in the days before Python 3, with its rich ecosystem of extension modules and extensible applications and framework integrations and web application servers, especially because it was so widely used educationally (and on the way to replacing Scheme at MIT and other schools); while JavaScript hadn't quite made its ascendency yet.

      MIT replaces Scheme with Python

      https://www.johndcook.com/blog/2009/03/26/mit-replaces-scheme-with-python/

      Why MIT Switched from Scheme to Python (2009) (wisdomandwonder.com)

      https://news.ycombinator.com/item?id=14167453

      https://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python

      Sugar's plan was for Python programs to access web functionality and integrate dynamic html and JavaScript via the xulrunner Python extension. But in the end, the xulrunner Python extension was not well supported, was extremely complex, and had lots of overhead.

      https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XULRunner/Building_XULRunner_with_Python

      And xulrunner itself turned out to be poorly supported by Mozilla, and never became popular, feature-rich, and well maintained like Electron.

      https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XULRunner/Hall_of_Fame

      Sugar was build on top of the Cairo graphics library, like xulrunner (Mozilla/Gecko/Firefox) and GTK were, so at least they shared the same 2D rendering library.

      Cairo (the moral equivalent…

    • timidgerJun 2023

      It's not (just) that python is "easier" to learn than python (which I dispute - lisp is as easy to learn as a first language as any other. Depending on the language it may be a difficult second language though). The world had also changed radically since it was introduced into the curriculum:

      "Costanza asked Sussman why MIT had switched away from Scheme for their introductory programming course, 6.001. This was a gem. He said that the reason that happened was because engineering in 1980 was not what it was in the mid-90s or in 2000. In 1980, good programmers spent a lot of time thinking, and then produced spare code that they thought should work. Code ran close to the metal, even Scheme — it was understandable all the way down. Like a resistor, where you could read the bands and know the power rating and the tolerance and the resistance and V=IR and that’s all there was to know. 6.001 had been conceived to teach engineers how to take small parts that they understood entirely and use simple techniques to compose them into larger things that do what you want.
      But programming now isn’t so much like that, said Sussman. Nowadays you muck around with incomprehensible or nonexistent man pages for software you don’t know who wrote. You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts. This is a fundamentally different job, and it needed a different course.
      So the good thing about the new 6.001 was that it…

    • bachmeierOct 2019

      "The interesting bit is that the original author's no longer feel that SICP is the right way to approach programming any more."

      I think it's more accurate to say that they didn't see a reason to require engineers to learn CS. The class is now completely different. Why python? Not because it's a good programming language, but because there was a library the students could call to control a robot, which was the new goal of the class, not programming.

      Here's the quote:

      You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts. This is a fundamentally different job, and it needed a different course.

      So the good thing about the new 6.001 was that it was robot-centered — you had to program a little robot to move around. And robots are not like resistors, behaving according to ideal functions. Wheels slip, the environment changes, etc — you have to build in robustness to the system, in a different way than the one SICP discusses.

      And why Python, then? Well, said Sussman, it probably just had a library already implemented for the robotics interface, that was all.

      https://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python

    • AdieuToLogicJul 2015

      > Go began with Robert Griesemer, Rob Pike, and Ken Thompson. “What should a modern programming language look like” (the story goes as they were waiting for some C++ to compile).

      Cute. Nice to keep a dig[1] going. Since that horse has been kicked quite a few times over the years, how about those in the Go community address these language criticisms:

      http://yager.io/programming/go.html

      For specific examples from the aforementioned link:

      The "correct" way to build generic data structures
      in Go is to cast things to the top type and then
      put them in the data structure. This is how Java
      used to work, circa 2004.

      And:

      Go has the null pointer (nil). I consider it a
      shame whenever a new language, tabula rasa,
      chooses to re-implement this unnecessary
      bug-inducing feature.

      Of which the latter has been regretted by its inventor[2] for years.

      1 - "[C++] certainly has its good points. But by and large I think it's a bad language." (source: https://en.wikiquote.org/wiki/Ken_Thompson)

      2 - http://www.wisdomandwonder.com/link/2015/tony-hoare-sorry-for-inventing-the-null-pointer

    • uticusJun 2022

      > Intellisense means you barely ever need to type more than 2 characters to express your intent.

      Agreed Intellisense is pretty good. Not excellent - it never suggests using statements as a first option, and in unit tests I have to always type "Asser" to bring up "Assert" (using 2022 expensive version). But it pretty good.

      From a tooling perspective, this a positive. From a language perspective, well there are other languages that allow flow-of-thought without needing the tooling to autofill [0]. There are tradeoffs, and practically speaking you'll need to eventually look at someone else's flow of thought and expect them to understand yours.

      [0] https://www.wisdomandwonder.com/article/10231/if-you-like-lisp-then-youll-love-apl "...by and large, I find that
      the language allows me to express myself, in the language, about the things
      I’m dealing with. I find that a very precious property of a programming
      language."

    Related

    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026
    Ron Garretflownet.com128 people

    Lisping at JPL (2002)

    Ron Garret
    Personal · last shared 2026
    LessWronglesswrong.com2.4k people

    The Best Textbooks on Every Subject

    LessWrong
    Publication · last shared 2026
    Chris Smithcdsmith.wordpress.com34 people

    What to Know Before Debating Type Systems (2008)

    Chris Smith
    Personal · last shared 2026
    Lu Wilsontodepond.com21 people

    We are not here to make code

    Lu Wilson
    Personal · last shared 2026
    Google Research Blogresearch.google584 people

    Google Titans architecture, helping AI have long-term memory

    Google Research Blog
    Company · last shared 2026
    Mark Tarverlambdassociates.org88 people

    The Bipolar Lisp Programmer

    Mark Tarver
    Personal · last shared 2022
    Hypothesis Bloghypothesis.works48 people

    Calculating the mean of a list of numbers (2016)

    Hypothesis Blog
    Company · last shared 2026