Hacker News new | past | comments | ask | show | jobs | submit login

I got burned by the migration from 1.0 to 1.something and haven't used it since. Looks like it was the right choice, breaking changes are a major failure in language design IMO.

I understand why they do it, but I don't like that they are getting away with it. Apple seem to be in this endless update cycle where they change stuff across hardware, operating systems and even programming languages. The customer doesn't have much choice: they either keep up or get left behind.




I disagree. Compare macOS today with the initial OS X release and it is fundamentally the same system both UI wise and code wise. Windows and even Linux has seen far more dramatic UI shifts in the same period. Same goes with the code. Windows went from win32 C API to C++ API with MFC and ATL. Then they promoted COM and Visual Basic development. Only to change gears and make C# with a completely different API. Then winforms gets depricated. We get silverlight, WPF and then there has even been more stuff in later years and I lose track. Compare this to macOS which ever since OSX has used almost exclusively objective-c and cocoa. Even now with swift you can use cocoa, and pretty much all apple technologies you allready knew. C# made redundant all previous win32 and VB skills. The introduction of Java, python, ruby and Go have not let you use any previous skills or libraries. In this regard Swift is an amazing accomplishment as you can reuse so much existing skills and code.


Can you take code written for the initial Mac OS X release, compile it and run it on the last version? You can do that for Windows.


They deprecated a lot of UI methods in the 10.4 timeframe so I would bet not. I’m sure someone has some code, but it is probably very limited.


> Compare macOS today with the initial OS X release and it is fundamentally the same system both UI wise and code wise

Try to make use of the JavaBridge, MacRuby, Quicktime, Carbon, Objective-C GC.

I can get a few more examples if you wish.


So, same story as Windows?


I wanted to create an iOS app and due to the broken Swift backwards compatibility I abandoned it. I don't care about MS, VB and the other stuff and don't see the connection.


You could have written it in Objective-C.


The Swift team != Apple. The breaking changes they've made provide substantial improvements to the language. And they've always been up front about this, if you were developing with 1.0 you knew they were warning that it was incomplete and subject to much change. Fortunately their migrator has made most upgrades nearly automatic.

I'd much rather have breaking changes than having to constantly deal with dangling pointers and excessively verbose syntax.


They shouldn't have called it 1.0. It confuses people.


I suspect this was not entirely their choice, but Apple marketing being averse to releasing non 1.0 products to the public.


> breaking changes are a major failure in language design IMO.

So I presume you:

a. get every major design decision on a project right on the first try

OR

b. don't care and let people live with bad design for the lifetime of the product


c. you develop the language openly for some time before calling it production ready (as it happened with kotlin)


If you work somewhere like Apple, you might not have that choice.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: