4 ms·
I don't use swift in a backend context, but from the iOS side: * The debugger & indexer fails often. * Build times are slow and source kit (the 'IDE features'
by mahyarm 10y ago
I don't use swift in a backend context, but from the iOS side:
* The debugger & indexer fails often.
* Build times are slow and source kit (the 'IDE features' server/library) has performance/stability problems.
* Scaling your CI is pretty bad since your stuck with apple hardware & their OS. There isn't an 'AWS' for apple hardware. MacStadium is so-so.
* You also don't have full control over your build chain, and decisions made by apple xcode can screw you over in when they change something in an update.
* Migrating your code from one version to the next can be a multi-week event.
I wouldn't use swift until it matures as a language in a few years. On backend you rarely need something that is not garbage collected. I would stick with python, golang & java. Maybe use rust or C++ if you need it.
- valuearb 10y agoI've been developing on iOS for 7 years and Swift for 3. (Half of my 8 store APIs are in Swift) While I agree with most of your criticisms I'll say it's never taken me more than an hour to update any code base when Swift versions change, it's a mostly automatic process. Also I'd say anyone doing iOS development in Objective C instead Swift nowadays is doing themselves a grave mis-service. It's much easier and faster to build higher quality apps in Swift.
- mahyarm 10y agoApple's target is the 1-5 person developer team with maybe 50kloc of code & 1 mac mini acting as a CI box. Xcode scales ok in these cases. Backend development tends to feature a lot more developers with a lot more code. Swift starts getting really painful when you hit those numbers. Go look at presentations done by larger swift codebases like linked-in, uber, lyft & airbnb to see where it starts happening.
- SiVal 10y agoOf course, all dev gets more painful with more devs and larger code, so I assume you're saying that it increases more steeply with Swift than with...what? Java maybe? Or something else that the presentations you mention were comparing it to?
- mahyarm 10y agoObjective-C, Objective-C++, Java, Javascript/Node, Python, Ruby, Golang, C++, C, C#. Build times increase significantly, the indexer takes 15-30m, sourcekit crashes, xcode UX freezes for 5s repeatedly, the debugger cannot print values when you hit a break point. On and on and on.