Hacker News new | ask | show | jobs
by masklinn 3565 days ago
> This created havoc in Python. Hopefully it won't happen here.

There are big differences though:

* Python had 15 years of source-compatibility before the switch, Swift has 1 year and a history of source-incompatibility (Swift 2 was not source-compatible with Swift 1)

* Python had a fair amount of semantic-incompatibility

* Python doesn't have a (heavy) compiler backing it up making source and semantic incompatibilities runtime issues your program bashes its face in rather than cascading compilation failures

1 comments

It won't happen because Apple won't give you the option.

Swift 3.x has a large amount of syntax changes. The compiler helps with the refactoring but it's still work.

> It won't happen because Apple won't give you the option.

What won't happen, havoc in the ecosystem? How is Apple relevant?

> Swift 3.x has a large amount of syntax changes.

Yes?

> The compiler helps with the refactoring but it's still work.

That's not what I'm talking about. A bit of drudge work is fine, the issue of the Python transition is that you get usually hard to debug runtime failures down the line, possibly for a long, long time. With Swift, I assume the compiler just keeps complaining until you've converted everything more or less properly, you may have a few nits but you don't keep finding new breakages.

What won't happen is that Apple won't let people build against old versions of Swift. We'll all be on 3.x soon.

I have no idea how hard the conversion of a large Python 2 to 3 project is. My projects were small and I had no troubles. At any rate 2020 will be here soon and 2.x support will end. All Swift users will be on 6.x by then.