3 ms·
In my case, the mistrust in Apple comes from the fact that in the almost two years I've been working on server side Swift I've seen the Swift core team constant
by Tainnor 7y ago
In my case, the mistrust in Apple comes from the fact that in the almost two years I've been working on server side Swift I've seen the Swift core team constantly prioritising things that are mostly relevant for app developers (like SwiftUI and the associated function builders changes, or ABI stability), while not caring at all about things that are relevant for server side developers such as:
- support for platforms beyond Ubuntu
- fixing the myriad weird bugs on Linux (here's two particularly bad examples: https://bugs.swift.org/browse/SR-10613 https://bugs.swift.org/browse/SR-10613, https://bugs.swift.org/browse/SR-10344 https://bugs.swift.org/browse/SR-10344)
- coming up with an error handling solution for when your app crashes on the server that is better than "just have your load balancer restart the instance"
- improving compile times for large applications
- improving modularisation concerns (e.g. submodules)
- creating an alternative to Foundation (recently, foundation on Linux was split into different modules, which makes the code that compiles fine on a mac break on Linux until you add additional imports ... go figure)
- skohan 7y ago> improving compile times for large applications Have you tried breaking up your project into more, smaller modules? Incremental builds with small modules tend to be very quick. I agree with you though regarding the priorities of the core team. I tried to reach out to several people a few months ago to get involved in contributing to improve the Linux situation, and nobody answered my messages.
- Tainnor 7y agoHey yes, we have a number of modules by now. Unfortunately, the reality seems to be that while splitting up reduces incremental compile time, it increases the compile time of full builds, which is especially annoying on CI (but also basically every time we update some very core module). Also, Swift is just really not designed well for very modular apps. There are no qualified imports, there are naming conflicts, inlining stops working, etc.