1. 42

  2. 16

    I’ve always found this article confusing because I fit into a bit of all three. I want to know how things work, I want my code to be beautiful, and I want the resulting program to be beautiful.

    1. 4

      These are archetypes, and people manifest them differently. At the end he says, “ I think we should aspire to be like Alan Kay and do all three.”

      I fall mostly into tribe 2, but I want enough abstraction to make my code clear and simple (tribe 1), and I’ve spent time building systems to make new things possible for people, and to make those things feel beautiful (tribe 3.) I get annoyed by people who are stuck in one mindset.

      1. 4

        The first time I read it I felt similarly, but upon a second look I realize it is more accurate that I feel like I inhabit each of the three, at different times. Either I am in one of the three as an unconscious kind of “mood” or as a conscious “outfit” that I choose to wear, in order to fit the weather or situation I find myself in.

        1. 1

          I actually wanted to ask “hey can I be in all three tribes?

        2. 7

          Note that the formal verification toolkit for Ada is called SPARK. Ada is also never written in all caps. And Clojure, of course, doesn’t have any s’es in it..

          I know it’s meant as a friendly parody of all three tribes. Still, a parody should better be exaggerated but correct, but this one is ruined by the lack of reasearch/

          Rust is trying to put one foot in each of the first two camps - be a language made by programming language nerds but which compiles to efficient code.

          OCaml is a fast compiler that generates fast code. MLton is a whole program optimizing (thus slow, yeah) compiler that generates fast code. ATS is a dependently typed, non-GCed language—the hyper-Rust.

          1. 5

            This is a nice essay. I can see a lot of this in the various communities I hang out with.

            I’ve been a proud member of all three camps, although I gravitate toward the last group when pressed. I tend to think, however, that there’s a fourth group that rarely gets much press, mainly because the communities have all grown so large: people who view programming as a way to explore yourself and the world around you. It’s a tool for exploration of both yourself and the universe, and in that capacity all of the other tribes makes sense and support this mission.

            1. 2

              That’s very true, I would say I am closer to what you describe than any of the ones in the group. I act mostly as a product engineer because it pays the bills, but what I see of beauty in engineering is the way it can extend the human capacity and move science and human knowledge further. I am strongly anti-capitalist, so being a product engineer alone would be soul crushing for me, it’s how I act in a company, not who I am.

            Stories with similar links:

            1. 3 tribes of programming via adsouza 2 years ago | 87 points | 33 comments