Hacker News new | past | comments | ask | show | jobs | submit login
Swift 5.2 (swift.org)
155 points by andrewbarba 11 days ago | hide | past | web | favorite | 41 comments

Looks like a solid update on first glance. I nearly tore my hair out last month building a SwiftUI app. The error messages were terrible—I had never seen such poor error messages. I'm so glad they're addressing that.

Swift is one of my favorite languages. Until I hit a fucking error. Then I just want to be done with it.

The errors are so bad that it trains me to never write more than a few lines at a time without compiling/running it.

The runtime errors can be comically bad, bucking you into a screen of assembly for the simplest of mistakes.

Perhaps you have debug symbols disabled?

How do they compare to cpp template errors?

Less verbose, and usually (but not always) more understandable. I think it’s probably similar to what C++ errors will be with concepts.

No kidding. I really like swiftui, the declarative model is great and it’s so much less of a pain than React-native, but trying to decipher the error messages for it while I was learning swift was comically bad at times.

I'm curious about the major pains with React-native you experienced. Is it because of the toolchain for RN? or some specific scenario?

As a contributor to RN and someone who loves SwiftUI just as much: it’s mostly the toolchain. You have an unbelievably vertically integrated framework with SwiftUI.

Do you think SwiftUI is still too experimental to build out a production-ready app? I'm a RN dev leading the app development at our startup, but every time I check on SwiftUI I LOVE what I see. Sadly it looks like the final results are mostly tech demos rather than fully integrated apps.

Thinking maybe we have to wait for a behemoth's adoption (like AirBnB & React Native) to take the ecosystem to the next level.

I've shipped a small app in it and am collaborating on another currently. If you're looking to use it on your team I'd wait for this years online WWDC, see whats announced and evaluate from there.

I would say it just depends, which I know isn't satisfying as an answer. I shipped an app named Eggy which is all SwiftUI- but it isn't super complex exactly. There are still plenty of simple problems that are hard to get around. But you can definitely use it to replace pieces of an app.

I also shipped an app for a client called Droplii. I definitely believe you can use it for production level apps. Productivity is through the roof. There are just a few small quirks, but I believe the pros out weigh the cons here.

Sibling comment here mostly covered it, toolchain is kind of all over the place and build times are way faster with swiftui on my 2015 MacBook.

Also with Combine and associated bits there is a lot less boilerplate around state that doesn’t have to be written.

Also the disk space for the js ecosystem is beyond crazy and really bothers me.

Compared to native development the toolchain and dependencies are out of control and I'm unsure how it can really be improved, Expo does a decent job of abstracting some of it but you lose so much from the managed workflow that it makes me question the purpose of building a native app at all. I think the real threat that PWAs bring is to frameworks like React Native and Cordova rather than fully native apps which will likely always have specific use cases.

I've learned you wait a couple of years before you start trying to use new major apple developer tech. Same thing with swift, it was better to wait until swift 3 or 4 before adopting it.

Yeah, also for the DSL's you build yourself with the new 5.1 features, really bad error messages. If that would get better in 5.2, it would help a lot.

Has anyone had good luck getting Swift running on Linux? Many versions ago, I had it working under Ubuntu, and it seemed really nice. I particularly liked having a REPL for this style of language.

However since then, I've had very limited success under Ubuntu, CentOS, and Arch. Different failures on each. Every few releases or so I give it a go, but something always fails and I go back to working on some other pet project.

Are the prebuilt toolchains (https://swift.org/download/) giving you trouble?

The Ubuntu ones are well known for having linker issues on LTS distributions.

I'm currently using Arch, so I don't think the prebuilt Ubuntu ones are going to work.

Maybe just use the Docker builds?

I know I'm out of fashion :-), but I don't really use containers for anything. I think Swift looks really nice, but when I check out other languages (such as Go, Rust, or any of the gazillion others), I don't have to jump through any hoops other than using the system package manager or something like "./configure; make install". I wish Swift was in this camp.

> I don't have to jump through any hoops other than using the system package manager

Wouldn't that be something the package manager should include?

If you're using Arch, I'm pretty sure AUR have you covered... [0]

[0] https://aur.archlinux.org/packages/swift/

The last time I tried, it didn't go well. When the AUR package for swift or swift-bin goes to 5.2, I'll probably try again.

> If you're using Arch, I'm pretty sure AUR have you covered...

Have you gotten it working with Arch?

There are user comments on the page you linked indicating other people have had problems too.

A great update to a safe and ergonomic language. The best is still yet to come with Swift on Windows and Android, SPM Resources, and of course Async/Await.

Is Swift on Windows on the roadmap?

Ted Kremenek listed in his "On the road to Swift 6" post on the forums "Expand the number of platforms where Swift is available and supported" as the first item. (https://forums.swift.org/t/on-the-road-to-swift-6/32862)

Saleem Abdulrasool, who has been working on Swift on Windows, was also recently added to the core team.

So I don't know if it's actually on the roadmap, if one exists, but official support doesn't seem impossible.

Not impossible indeed. Swift 5.3 will officially support Windows: https://swift.org/blog/5-3-release-process/

Yes! Swift 5.3 is planned to introduce official Windows support, led by Saleem Abdulrasool who has done a bunch of work on it.


How about swift Android?

All I want is official Swift support for an http server, and a web frontend framework using SwiftUI.

AFAIK SwiftUI is derived from or inspired by The Elm Architecture.

In any case for me, Elm has been extremely enjoyable, as a web frontend framework and language combo.

I am a huge Elm fan, and I have used it in many contexts. It is fair to say that in the last 10 years React has most influenced the way we write our UI and Elm has most influenced the way we manage our state on the frontend.

An alternative would be Dart/Flutter, though I’ve heard web UI perf is awful atm.

So import Glibc is still a thing?

Can you expand on this?

Swift still doesn't have a mature standard library implementation that works across all platforms.

So you have to do OS specific imports directly, for basic stuff like calling a random number generator or handling IO.

It is even done so on the introduction pages, https://swift.org/getting-started/

Foundation outside Apple platforms is pretty much WIP.

Interesting, although, at least they have a cross-platform random now (Int.random, Float.random, ...).

I see some huge changes there, including the error messages!

looking forward to the improved build times!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact