Talk:Joe Armstrong (programmer)

Ask for correction
If you find some time to read and correct the typos, it would be nice. I am not a native english speakers, and sometimes, some phrase or terms could be wrong. All videos are directly available on Youtube and can be seen anytime.

Joe Armstrong's sources
Here some link to transcript the different quotes. I already watch them, but, I also need to write these quotes properly.


 * Making reliable distributed systems in the presence of software errors Joe Armstrong's Thesis
 * Software engineering radio, Episode 89: Joe Armstrong on Erlang
 * Elixir Fountain, Episode 059: Music to My Ears with Joe Armstrong
 * Sonic Pi meets erlang
 * Computing, the first 100 years
 * Joe Armstrong's official blog
 * Why OO sucks
 * Joe Armstrong - On Erlang, OO, Concurrency, Shared State and the Future
 * Erlang's Google group
 * Joe Armstrong's playlist on Youtube

I started to use the discussion page as draft.

Over a Century of Programming

 * Sherlock's Last Case. June 2013.

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

Breaking Open: Erlang

 * Breaking Open: Erlang. 8th May 2013.

26 years with Erlang or How I got my grey hairs

 * 26 years with Erlang or How I got my grey hairs. 12 July 2013.

Systems that run forever self-heal and scale

 * Systems that run forever self-heal and scale. 10 July 2013.

How we program multicores

 * How we program multicores. 1 December 2013.

K things I know about building Resilient Reactive Systems

 * K things I know about building Resilient Reactive Systems. April 2014.

Modeling the World with Processes, Objects, Functions or Relations

 * Modeling the World with Processes, Objects, Functions or Relations. September 2014.

Connecting Things Together

 * Connecting Things Together. November 2014.

Distributed Jamming with Sonic Pi and Erlang

 * Distributed Jamming with Sonic Pi and Erlang. November 2016.

Joe Armstrong interviews Alan Kay

 * Joe Armstrong interviews Alan Kay. Recorded in 2016.

How we program multicores

 * Joe Armstrong interviews Alan Kay. Recorded in 2016.

Welcome Inside the Head of Larry Wall

 * Breaking Open: Erlang. 25th March 2017.

Welcome Inside the Head of Larry Wall

 * Welcome Inside the Head of Larry Wall. March 2017.

A Guide for the Perplexed

 * A Guide for the Perplexed. Recorded in 2018.

Joe Armstrong & Jeremy Ruston - Intertwingling the Tiddlywiki with Erlang

 * Intertwingling the Tiddlywiki. Recorded in 2018.


 * Everybody's should read everything that Ted Nelson had ever written.


 * Unfortunately, we follow the software model of Groundhog Day development. We invent something simple. We add more features. We add more features. It gets so complicated then nobody can use it, we throw it away and we start again. That is the dominant model of software development.


 * Software is a form of Buddhism, where we go through a cycle of suffering. A cycle of life, death and rebirth without a beginning or end.


 * We could add a messaging interface between complex things and that's how we work. We have complex models in our brain and we talk to each other. We don't understand how our models work and that does not worry.


 * "All in-one' ness" is the property of a program where all the code and all the data's in a single container.

The Forgotten Ideas in Computer Science

 * The Forgotten Ideas in Computer Science. March 2018.

5 Hobby Projects

 * 5 Hobby Projects. March 2018.

The Do's and Don't of Error Handling

 * The Do's and Don't of Error Handling. Recorded in 2018.

Computer Science - A Guide for the Perplexed

 * Computer Science - A Guide for the Perplexed. August 2018.

Let's Talk Concurrency with Joe Armstrong

 * Let's Talk Concurrency with Joe Armstrong. 7th November 2018.

Joe Armstrong on Erlang

 * Joe Armstrong on Erlang.

Books

 * Programming Erlang: Software for a Concurrent World by Joe Armstrong

Publications

 * How Erlang views the world and what we have learned in the last 25 years of programming distributed systems by Joe Armstrong
 * Erlang by Joe Armstrong
 * A History of Erlang by Joe Armstrong by Joe Armstrong
 * EX11: a GUI in a concurrent functional language by Joe Armstrong
 * Concurrency Oriented Programming in Erlang by Joe Armstrong
 * Making reliable distributed systems in the presence of software errors by Joe Armstrong
 * Getting Erlang to talk to the outside world by Joe Armstrong
 * Increasing the realibility of email services by Joe Armstrong
 * The development of Erlang by Joe Armstrong
 * Erlang - A survey of the language and its industrial applications by Joe Armstrong