[erlang-questions] Erlang 3000?

Bengt Kleberg <>
Mon Nov 17 09:43:39 CET 2008


Greetings,

You could also add that the return values upon success are unnecessarily 
different:

ets => true
mnesia => ok


bengt
Those were the days...
    EPO guidelines 1978: "If the contribution to the known art resides
    solely in a computer program then the subject matter is not
    patentable in whatever manner it may be presented in the claims."


On 2008-11-15 19:54, damien morton wrote:
> I don't suppose there's and Erlang 3000 project in the works?
> 
> The Python people set out to create Python 3000, throwing backwards
> compatibility out the window in favour of fixing language and library
> design errors.
> 
> I mentioned earlier the variety of ways that the Erlang libraries
> signal returning a value or not. Some examples:
> 
> proplists:get_value(Key, List) -> undefined | Value
> 
> dict:find(Key, Dict) -> {ok, Value} | error
> 
> gb_tree:lookup(Key, Tree) -> {value, Val} | none
> 
> dets:lookup(Name, Key) -> [Object] | {error, Reason}
> 
> ets:lookup(Tab, Key) -> [Object]
> 
> All these operations on standard ADTs are roughly equivalent, and yet
> they have different or conflicting naming conventions, different
> return value protocols, and different orderings of their arguments.
> 
> While ets:lookup and dets:lookup return a tuple, one of whose members
> is the key, gb_tree:lookup return the value of a {key,value} pair.
> 
> gb_tree:lookup, dict:find and proplists:get_value all perform the same
> operation, and though the return value protocol is different in each
> case, at least the arguments are the same.
> 
> The key asset for any well designed language or library is
> learnability, which comes from regularity, i.e. having learned
> something in one situation, one can apply that knowledge to similar
> situation with a high probability of success.
> 
> Erlang already does a lot of things differently from other languages,
> but when every single library module does things differently from the
> others, well, that's a lot of heterogeneity for a novice to deal with.
> 
> I wasted an hour so so tonight trying to figure out a problem that
> stemmed from proplists having a different argument ordering to ets - I
> just instinctively assumed they had the same argument ordering, and
> why shouldn't I?
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list