4 ms·
This has been my experience for a long time. Swift is nice but why would I waste my time working on a language that is too tied to the Apple platform even if it
by JTyQZSnP3cQGa8B 2y ago
This has been my experience for a long time. Swift is nice but why would I waste my time working on a language that is too tied to the Apple platform even if it's open-source when we have more universal scripting languages like Python, or languages like Kotlin that are compiled but have more support (because I trust JetBrains way more than Apple at the moment), or languages that are most strict like Rust but have more momentum and safety?
They painted themselves in a corner. Apple being the best computing platform while trying to please everyone can never be a serious proposition. Either they are the best and everyone uses macOS, or we have to be so careful that any alternative is more interesting that what they propose.
- thih9 2y ago> why would I waste my time working on a language that is too tied to the Apple platform This might work the other way round: starting from people familiar with macos or ios development who want to write for other platforms. Then the question becomes: why would a developer learn a different open source language when they can use what they already know. And sure, depending on the context they might still go with Python/Kotlin/Rust/etc.
- hu3 2y ago> people familiar with macos or ios development who want to write for other platforms. This is a rather small userbase when it comes to enterprise. Especially because Swift will never be as versatile as Python or as efficient as Rust. And then there's also Go, C# and Kotlin with much better tooling.
- privacyis1mp 2y agoXcode gives me such a hard time that I started considering writing in Kotlin for macOS, just to have a normal IDE. We used to have AppCode (from JetBrains) and it was great. I wonder why Apple didn't support JetBrains, after all, it would have been to Apple's benefit.
- ChrisMarshallNY 2y agoPersonally, I never liked AppCode. It was too much like Eclipse (which I also never liked). Me not liking something, does not make it bad. It’s just not my choice. I’m glad it existed, because it probably prompted Apple to do better with Xcode. Lots of people that I respect, used it. These days, Xcode is Big Bug Ranch. When “Delete the DerivedData folder” is S. O. P. for developers, and Apple tweaked Xcode to reduce its impact on the project, you know that they have waved a white flag to bugs.
- joseda-hg 2y agoThere's even history of it working before, with Google / Kotlin
- pjmlp 2y agoSince Apple has moved themselves out of the server market, folks need to at least be able to target BSD/Linux server workloads, and naturally using Swift as well instead of another language is a desired option.
- makeitdouble 2y agoThat crowd has the disadvantage of not being primarily interested in the other platforms, so they won't be much invested in optimizing or better matching the target capabilities. That's the same dynamic as web devs writing React Native apps: you won't expect them to contribute extensions that manipulate local apfs metadata for instance. So while it's nice to have them use the tools, you still need people who primarily care for non Apple platform and embrance swift for their purpose to have it expand.
- pjmlp 2y agoThat crowd needs other platforms when using servers, as Apple has moved itself out of the server market, so at very least BSD/Linux workloads.
- qaq 2y agoHmm Snowflake and Apple are rewriting FoundationDB in Swift. Swift has pretty good dev. ergonomics and good interop with C/C++ so it might find it's niche outside of Apple.
- cosmic_cheese 2y agoCan only speak for myself, but I’d love to be able to use Swift elsewhere so I don’t need to drag around a JVM and all the things that come with it (Kotlin) or have to wrestle with Rust’s sematics and disinclination towards old style imperative desktop UI development. Swift isn't perfect of course, but it’s the closest I’ve come to a language feeling “comfy”.
- desiderantes 2y agoSo you haven't heard of Kotlin Multiplatform.
- privacyis1mp 2y agoWhat are your experiences of using Kotlin for modern macOS/iOS development? How's the support looking when Apple releases new XCode?
- aalimov_ 2y agoKotlin Multiplatform (KMP) is neat for android devs that want to be able to code for both platforms using a toolset/language they are familiar with, but for iOS development KMP is a hassle (personal opinion). I’d rather just write the code twice. Also, I actually like Xcode. As for Android Studio, up until the more recent versions the GUI felt really clunky to me (which made working in it a bit of a slog).
- cosmic_cheese 2y agoHave heard of it, haven’t investigated it deeply. Looks to still have some of the less-great points of the Java ecosystem on the build side of things (gradle) which is a detractor for me. Kotlin’s syntax is also weird/quirky in some ways.
- bartekpacia 2y ago> Kotlin’s syntax is also weird/quirky in some ways. I'm curious to learn what you mean by this! :)
- wahnfrieden 2y agoSee https://skip.tools https://skip.tools for a new entrant
- kelnos 2y ago> Either they are the best and everyone uses macOS "Best" obviously means different things to different people, but at least by market share, macOS has never been the best. Modern Apple doesn't seem to care about market share outside of the iPhone (and even then, they are still more interested in the iPhone being a premium product than winning on market share). I used to like macOS, 15-20 years ago, but now it's just power-user-hostile and considerably more locked down and buggy. That's not the way to be "best", by any metric I can think of.
- philistine 2y ago> but now it's just power-user-hostile and considerably more locked down and buggy. Sure, macOS has continued to secure more and more elements of the OS. They have taken a different approach than Windows and Linux, which both keep large swaths of the OS woefully insecure from third-party apps for legacy reasons. But for each and every new lock, there is a key. An incredibly secure OS that gives you the power to control what third-party apps access on your computer is the best power-user feature.
- YmiYugy 2y agoMac OS does some amazing things for security. An immutable root OS, sandboxing, very user friendly disk encryption. But there are certainly decisions that hold back the platform. Their business decisions have driven most developers away from the App Store. There is a notarization process, but it imposes a burden that many small open source projects can not bear. They don't have an easy way to run untrusted software in a containerized way (compare Fedora toolbox). Installing things globally via homebrew or a random install script is still the way to go.
- philistine 2y ago> Their business decisions have driven most developers away from the App Store. > They don't have an easy way to run untrusted software in a containerized way (compare Fedora toolbox). The App Store is the way to run untrusted apps in a containerized way.
- GeekyBear 2y ago> languages that are most strict like Rust but have more momentum and safety? Like Rust, Swift is a compiled language that offers memory safety by default. The creator of Clang and LLVM also created Swift, and interoperability with C was an explicit design goal. So Swift offers the memory safety and data race safety of Rust, in a compiled language, without giving up tight integration with C. (To be fair, better C integration is something the Rust community is looking to add.)
- myko 2y agofwiw Swift still doesn't support mixed-language targets so the interop is somewhat less useful to me than I'd like: https://forums.swift.org/t/se-0403-package-manager-mixed-language-target-support/66202 https://forums.swift.org/t/se-0403-package-manager-mixed-lan...
- marxisttemp 2y agoThe creator of Rust also briefly worked on Swift
- pmarreck 2y agoPython is not compiled, it is interpreted, and it has many warts. Kotlin depends on the JVM and is also not compiled. Rust? Now you're talking. Except that it has warts, too.
- zoot64 2y agoKotlin is compiled in the sense that it compiles down to bytecode read by the JVM. It's not machine code level but it is still compiled to a certain degree. And Kotlin can compile natively for multiple targets including macOS and iOS without need for the JVM. There's also WASM support too.
- pmarreck 2y agoDid not know about non-JVM compilation. Does it include the JVM as part of the binary then? Links?
- DidYaWipe 2y agoThe Python ecosystem is a sad mess.