
Program development is state change of a Key-Value database - lkrubner
http://erlang.org/pipermail/erlang-questions/2011-May/058768.html
======
lkrubner
This seems like an exaggeration, but look who is saying it: Joe Armstrong.

~~~
brudgers
It seems like a useful abstraction over the Von Neumann architecture. I mean a
memory address is just a key to some value.

------
im_down_w_otp
I can't tell if he realizes that he basically described a rather typical OOP
language and runtime?

~~~
lkrubner
That would only be true if you put all of your functions in a single Class. He
is attacking the idea of Object Oriented Programming. He is saying that even
modules are too constricting. He wants to get rid of everything above the
level of a function, and just have functions, all existing in the same
namespace.

~~~
im_down_w_otp
I mean... they technically are. Namespaces are just logical. Think of Elixir
namespaces. They're implemented as weird Erlang module names via irregular
atom-literals. Or languages like Objective-C which traditionally had no
namespaces, and thus resulted in conventional patterns like everything in the
original NextStep frameworks being prefixed with `NS`.

But even looking straight at Erlang modules... there's not a tremendous amount
of difference between writing or calling `lists:map(Function, List).` and
`lists_map(Function, List)`, and if you want to leverage something like
generics/traits/protocols, then you'd just have `map(Function, Datatype)` and
dispatch the right version of `map/2` by inspecting `Datatype` to allow you to
do away entirely with namespacing of any kind.

The only other distinction that would be provided here with no modules is the
lack of ability to have "private" functions. Unless that would be implemented
with the "metadata" he talks about... in which case... how's that different
than having to explicitly "export" a function to make it be "public"?

I'm trying to give the benefit of the doubt here, but I'm not seeing what the
insight is supposedly highlighted by Joe here?

