I would say naive for such people. When you are switching to other language (no matter which one) then you are starting from learning basics and not to assume something. I believe that you can assume something when you are at least mid developer and you know a rules which core developers follows. Otherwise it’s just waste their time.
I mean when you want to use washer machine then you simply can’t assume that it works just like a lamp. You are reading a basic instruction and you are trying to avoid edge-cases like pink clothes. One of my most important rule when talking with with somebody that explains what should I develop is to not assume anything even the result of 2 + 2, because what client wish is what he should receive in greatest possible form after technical discussion of course.
Don’t get me wrong, I agree fully. But lately I have more free time and have been frequenting this forum a lot. The amount of naive or weird questions is sometimes baffling. Back to your example, many people expect different washing machines to have the same icons on the buttons that to do the same function on all washing machines. Does not mean all vendors of washing machines do that though, that’s the reality.
Back to the topic at hand, I would still say “no” to adding the functions to Kernel (Discussion #1) due to duplication of functionality. If they are added, they should only be aliases that internally compile to Map.fetch! and Map.has_key? and should only be usable inside guards. But I don’t know if that’s possible to implement with the current compiler – or if it would not incur ugly code compromises to make it happen.
Vendors will do it only in case there will be a reason for it and such thing is already well standardized. For example Elixir uses UTF8 not by accident, but other things like = is match different. It’s not possible to avoid all WTFs and even more I believe that if we agree with one assumptions then there would be questions why we can’t agree with others. I think that if there is any reasonable standard of doing something then Elixir should go for it and otherwise we should not really care if people are naive. We really care about documentation and if somebody will not read it then it’s not community fault. I believe we have best or one of best documentations at least in languages I know - otherwise I would see such WTF thing as a real problem.