But when you don't like how something is done that other people do like, there comes a time when you just need to pinch it off and leave the pot so other people can enjoy it.
For some reason it's small niche languages that really bring out the hubris in some HNers. Maybe because they have a sense of ownership over it by virtue of merely using it, something they know is silly when it comes to larger languages.
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.
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".
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.
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.
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
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.
As a remark: I've been accused of feeling ownership over Elm. What I actually felt was investment in Elm, which is different. And I think it's an entirely reasonable thing for me to feel.
I know you used the word maybe. Still, I'd generally be wary of attributing motives like this towards people.