Not Too Late to Change
As you watch the churn in the Swift language and the many source-incompatible changes, remember stories like this.
Dennis Ritchie, on C:
In retrospect it would have been better to go ahead and change the precedence of
&
to higher than==
but it seemed safer just to split&
and&&
without moving&
past an existing operator. (After all, we had several hundred kilobytes of source code, and maybe 3 installations....)
Stuart Feldman, on Make (via Kieran Healy):
Why the tab in column 1? Yacc was new, Lex was brand new. I hadn’t tried either, so I figured this would be a good excuse to learn. After getting myself snarled up with my first stab at Lex, I just did something simple with the pattern newline-tab. It worked, it stayed. And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn’t want to screw up my embedded base. The rest, sadly, is history.
Languages last a long time. Even multiple years into their existence is not “too late” to change things for the better.
Update (2016-02-19): Landon Fuller:
Not much consideration given to path dependence; “the … equilibrium achieved depends partly on the process of getting there”
Simple example; unstable languages mean unstable libraries. Ecosystems and culture build up around and optimize for that problem.