It's definitely a trade-off, but it's not all downside.
I'm actually really excited to see better interfaces for the platform libraries. I think this is a really big deal - not just for the health of the project, but also for Apple's OSes.
One of the reasons this is so exciting for me is because I remember Microsoft's move to try and deprecate the Win32 API with Windows Longhorn (which became Vista) in the early 2000s. The plan was to introduce a set of new platform libraries called "WinFX", written in .Net, including hundreds of new APIs. Win32 would be kept for compatibility but be frozen - all new features would only come to the new SDK. To be clear: there would be no new C APIs in the future - you would have to move to .Net. Which, as you can imagine, people were absolutely thrilled about.
Microsoft was full of confidence following XP, and they really tried to make the most advanced technology platform they could imagine. They wanted to basically rewrite the OS overnight. WinFX came with a new, vector-based graphics subsystem called Avalon which was built on DirectX, a new communications subsystem called Indigo and a radical new storage interface called WinFS which indexed files in a schema-driven relational database. Anyway, it turned out to be a bit too much, performance was rubbish, and people just didn't like being forced to use .Net - but it was an interesting attempt to break from C, the Win32 API, and all the cruft that had accumulated. "The idea is to significantly reduce the number of APIs and make the APIs more standardized. Today, there are over 76,000 Win32 APIs, and countless wrappers. With Longhorn, Microsoft hopes to reduce the API set to 8,000 to 10,000". After they hit reset, they chopped up various parts of WinFX in to .Net 3.0 and Win32 got to live on.
But Microsoft still knew they needed a modern platform SDK. They had another go with WinRT which originally used C++ with a bunch of extensions. Now it's called the Universal Windows Platform (UWP). These days the Windows platform SDK looks thoroughly modern with features like .Net generics, events and async/await
. Honestly, the SDK for Apple's platforms is pretty lacking by comparison. At the same time, Google is developing their Fuchsia OS and Flutter SDK, where Apps are primarily written in Dart.
So, as I see it, there has been a big push in the industry for years to replace legacy C interfaces with something more modern. We don't know what Apple's intentions are for Swift, but I assume it's part of their answer to Fuchsia and WinRT. I don't think they're going to all of this effort just to stop at some overlays for Objective-C. I think Swift was made to become part of Apple's OS, and that's a large part of why the project even exists.
But it's exciting, right? Is it just me who is excited by this?