Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think another issue is that on Apple's platforms the changes are quite abrupt, whereas most other platforms are gradual. E.g., if you wrote a Qt (the toolkit) application in 1996, you could have slowly transitioned your application to Qt 5 version by version. In the meanwhile, you have gone from non-standardized C++ to C++98, to C++11. So, you would have an application with a modern language and toolkit, which was gradually developed over the last 23 years. The same for Windows applications.

For me, the truth is somewhere in the middle. Yes, there is more churn on Apple platforms. On the other hand, it also allows Apple and the ecosystem to move faster. It is amazing what they have been able to achieve with (just naming some random things): wide Touch ID support, Metal, or application sandboxing.



You could have done the same with Carbon to Cocoa: transition a window/view at a time. You can use Cocoa windows and views in Carbon.

Plus you can keep using your C++ core even if the UI is Cocoa. The same applies to Swift, you can write or rewrite parts of the app in Swift and keep part of it in C++/Rust/Objective-C or your preferred language.

The same happens in SwiftUI, you can mix it with NSView and UIViews.


AFAIK Carbon was a C++ API and Cocoa is Objective C(++). In which case the UI is a rewrite , not a transition.


You rewrite one screen at a time.


It's almost like the people complaining the loudest don't have a profitable software product that justifies regular ongoing maintenance or something.


Carbon is a C API.


Carbon continued to work for 13 years after it was officially deprecated. Waiting over a decade to get started on a transition doesn't mean that the transition was abrupt; it just means that you procrastinated until you got a hard deadline and so caused scheduling problems for yourself.




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

Search: