J

Joe Armstrong (programmer)

161 QUOTES

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

So we have had to add a notion of concurrency in real-time to our language. We also added a sophisticated error detection mechanism. This allows us to program robust real-time systems.

Up to now, declarative programming languages such as Prolog or ML have not been used for real-time applications.

The clarity of programming languages have several advantages over traditional languages. For example, programs in such languages are considerably shorter than the equivalent programs in imperative languages. They also encourage clear programming styles.

The inability to isolate software components from each other is the main reason why many popular programming languages cannot be used for making robust system software. (page 32)

When I'm writing a program, my approach is to "write a bit" and then "test a bit." I start with a small module with few functions, and then I compile it and test it with a few commands in the shell. Once I'm happy with it, I write a few more functions, compile them, test them, and so on. (page 60)

Documents are full of paragraphs. But the paragraphs don't have name. So, we can't talk about the paragraphs.

The nice thing about the Erlang documentation is everything is done in XML. XML is absolutely brilliant for marking up text.

Finally after hours of googling, I can write my program. That what's I call research. The research takes 3 hours, writing the program takes 2 minutes, for the final version. You publish the program, and you throw away the research. That's not smart. Somebody later cannot figure out how you did it because all he's see is the end result.

When we write code, we forgot about the bigger picture.

Modules change with time, and there is no sense of time in programming development. If you look at something like git, the way you deal with time is checksum, timestamp...

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

Meta-Programming Erlang is not really easy because of the way the trees are parsed.

So what's wrong with the shell? and what's wrong with Erlang? It's not LISP!

I thought if you multiply two integers together, you get an integer. But apparently you don't in PHP. You get a floating point number, which gets bigger and bigger and that's okay. Until you get to factorial(171), and then you get "INF". I don't know what "INF" is. I think it's infinity actually. But in that case, it's probably wrong, because infinity is awfully big. Bigger than factorial(171).

I could not understand how people could have get started with PHP because there was not message at all.

The middle man brings conceptual integrity to the system.

Bad ideas in computer science and anywhere are sticky. If the first idea was a bad idea, then because it works people will sort of repeat it.

Pipes are wonderful. They are doing wonderful things.

Messages are like files. We don't care how it was created.

Joe's law: Frameworks grow in complexity until nobody can use them.