Joe Armstrong
1950–2019 · British computer scientist
Topics: distributed systems, software design, programming, software engineering
Joe's law: Frameworks grow in complexity until nobody can use them.
— Joe ArmstrongI wanted to build fault tolerant systems and pretty soon I realized that you can’t make a fault tolerant system on a computer, because I think in the entire computer might crash, so I needed lots of independent computers.
— Joe ArmstrongTwo phases commit breaks laws of physics.
— Joe ArmstrongIf somebody puts a big list of things up, my question is always: what is the most important thing on that list.
— Joe ArmstrongHow to make a list? Collecting the data, that's the easy bit. Sorting it into categories is slightly more difficult. Shortening the list is the most difficult part. That a really difficult problem.
— Joe ArmstrongI was crap at writing. I learned to ride. I wrote a few books and after, you written a few books, you get good at it. But I was really rubbish at writing to start.
— Joe ArmstrongI started programming in like 76. There was not enough stuff. There was Fortran and Cobol... And Fortran. Now there's 250, 500, 800 programming languages, one new each week.
— Joe ArmstrongWe should get the Congressional Medal for creating employments because we have created billions of man hours of maintenance work for people in the future. We are the job creators of the future.
— Joe ArmstrongIf you can't detect failures, you are unable to recover from them. That's an obvious principle you need.
— Joe ArmstrongTo me, programs are black boxes. You send a message in and you get a message out. I don't care if it's written in Scala or Haskell or Erlang or Python or Ruby. I care about this relationship between inputs and outputs.
— Joe ArmstrongWe need to build a world where there are parallel processes communicating through message passing and I thought they cannot have shared memory because if they have shared memory and the remote going to be the crash.
— Joe ArmstrongWhat's legacy code? That's dead programmers stuff, not only there are no comment in it, you can't ask people because they are dead. It written in languages that nobody understand, there is no specification and yet it works beautifully!
— Joe ArmstrongI had a plan. Learn Emacs. Learn UNIX. And learn programming language. What happened? I didn't learn Emacs. I didn't learn UNIX. And I invented a new programming language.
— Joe ArmstrongThe API we use in programming languages are not adequate for describing the order in which we can perform the API calls. They are basically useless.
— Joe ArmstrongI don't like the fact programmers are isolated. I hate all these git rubbish stuff. I mean, this is horrible because it makes you think that programmers are individuals and not part of a community. It makes them thinks that what they are doing is isolated.
— Joe ArmstrongIf you try to fiddle around with your code to make it efficient, that's the wrong thing to do. Keep on track with the latest hardware. That's the right thing to do.
— Joe ArmstrongDefensive programming in C, is only necessary because you have only have a single thread of computation. If you have a sequential language and it crashes, you lost everything.
— Joe ArmstrongIf the entire computer crashes, you're screwed. you can't really do fault tolerant computation from one machine.
— Joe ArmstrongA lot of systems actually break the laws of physics.
— Joe ArmstrongI don't like modules. It's a sort of love/hate relationship. The problem with modules is the classification problem. When you have written a function you don't know in what modules you put it in.
— Joe Armstrong