|
|
|
|
|
by mikeash
3697 days ago
|
|
C got started in 1972, and K&R C dates from 1978 and includes compatibility-breaking changes. You want a young language to change a lot, because you don't really know what it needs until you get it out there and people use it. You want to make necessary changes as early as possible to cause the least pain. Major changes at the two-year mark will be a lot easier than major changes at the five or ten year mark, and waiting too long to fix a bad decision will probably mean it sticks around forever. I would expect Swift 3 to be the last release with major source-breaking changes. |
|
- Almost nobody actually used C prior to 1978.
- Most C compilers have supported both current and previous versions of the C standard via -std flags.
- Other languages with breaking changes, like Java, are similar. Java has always supported specifying the source language level via -src.
Swift is unique in breaking old code completely, without recourse other than semi-functional code rewriting tools.