| My two cents > I can usually bang out a solution to just about anything in Python. I update locals and add globals and modify arrays and get working code Globals in Python? They do exist but why ever use them? Not using them in Python invalidates most of the puzzliness attributed to Erlang and Haskell. > Each [Erlang] process captures a bit of relevant data in a small, endlessly recursive loop. Imagine dozens or hundreds of these processes, each spinning away, holding onto important state data. Erlang string theory, if you will. Calling an Erlang process to store state is equivalent to calling a method of an object. There are hundreds of important objects in any medium sized OO program, plus hundreds of thousands invisible ones, just because everything is an object. Nobody complains about creating the few important objects in Python and nobody complains about creating the few necessary processes in Erlang. My complaint with Erlang and Elixir is that I have to define handle_cast and handle_call functions with the actual method name passed as argument instead of being able to define and use the real method names (or function names, it doesn't matter) as in any sensible language. It feels so low level, like OO programming in C around 1990. Erlang is excused because it's from that age. Elixir is not. |