4 ms·
You are right that I was too lazy to even bother explain my statement. But you are wrong about the sense of ownership. The bitterness comes from Evan deciding
by noncoml 6y ago
You are right that I was too lazy to even bother explain my statement.
But you are wrong about the sense of ownership. The bitterness comes from Evan deciding to make backwards breaking changes to the new version of the language and forcing you to spend days to update your code base.
It’s been so long that I don’t even remember what the changes were and can’t bother going back and look.
One example that stuck in my mind is when he decided that users should not be allowed to use the prime(‘) character in variables name.
It was not because that this character was now used in some other way. It was just him deciding he didn’t like that in variable names, so he not only forced it to the language codebase but to all the users as well.
Of course this was easy to change but gives you an idea. The rest of the changes where in the same spirit but much more difficult to change.
So it has nothing to do with small vs popular language. Imagine if Stroustrup had come out and said that since C+11 variable names would be case insensitive and operator overloading was forbidden.
- yakshaving_jgt 6y agoI'd like to agree with you, but I don't think you're helping your argument by picking this specific example. Using prime characters in bindings is a convention that Haskell programmers (myself included) occasionally use, but it is by no means clearer nor more Googleable. Furthermore, a single project-wide find and replace hardly takes "days".
- noncoml 6y ago> Furthermore, a single project-wide find and replace hardly takes "days". That’s what I said too, no? Unfortunately I can’t remember the changes that required more work. Sorry about that. > Using prime characters in bindings is a convention that Haskell programmers (myself included) occasionally use, but it is by no means clearer nor more Googleable. Maybe you are right, but it’s not his place, as a language designer, to dictate that. Especially when he has been promoting this style up until last release. It’s no different than the example I gave: Forcing everyone in C++ to have case insensitive names because it’s more googleable. For some, maybe including you, it may not be a big deal. But I was trying to justify my “iron grip” characterization and that it had nothing to do with sense of entitlement or sense of ownership. It was purely because he forced me to change my application code for no good reason.
- philh 6y ago> Maybe you are right, but it’s not your place, as a language designer, to dictate that. I disagree with Evan on this question and many others, but I just don't understand your criticism here. That seems like exactly a language designer's place? Someone needs to decide how the language is tokenized, what counts as a valid variable name, and so on. Very few languages have the answer "everything not explicitly used for something else is okay in variable names". (And Elm does use the ' character for other things, the rule which would allow ' would allow many many other things.) Maybe you mean he should have made a decision and stuck with it? But that would severely limit exploration. Is your hypothetical that Bjarne Stroustroup tries to do that now, when C++ is 35 years old and ISO certified? That doesn't seem a close match with Elm, which is less than nine years old and not yet on version 1.
- noncoml 6y ago> Maybe you mean he should have made a decision and stuck with it? But that would severely limit exploration Yes that’s what I meant. That’s what one should do if they want to be taken seriously. I assume you are a software engineer? Do you build APIs for other teams? How well an argument like this(I changed the whole API so I don’t limit exploration) would fly with the rest of the teams in your company. > That doesn't seem a close match with Elm, which is less than nine years old and not yet on version 1 Yeah, when everything else fails, that’s the only argument left. But this is like saying to not take it seriously and don’t try to use it on anything else other than experiments. Which is not how they try to promote Elm. I believe, based on my experience, this is just an excuse. And I am afraid that after v 1.0 when he will want to make the similar changes he will just name it v2.0 and have another excuse. Maybe for you it’s good enough, but for me it’s not. He lost all good faith with me and that’s the reason I don’t use it and recommend others to do the same. PS: sorry for being negative and apologize if I offended you with my criticism
- philh 6y ago> Which is not how they try to promote Elm. I agree with this, FWIW. And I too don't recommend Elm, and wouldn't start a new project in it. I wasn't offended, just confused.