“Pop culture is all about identity and feeling like you're participating. It has nothing to do with cooperation, the past or the future—it's living in the present. I think the same is true of most people who write code for money. They have no idea where [their culture came from].”
Joseph Gentle's essay elucidating the three tribes of programming (poets, hackers, makers) finally helps me make sense of Alan Kay's particular brand of incomprehensibility—he's just mega-poet.
“in the old days, if you reinvented the wheel, you would get your wrist slapped for not reading. But nowadays people are reinventing the flat tire. I'd personally be happy if they reinvented the wheel, because at least we'd be moving forward. If they reinvented what #Engelbart, did we'd be way ahead of where we are now.”
I'm not saying that #AlanKay isn't brilliant—incomprehensible too. It's like he's seen a past that we haven't and wants his future back. Like a reverse-poet–prophet.
@22 I like this essay but I don't think I'm in one of those tribes
@kragen Some kind of alien eh? <predator.gif>
@22 I mean I think all of those things are important
@kragen they are all important certainly. The realization I think is that each of us is in a specific place along the simplex defined by those tribes via our predisposition, training etc., and that might explain a lot about why we feel certain ways about certain things. In my case it was a big revelation that I’m a maker and all kinds of things including my feelings of “hmm Alan Kay is using English words and syntax I think but nothing he says makes sense” suddenly made sense.
@kragen no I lie, his keynote at 1997 OOPSLA made, where he talked about architecture trumping material, made a lot of sense. But everyone knows abstraction is important, and probably most senior-enough devs learn to recognize that code smell that says they’re doing something too complicated and need an architecturally more powerful solution than what they’ve been doing so far. Kay just said it in a cool way.
But after each of his talks I’m like… “so what does he want me to fucking DO?”
@kragen “other than build a time machine and go back to the 60s and live at Xerox PARC”.
@22 You could ask him; he's not dead yet. Maybe learn more math, seek powerful primitives, and explore DSLs. Myself, I think there's an enormous amount of promising territory to explore there; I've written about it at some length in Dercuano.
@22 I mean, there's a lot of new stuff that might give us new, more powerful ways to program: we have SAT/SMT solvers, generative testing, automatic differentiation, immediate-mode GUIs with automatic caching like React, lightweight model checkers like Alloy, newly powerful theorem provers like Lean, content-centric networking, smart contracts on blockchains, CRDTs, and lots of other things.
@22 I mean obviously ANNs and stuff. But there's a lot of other interesting new stuff that's less trendy: probabilistic programming languages, for example, and SPARK's concept of a resilient data whatever.
@kragen I donno, I've done machine learning, JAGS and Stan, React, CRDTs via Automerge—lots of cool tech—but, if I'm correctly interpreting your list as a list of various cool tech, I've never felt any of that would remotely satisfy the man.
His fixation seems to be (1) code that transparently refers to the thing it's modeling (how any object in #Smalltalk VM is inspectable and editable) and (2) code that augments humans' analytical faculties (http://worrydream.com/Engelbart/).
How even can I…? 🤷♂️🤷♀️
@22 I think existing examples of successful augmentation include spreadsheets, calculus, Wikipedia, search engines, IDEs, Sci-Hub, Jupyter, SQL query optimizers, compilers, geometry, abstract algebra, linear algebra, SPICE, and so on.
@22 I don't know anything about JAGS and Stan!
It's not just about "various cool tech" — it's a question of what it takes to make computers a more powerful and flexible medium for human expression and thought. Have you read the VPRI STEPS reports? They spent a lot of time on things like Cola, Nile, and PEG parsing.
Nice article, but:
> And without product engineers, everyone else would be forced to write CSS. And trust me, nobody wants that.
Actually, I like writing CSS
@22 But it says Alan Kay is in all of the three tribes at once, he's not "*just* mega-poet."
@22 hmm... when I read the interview, I think he's by no means a hacker (per Gentle's definition). No way. A hacker would know that this "objects exchanged between computers that never reboot" would make it very hard to keep track of the state of any machine, which would keep accumulating errors.
If we could write perfect programs, maybe it'd make sense. But because we can't, we need to compartmentize them into things (machines, processes) that start from a small, clean, known-good state.
@Wolf480pl I dunno, smalltalk VMs seem to work well this way, maybe there’s more to the story.
@22 dunno, from my experience smalltalk VMs are terrible
@Wolf480pl oops someone caught me :) I think Joseph is giving Alan the benefit of the doubt. Maybe back when he was making Smalltalk and DynaBooks he sat at this intersection of all three tribes but today everything he says, everyone he sadly shakes his head at, make me think “poet”.
@22 I think the author forgets, in the case of tribe 2, that reducing energy consumption in a world where energy usage is non-renewable and destructive, is really important.
@22 Writing hardware efficient code is better for the environment. Whether for a mobile phone app or a laptop or a server system or a wearable. Your code should be as environmentally friendly as possible.
@esty Keeping the perspectives described in the original article, a poet or maker might say that inefficient code (easily obtainable in Haskell or Ruby) can unlock value—intellectual or pedagogical or business value—that winds up reducing much greater quantities of wasted energy than the code itself.
In other words, "don't be penny-wise, pound-foolish".
Once you've found which code is worth running at all, then you can pay hackers to make it efficient (including inventing new CPU types).
@esty I think the big realization is that people are psychologically predisposed to being in one of these tribes. And feeling that one is superior or inferior isn't helpful nor healthy.
So hackers squeeze blood from stones (performance out of silicon) because they like that challenge and are good at it. If it's environmentally worthwhile, that's a bonus.
There may be some who live in hackerlands because they're environmentally motivated, but I feel these are rare & probably not representative.
@22 Yes people generally affiliate with one or more tribes. I'm not arguing against that, but an erroneous statement is made regarding the need for tribe 2's existence and that requires rectification.
@esty Are you referring perhaps to this bit, where Gentle says "Nobody else cares about performance quite like people who think about the hardware all day"?
@22 Oh and I've worked for some very large companies in devops and they are very interested, not for environmental reasons but because one crappy line of code can increase your electricity bill by a lot when running 1000s machines. So there's actually a huge market for tribe 2s.
@esty 2000% agree here, if this article was written today it would certainly make reference to the effort people who own and run data centers spend on making things run cooler and lower-frequency and cheaper but with same throughput.
I will add this to my internal list of ways Joseph's article might have been improved, thanks for explaining.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!