3 ms·
While the article makes some good points, it conflates the variety of distinct components that comprise a truly sherlock-proof product/application/codebase. Be
by Gorbzel 7y ago
While the article makes some good points, it conflates the variety of distinct components that comprise a truly sherlock-proof product/application/codebase.
Better to build full native but rely on cross-platform architecture, design patterns, common backend/infrastructure, etc than settle for hypebeast cross-platform abstraction magic with dependencies on overburdened and leaky by definition integrations back to native SDK.
The former yields all the proven benefits of native apps and strong platform vendor support with a contingency plan if said ecosystem launches a competing product. The latter leads to a world of hurt.
Specifically, the article misses the mark wrt Swift. Swift is open source and truly cross-platform. SwiftNIO, Tensorflow, and the server-side Swift projects are a great example of how far one can go assuming a willingness to invest in the language completely devoid of any Apple API involvement.
It truly seems like the next major breakthrough would be if SwiftUI could (relatively easily) be implemented for desktop Windows or *nix. Sure, the article notes people tried the same thing with GNUStep or WinObjC, but you were always truly tied to or ended up missing Cocoa, Foundation, and the Obj-C runtime. Conversely & ironically, swift-evolution, spm, and many of the most "Swifty" parts of the Swift ecosystem come to the other toolchains long before they make it into an annual Xcode release.
- musicale 7y agoSelling third-party OS extensions is a risky bet over time: Apple tends to remove and/or lock down OS extension mechanisms over time for security reasons, and also aggressively revises and deprecates many of its APIs every year; and if an OS extension fixes an obvious omission or is simply a great idea that Apple hasn't implemented yet, there's always the chance that Apple will add the feature to the baseline OS itself.
- musicale 7y agoI agree that having the core application logic be cross-platform but customizing the app with first-class native support for each platform usually yields a superior user experience, particularly for desktop and productivity applications; even other software such as utilities or development tools can become more pleasant and useful if they are delivered with a first-class platform-native interface as well as well-integrated native functionality. Even things like games can work better when they take advantage of platform-native APIs (e.g. directx on windows, metal on iOS/macOS), so either using a game engine that is well specialized for multiple platforms or using the underlying APIs directly is likely to yield better performance and playability.
- pjmlp 7y agoCurrently even Objective-C is more cross-platform than Swift. Until Swift gets a Windows download link on http://swift.org http://swift.org, I am only considering it on the context of Apple platforms.