
Uses This: Joe Armstrong - yakshaving_jgt
https://usesthis.com/interviews/joe.armstrong/
======
AceJohnny2
> _Emacs, make and bash for all programming._

I'm validated!

More seriously though, I find these particular choices interesting. For one
thing, they're indicative of his experience as a "greybeard" programmer [1]:
Someone who was still active until very recently but started programming _50_
years ago. He was always try to bring forwards some computer science ideas
from the 60s that never really made it into the modern zeitgeist. His tool
choices seemed to represent that. Old tools that had some foundational
flexibility that allowed them to stay relevant through the decades.

[1] and not the curmudgeonly kind who will only use what they learned so many
decades ago, as demonstrated by his selection of more modern tools for other
tasks

~~~
AceJohnny2
Make, particularly, stands out for me. As an embedded/firmware programmer,
it's a core tool of mine that I've had to begrudgingly learn. Make is awful,
but it's irreplaceable.

At it's core, it's really a mix of three things:

1\. A language to define a dependency graph ("target: dependencies") and how
the nodes are connected ("rules")

2\. a functional scripting language to be able to factorize the declaration of
the graph

3\. and finally a graph traversal worker to dispatch and perform those rules
that are required (including a sophisticated "job server" to maintain the
concurrent job limit across child make processes _with no developer
intervention_!)

I haven't encountered a good replacement tool that properly tackles all 3 of
these feature sets. (Granted, I haven't done an in-depth analysis of the
field...)

~~~
gavinpc
Have you tried Tup? [http://gittup.org/tup/](http://gittup.org/tup/)

I used it on a project with many thousands of files and hundreds of (mostly
dynamic) build rules. This was a literate program, and most build steps
required the extraction of code from the source docs --- including build rules
themselves --- and I still maintained sub-second updates.

I think Joe would have loved it.

~~~
AceJohnny2
I have! Tup was high on my list of potential replacement candidates (despite
being initially put-off by the cheekiness of its homepage).

In my experiments though, Tup failed hard on point 2, lacking a good language
to factorize the dependency graph declaration. (and to be clear, I think
Make's is pretty terrible by itself, before GMSL or Guile extensions come into
the picture)

Edit: I see tup supports Lua extensions, which may cancel my complaint above.

------
dmix
It's amazing how many of those product links are dead just 6yrs later.

Electronics (or any "hardware") companies suck at maintaining links. Which is
bad for SEO and bad for potential customers. Even if the products are old, at
least mark the page as older.

It's not like people stopped using those old products and I can still find
almost all of them for sale on craigslist. Particularly the audio equipment.

~~~
dominicl
The vision of the mentioned chandler project captured my interest.
[http://www.chandlerproject.org](http://www.chandlerproject.org) anyone knows
if there exists continuation in spirit?

~~~
porker
And what happened to these interesting projects. Chandler was one that excited
me as a teenager.

Who's thinking differently today?

~~~
coldtea
Well, where did "thinking differently" got the Chandler team?

~~~
porker
Nowhere. But that does not say there's no merit in thinking differently.

------
kbuchanan
Reading his list of development tools—Emacs, make, bash—reminded me of this
talk by Tim Ewald [Programming with Hand Tools]:
[https://www.programmingtalks.org/talk/tim-ewald-clojure-
prog...](https://www.programmingtalks.org/talk/tim-ewald-clojure-programming-
with-hand-tools)

Took me years to appreciate the value of careful study and mastery of simple
tools over new and shiny (which still has its place of course).

------
ashton314
I love how his wishlist is basically “I want more fault-tolerance in my life.”
It must have been supremely frustrating having built Erlang to see so much
brittleness in the rest of the world.

Also, +1 for Emacs. :) It’s nice to know that some really smart people like
the same tools I do.

------
rhizome31
The conclusion is hilarious, full of wisdom and kind of sad in a way:

> I'm trying to build some of these things - right now I'm still stuck on the
> first point - making software that's not broken

------
atorodius
_It would cache data off-machine into fault-tolerant storage.

If the machine broke I would like to go to any other machine and resume work
within a few seconds without losing any data.

If my machine was stolen I would like it to be totally unusable after a short
time - so nobody would bother to steal it.

I would like the machine to recognize me, through some mechanism
(fingerprints, retina scan, DNA - who knows) so I don't need passwords._

This seems to be a combination of what‘s possible with chromebooks +
smartphone (not stolen much anymore because of Find My iPhone etc.) + Touch ID
on the macbooks.

~~~
dhash
I have the first 3 points covered with resilio sync, wireguard, and running
ZFS on a Linux district with full disk encryption. I would have all 4 if Linux
supported newer fingerprint readers

------
keyle
The post should indicate "2013". And on a side note it's amazing how little
has changed in 6 years.

------
insulanus
Joe, I didn't know you, but I miss you.

~~~
pmarreck
I met him at a conf not long ago. Super nice guy! Hopefully he is just nice
somewhere else now.

------
pandemic_region
Surprised he hasn't mentioned TiddlyWiki on that list, he was pretty
enthousiastic about it the last couple of months on Twitter. I feel like I owe
it to him to start using it and get my shit organized finally :/

~~~
intea
The Interview is 6 years old. Joe Armstrong has passed away since then.

~~~
allard
17 days ago

------
nemo1618
I didn't know Joe Armstrong produced music. Is it available online anywhere?

------
jmkni
> If my machine was stolen I would like it to be totally unusable after a
> short time - so nobody would bother to steal it.

I would like this as well, does anybody know any good solutions for this?

~~~
sanbor
Yes, the iPhone has it but it sucks. You can't reinstall anything without
unlocking the phone (thanks to the closed ecosystem) and because pretty much
all the hardware is integrated in a board it doesn't make economic sense to
replace parts to circumvent this.

------
greenfamily
aw man, that 2013 hardware list is still state-of-the-art. my mbp of that
vintage is still running strong and im terrified of what i will do when it
dies (i use my ports all the time!)

------
theknarf
RIP

~~~
davidkuhta
*Used This

RIP

~~~
yakshaving_jgt
Please see:
[https://lobste.rs/s/rec4zd/uses_this_joe_armstrong#c_13jxbm](https://lobste.rs/s/rec4zd/uses_this_joe_armstrong#c_13jxbm)

------
abledon
Hmm surprised he didn’t use a debugger, only printf statement

~~~
filmor
In Erlang that makes a lot of sense since most of your calls into other
processes are done with a timeout of (by default) 5s, so breaking for longer
time puts the system in a very non-standard state, which doesn't help in
finding errors :)

------
Hammershaft
What an amazingly useful website!

------
simonh
And I got completely lost here:

a = 1/(1+7) ... 2 _a+sqrt(a)

I have no idea what this means, or what relationship it has to the construct
after it. Where does the result of ‘2_a+sqrt(a)’ go? I thought ... was just a
separator in the text, but now maybe it’s some sort of functional syntax?

This is exactly the problem I have with most of the articles I’ve read that
extol the virtues of functional programming. They say something like ‘in a
functional language all you do is X’, without explanation, where X frankly
just looks like gibberish.

To be fair this isn’t an article about functional programming, or an
introduction to it. Fair enough, but it’s still a bit exasperating.

EDIT Ok. I should have said this isn’t an introduction to functional
programming.

~~~
Ndymium
I guess you commented on the wrong post?

~~~
simonh
oops

