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
    M

    Mark Rushakoff

    ozonehouse.com · Personal blog · on HN since 2009

    Mark Rushakoff writes about programming, including the Periodic Table of Perl operators and Haskell.

    Visit blogHN submissions
    Languages & CompilersProgramming
    What HN says

    HN links his periodic table of Perl 6 operators in threads about Perl's many operators and in debates over periodic-table-style graphics.

    Stats for nerds
    18HN people shared it
    6linked in comments
    14story points
    Apr 2025last shared
    2009people per year2025

    Top posts on HN

    1. 1
      Periodic Table of Perl Operators
      17 people · 13 points · first shared 2009 · 1 comments on HN
    2. 2
      Haskell Amuse-Bouche
      1 person · 1 points · first shared 2014 · Discussion on HN
    3. 3
      PeriodicTable.pdf
      1 person · first shared 2009

    What HN people wrote when they linked it

    • iamwilJan 2011

      Because it's cargo culting. The periodic table looks the way it does because it's about the relationships between the different elements organized spatially on the page. Because of that, it also lets us predict elements we haven't discovered yet! Amazing!

      There's really no reason that the relationship between typography, dessert, vegetables, google apis look anything like the relationship between the elements. If it did, we'd really be on to something!

      But! If the relationships between google apis isn't at all like the elements, what would it look like? And even more interesting, if there are missing spaces, that means there are google apis not yet written that we can look forward to!

      http://www.ozonehouse.com/mark/periodic/

      Is an example where someone did a periodic table that tried to use space as a way to convey information about the relationship between the perl operators. Notice how it looks nothing like the PTofE. It has its own structure because the relationship between perl operators is different than the relationship between the elements.

      Those of us that are sticklers about this feel so, probably because we find the beauty of the actual meaning behind the structure of the periodic table much much more interesting and beautiful than any joke you can make from it.

      Sometimes, jokes are funny because they're the truth that no one wants to say. Like when Chris Rock says, "[When listening to your woman], you've always got to throw in 'told you that bitch crazy',…

    • andolanraMar 2014

      I'd assert that the "periodic table of types"[^1] radically overstates the complexity of the Rust type system, largely because of the rampant misuse of the "periodic table" as a means of presenting groups of things. A "periodic table" of (for example) food items or Perl operators tends to have a bunch of distinct elements in its cells arranged by loose groupings[^2], whereas the Rust periodic table (like the periodic table of elements, but unlike other pop-culture periodic tables) has cells whose contents are for the most part[^3] a function of their row and column.

      Tabular nomenclature aside: Rust has values and two kinds of pointers, and a handful of built-in types, and you can have pointers to those types. While the semantics of the pointers are unusual, I don't think that makes it that much more complicated. It should also be noted that many of the proposed language changes make said table even more regular (e.g. replacing the [T] syntactic sugar for vectors with a more conventional Vec<T>.)

      Rust is in some ways complicated, and I'll grant that a beginner to the language will likely curse the borrow-checker more than a few times. But I don't think Rust is nearly as complicated as it is sometimes reputed to be.

      [^1]: http://cosmic.mearie.org/2014/01/periodic-table-of-rust-types/

      [^2]: http://www.ozonehouse.com/mark/periodic/ is an egregious example.

      [^3]: There are exceptions (e.g. the closure types) but they are few and easily memorized.

    • amixDec 2009

      I will reference to Steve Yegge's rant on Perl. It has a lot of examples on Perl operators that are overloaded: http://steve.yegge.googlepages.com/ancient-languages-perl - - and how their man pages isn't a big help.

      While other languages of course have their special syntax, Perl is very extreme in this regard. This is best illustrated by the following diagram of special Perl operators (where most of them are only found and used in Perl):

      http://www.ozonehouse.com/mark/blog/code/PeriodicTable.pdf

    • slurgfestDec 2012

      I respect Perl and people who use it, but this is a telling cultural artifact: http://www.ozonehouse.com/mark/periodic/

      I am not posting this to bag on Perl, but just to show its fingerprint. If you find that periodic table to be funny or cool then you are a lot more likely to be happy with Perl than if it makes you shudder.

    • kristiandupontApr 2018

      I really don't understand the need for the infix exponentiation operator. Maybe it's because I just don't do calculation heavy JS code but it seems like nothing but a clever little trick you can impress colleagues with. I would hate for JS to evolve towards needing something like https://www.ozonehouse.com/mark/periodic/

    • hermitdevApr 2025

      Hey, at least Python is nowhere near Perl in terms of language creep. I don't need a Period Table of Operators [0] to keep Python straight in my head.

      [0] https://www.ozonehouse.com/mark/periodic/

    Related

    Lennart Augustssonaugustss.blogspot.com42 people

    BASIC as a Haskell DSL (2009)

    Lennart Augustsson
    Personal · last shared 2025
    Booking.com Blogblog.booking.com35 people

    How we spent two days making Perl faster

    Booking.com Blog
    Company · last shared 2021
    Chris Smithcdsmith.wordpress.com34 people

    What to Know Before Debating Type Systems (2008)

    Chris Smith
    Personal · last shared 2026
    Flying Frog Blogflyingfrogblog.blogspot.com30 people

    Disadvantages of purely functional programming

    Flying Frog Blog
    Personal · last shared 2019
    Alexis Kinglexi-lambda.github.io172 people

    Parse, Don’t Validate

    Alexis King
    Personal · last shared 2026
    Eric Kiddrandomhacks.net65 people

    Rust lifetimes: Getting away with things that would be reckless in C++

    Eric Kidd
    Personal · last shared 2026
    Apfelmusapfelmus.nfshost.com22 people

    How Does Lazy Evaluation Work in Haskell? (2014)

    Apfelmus
    Personal · last shared 2023
    Mislav Marohnićmislav.uniqpath.com100 people

    Vim: revisited

    Mislav Marohnić
    Personal · last shared 2015