3 ms·
I can't tell if he realizes that he basically described a rather typical OOP language and runtime?
by im_down_w_otp 10y ago
I can't tell if he realizes that he basically described a rather typical OOP language and runtime?
- lkrubner 10y agoThat 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 10y agoI 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?