In 2019 or 2020, I started to extract all Joe Armstrong from his publications and conferences. It started as a small project on Wikiquote. If you are interested, please help me! If you want to help me, you can also subscribe to this blog, you will receive more quotes from Joe Armstrong and others!
Sherlock's Last Case
Sherlock's Last Case. 12 July 2013.
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.
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
I have a problem with categorization problem because I cannot say this thing got to be in that module or that class.
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.
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.
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.
If I want to make a programming language, I would not make a programming language, I would make a protocol description language where you can formally describe protocols and you can formally validate the components are obeying the protocol. I put these between everything that communicates in a form of a contract and I would not like to serve contract violations.
I do not think we can build systems that are large with large components.
I don't think a program should be bigger than possibly 128 kilobytes, possibly 64 kilobytes. It should be possible to understand that program in its entirety.
I think we have to think about how we can make systems out of very small components with very strictly defined protocols between them.
I think we need to start describing configuration languages that describe how the thing is built and configured.
To 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.
API in programming languages is totally stupid because they do not capture order.
The 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.
You know, there are two types of languages, there are languages that people bitch about and there are languages that nobody uses.
The terabyte boundary is going to cause movies to have the same status as films and digital books.
That's enormously interesting, the petabyte change because what's gonna happen is all human knowledge, every book that ever been written will fit into 138 terabytes of memory. That will mean the petabyte of memory can store all human knowledge and we can give it to every person on the planet. If we do that it's totally going to change society.
[in the next 5, 10 or 15 years] I think we will see repressive states to try and stop technology. We will find free states try and promote it.
I find it totally absurd that the word intellectual and property, those two things can be put into the same sentence and you connect intellectual property with property. As if an idea can be owned and if you can get money for it. It's not physical! Physical things, you can own! You can't own ideas!
The other thing you have got to do is take the data out of the cloud and put it into your home cloud. Make your own home cloud.
We are computer scientists, we are slaves who works for these big companies [Google, Facebook].