3 ms·
Swift itself is a great piece of tech. But it is doomed to fail as a general widely adopted language unless apple makes few critical moves including open sourc
by aristofun 2y ago
Swift itself is a great piece of tech.
But it is doomed to fail as a general widely adopted language unless apple makes few critical moves including open sourcing everything including XCode, providing support for 3d party IDE developers (because xcode is terrible), creating decent package manager, adopting testing as first class citizen etc.
There is just no economical sense for anyone to invest in swift until all the above (and some more) is done.
- easeout 2y agoFor what it's worth, they ship a solid VS Code extension and LSP. Their swift-testing package is the new open source and cross-platform successor to XCTest. The same can be said of swift-foundation as compared to Foundation. The path they've chosen is not to open source Xcode, but to move the things Swift needs on all platforms to the Swift language project and common implementations. Personally I think the main problem with the language, besides Apple's earned poor reputation in FOSS circles, is the compile times. In the source-stable era of the language I'm not sure how they can really be fixed to the degree I'd be happy with.
- fastball 2y agoAre there any LLVM langs that have fast compile times? I think that just kinda comes with the territory of having that IR step + all the optimizations that happen at compile time to help runtime performance.
- easeout 2y agoThat's a good point. I had in mind that there's some regret about the combination of type inference with type-based overloads, due to the search expense it adds to what ought to be straightforward parsing of long expressions.
- fastball 2y agoYeah, I think there are definitely parts of the language design / language features that are going to contribute, but when you need to parse to IR and then compile that to machine code, it seems any features you add that are nice for the developer are going to doubly hurt compile times. You see the same with ARC in swift (or the borrow checker in Rust).
- Rohansi 2y agoAFAIK those language features are all handled in the frontend before outputting LLVM IR. LLVM optimization, code generation, linking, etc. should all be the same regardless of the source language.
- easeout 2y agoI don't know about that example—when ARC was added to Objective-C back in the day, I don't remember clang feeling any slower as a result.
- saagarjha 2y agoParsing IR and lowering it is not the reason why compiling Swift is slow.
- fastball 2y agoYour wishlist seems midly contradictory. Why does Apple need to open-source XCode if they also provide support for 3rd party IDEs (which they already do, btw)? Also what do you not like about cocoapods for package management? Plenty of people make an incredible amount of money building apps in Swift, so your last sentence is just wrong.
- aristofun 2y agoDecent support for 3d party IDE would mean open sourcing all critical xcode parts that currently leave developers no choice. Cocoapods is too old and bad for modern era package management. It’s not made for swift also.
- deleted 2y ago[deleted]
- akmarinov 2y agoSwift Package Manager exists Cocoapods has been end of life’d
- isodev 2y agoAnd make it possible to run binaries on macOS/iOS etc without a mandatory subscription and US export controls. Without notarisation, anything made with Swift is practically unusable on Apple OSs
- frizlab 2y agoIt’s written Xcode.