J

Joe Armstrong (programmer)

161 QUOTES

A biography for Joe Armstrong (programmer)hasn’t been written yet.

People are inventing new programming language all the time but I think that's not the big problem is actually writing programs. I think the big technical problem in building system is what I call "the connecting things together problem". It's a version nightmare problem. It's given things in different languages and actually connecting them together.

When I write code I always think somebody else must have written this before me and I can't find it. Why do we write code if we can't find it with Google. If we can't really find it, then we can write the code. Lot of the code is pain in the arse, it's just boring stuff.

I 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.

I have a problem with categorization problem because I cannot say this thing got to be in that module or that class.

Object oriented programming asked you to put things into categories, into classes. Concurrency oriented programming asks you to identify the concurrency and the problem. The concurrence in the problem is a property of the real world. If you are doing real world modeling you can see it, you can smell it, you can eat it

This is a letter about a conference. Does it go in letter or in conferences? This is a categorization problem, as soon you put categories into things you don't know what category to use. This is the problem in object oriented programming, this is why object oriented programming is bloody stupid.

A technology that nobody use, just dies.

We wanted to build big distributed systems, fault tolerant systems. The sort of systems that everybody wants to build today. It's not just about telecom. At the time it was just about telecom but now, it's not just about telecom. Virtually, every big systems you want to build has to do these things. You want to connect millions of people and you don't want if the system fail in anyway, you don't want these individual transaction to be broken. We started to working on that, way back. That sort of way we got Erlang.

This [showing his smartphone] is about a million time more powerful than the computer but the computer was developed on.

Erlang was specifically designed for fault tolerance, it was not designed for anything else.

You have to analyze the consequences of a failure and that to the specification.

The problem is more than just the should do when it works, it should also say what it should do in presence of failures that you could reasonably predict.

If you do something and it fails you can do it again, it will work the second time. That's because quite often you are using something underneath where you've missed a message or messages are coming in wrong order.

Don't be deluded into thinking that is sort of ultimately fault tolerant. You can only provision it for the faulty things that might happen and then for a large class of things it could happen.

you can basically make things as reliable as you by having lot of machines.

If the entire computer crashes, you're screwed. you can't really do fault tolerant computation from one machine.

You don't want your fault creep into the system and damage other parts of the system. you need to build firewall between things to stop them from propagating.

You can't do anything unless you detect the fault.

You're a programmer, you've just written 100 lines of codes that C++ programmers have failed to do. You want to show it to people because you're quite pleased. You think they're going to be pleased...

I am the world's worst C programmer because it's so complicated I can't understand it [...] All I know is that whenever I write C, my pointers are always missed by one from where they're supposed to go.