[erlang-questions] Binary string literal syntax

zxq9@REDACTED zxq9@REDACTED
Wed Jun 6 01:22:07 CEST 2018


On 2018年6月6日水曜日 0時59分58秒 JST you wrote:
> > There is a strong chance that Elixir will explore so much in terms of
> language conveniences that it will blow up the way C++, Ruby, and Perl have.
> 
> Elixir has not added new syntax since v1.0, launched in Sep/2014 (almost 4
> years ago, while the language is 6.5 years old).
> 
> Granted, 4 years is not a long time in terms of programming languages,
> especially when compared to Erlang/C++/Ruby, but it shows the trend is not
> pointing to the direction you have hinted.

Don't take this the wrong way, because I think what you've done is great overall: I mean v1.0 itself represents a syntactic explosion (but it couldn't have happened any other way). You were riding the wave of community language organic evolution, and some weirdness always grew out of that. It is impossible for that *not* to happen. Even the Scheme definition has weird corners!

If you could write Elixir 2.0 from scratch, regardless what user expectations you might crush, would it come out *exactly* the same way? I doubt it. You've learned a HUGE amount about language design through this process and surely you would hope to implement some of that and clean up the corners eventually.

4 years isn't long and I would be absolutely shocked if there are *no* syntactic changes to v1.x later on down the road, doubly shocked if there is never an Elixir v2, and triply shocked if a few linguistic earthquakes don't happen if or when you decide to abdicate as Elixir's benevolent dictator.

(Please never abdicate, by the way. That's a scary thought.)

This isn't an indictment of Elixir -- I don't mean it that way -- language design is HARD. People just can't believe how incredibly hard it is to design a sane language. That's why I am extremely conservative with language syntax suggestions once a language is already in broad use. There are strong, princpled reasons you *haven't* added syntax to Elixir since v1.0, right? That's my point.

-Craig



More information about the erlang-questions mailing list