Hacker News new | past | comments | ask | show | jobs | submit login

Superficially it has a lot in common with JavaScript (really, TypeScript), but like Rust it compiles to a native binary and doesn't need a runtime environment (C# and Java do). Also like Rust, it frees the user from manually managing memory, despite lacking a garbage collector. This combination of features makes both languages very exciting. I'm not aware of any others right now that can claim the same.

I also haven't heard of it being outperformed by Java and C#; do you have a source for that claim?

In microbenchmarks like https://benchmarksgame-team.pages.debian.net/benchmarksgame/... / https://benchmarksgame-team.pages.debian.net/benchmarksgame/... , Swift is mostly equivalent to Java with a few outliers both for/against Swift. Rust outperforms Swift fairly consistently and sometimes quite considerably. Of course, real apps may be different.

The book iOS and macOS Performance Tuning ( https://www.amazon.com/iOS-macOS-Performance-Tuning-Objectiv... ) has pretty damning benchmarks against Swift versus Objective-C even without using any tricky optimizations (not what you originally asked but something to consider). Of course the whole book (written by a former Apple engineer IIRC) is pretty much full of performance gotchas across many Apple frameworks/APIs, but the chapter on Swift was pretty harsh and basically said Swift fails to live up to its name versus Objective-C (at least at the time the book was written).

I think most people think that Swift performs like Rust/C++/C since it doesn't have a garbage collector and imagine ARC is providing relatively free memory management, but it seems Swift performs closer to languages with a garbage collector due to the various design constraints on the language (interoperability with Objective-C, ARC isn't free, and maybe without the explicit lifetime/ownership declarations in the code like Rust, ARC can't be optimized as well).

That's interesting and surprising. I definitely had the perception you described toward the bottom.

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