Processes aren't first-class objects in the language, so we can't talk about processes themselves but only about process identifiers, which are first-class objects. We can create a process with spawn, but we're spawning code. We typically focus on the code in a programming language and divide it into functions, modules, and applications. Still, these abstractions are orthogonal to the processes' abstraction. When we create a module with a gen-server behavior, it makes it easy to think that this module is the gen-server process, but in reality, the module is just some code that the process will execute. Other processes will even execute some of the callback code in the module.
What an amazing talk ! Thank you ! And what an eloquent way of illustrating Joe Armstrong's quotes :)
Thank you!
yeah, I just want to write the same and found ur comment.
The audio cuts off at minute 22:31 , "we cant really talk about process themselves we......" ( Please what was missing phrase ?)
Processes aren't first-class objects in the language, so we can't talk about processes themselves but only about process identifiers, which are first-class objects. We can create a process with spawn, but we're spawning code. We typically focus on the code in a programming language and divide it into functions, modules, and applications. Still, these abstractions are orthogonal to the processes' abstraction. When we create a module with a gen-server behavior, it makes it easy to think that this module is the gen-server process, but in reality, the module is just some code that the process will execute. Other processes will even execute some of the callback code in the module.
Awesome!