HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
swiftlang
swift
Swift2015–2026
swiftlang / swift

swift

The Swift Programming Language

203Distinct people
269Mentions
3Explicit recommenders
70.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Swift Programming Language

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

As an iOS engineer, I'm a bit biased, but I'd still say it's currently not practical to learn it if you're not doing Apple development. That said, I love the language, and it's…

austinl used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year269 dated mentions

Observed mentions: 2015-12-03 15:21:41 UTC to 2026-03-26 19:15:06 UTC.

0102030402015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 35 mentions; 11 submissions, 24 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 41 mentions; 10 submissions, 31 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 40 mentions; 7 submissions, 33 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 12 mentions; 2 submissions, 10 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 25 mentions; 8 submissions, 17 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 27 mentions; 6 submissions, 21 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 21 mentions; 8 submissions, 13 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 23 mentions; 3 submissions, 20 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 19 mentions; 1 submissions, 18 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC351124
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC411031
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC40733
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC12210
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC25817
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC27621
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC21813
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC23320
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC19118
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC11110
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC12111
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC303

What Hacker News says

269 sources
Beyond the marketing view... here are the (incomplete) changes: https://github.com/swiftlang/swift/blob/main/CHANGELOG.md Here are the evolution proposals that landed in 6.3: https://www.swift.org/swift-evolution/#?search=6.3 Overall 6.3 ended up mostly about integration: stdlib, c/c++ (often driven by swift-java interop needs), and builds. SPM (swift package manager) is slowly reaching out to take over xcode build features (e.g., resources most recently), and they have been inching and hacking their way to a new swift-build engine (now experimental) and "prebuilt" modules for the compiler/IDE macro support. Things Go Wrong all the time when trying to replace parts while driving, and there's very little visibility or control over the interactions between SPM and Xcode. Conversely to integrations, endogenous language progress seems
Read the rest
relatively quiet because there's a lot of behind-the-scenes work extending the initial blush of lifetime controls to iterators, stdlib types, etc. (never mind parameter packs). They're in year 4+ of building out the function-coloring of concurrency and isolation domains (6.2 had an "easy" mode that caused lots of problems), so adding year 2+ dataflow coloring of lifetimes is doubly complicating. Naturally, diverse support for exciting new features results in quite a spread in the third-party library ecosystem of support for various language features. And now with AI entrepreneurs rewriting and porting any project that can score hits and kudos, the usual open-source authorities are losing their steam. Finally, there's the baseline platform complexity of multiple OS and devices, physical and simulator debugging support, cloud CI... So: that makes four dimensions of complexity. As a Swift developer you'd have to be very careful to stay on a working path as things shift underneath you. All for the love of it?
In Swift 6.3
Toady I used GLM 4.7 to port a C++ project of mine to Rust, so I could read and toy with it, to get into the language: https://codeberg.org/RickStanley/agatetepe-rs. Really interesting results, not sure how well it is written but works. I was quite found of Rust syntax; it certainly is not as convoluted as C++ (in my opinion). Then I read this article. Since I was already eye-balling Swift for some time, I decided to give it a try and port to it, using Rust implementation as reference, and this time, without much of A. I. assistance, if I could help it. I'm using an qcow2 Debian trixie arm image in UTM as playground. I found out that there is no packaging for Debian at the time of this writing: https://github.com/swiftlang/swift/issues/60690. No problem! They have a script for installing: https://www.swift.org/install/linux/ curl -O h
Read the rest
ttps://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \ tar zxf swiftly-$(uname -m).tar.gz && \ ./swiftly init --quiet-shell-followup && \ . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \ hash -r But, god damn, the size is huge, Unsupported Linux platform Debian GNU/Linux 13 (trixie) is not an officially supported platform, but the toolchains for another platform may still work on it. Please select the platform to use for toolchain downloads: 0) Cancel 1) Ubuntu 24.04 2) Ubuntu 22.04 3) Ubuntu 20.04 4) Ubuntu 18.04 5) Fedora Linux 39 6) RHEL 9 7) Amazon Linux 2 8) Debian GNU/Linux 12 Pick one of the available selections [0-8] : 8 Installing swiftly in /home/debby/.local/share/swiftly/bin/swiftly... Creating shell environment file for the user... Updating profile... Fetching the latest stable Swift release... Installing Swift 6.2.3 Downloading Swift 6.2.3 100% [========================================================] Downloaded 947.6 MiB of 947.6 MiB Verifying toolchain signature... Extracting toolchain... The file `/home/debby/ent/agateteper/.swift-version` has been set to `Swift 6.2.3` The global default toolchain has been set to `Swift 6.2.3` Swift 6.2.3 is installed successfully! There are some dependencies that should be installed before using this toolchain. You can run the following script as the system administrator (e.g. root) to prepare your system: apt-get -y install libicu-dev libcurl4-openssl-dev libedit-dev libsqlite3-dev libncurses-dev libpython3-dev libxml2-dev pkg-config uuid-dev libstdc++-12-dev 947.6 MiB ! I wonder why is that...
In Swift is a more convenient Rust (2023)
The `Either a b` type in Haskell is equivalent to the `Result<T, Error>` type in other languages. The only difference is in the naming: "Result" semantically implies error handling, while "Either" implies a more general usage as the alternative between two options. Either and Result are the binary sum type (the disjoint union between two types). In Haskell, Either is defined as data Either a b = Left a | Right b Note that in Haskell, type parameters are lowercase. Source code: https://gitlab.haskell.org/ghc/ghc/-/blob/3f5e8d80b32063d265... Contrast the definition of the Result type in Swift: public enum Result<Success: ~Copyable & ~Escapable, Failure: Error> { /// A success, storing a `Success` value. case success(Success) /// A failure, storing a `Failure` value. case failure(Failure) } Source code:
Read the rest
https://github.com/swiftlang/swift/blob/256ff127c93d7e59a75f... I'm not sure what the parent commenter meant when they claimed that "Result <e, t> of yours is a Result (e, t) in Haskell." In Haskell, `(e, t)` would be the pair type (the binary product type).
In Kotlin's rich errors: Native, typed errors without exceptions
busymom0·Nov 18, 2025Submission

Show HN: I am self-hosting a time-sorted list of top STEM, Arts and Design posts

I built Lime Reader, a minimal site which displays time-sorted top posts from Hacker News, Tildes, Lobsters, Slashdot, Bear, and some science, tech & programming related subreddits. You can read more about the site by clicking the slogan at the top of my site "your daily compass for the STEAMD web": https://limereader.com/about Previously, I have always used Rust or NodeJS for my backend and Postgres for database. This time, I used Swift for my backend to build a Website for the first time, used SQLite for Database, used only a single third party dependency: Vapor for web server in the Swift app, and am self-hosting it all on an old Mac mini. I really hate huge bloated sites and also hate adding third-party frameworks unless absolutely needed. Therefore, I have engineered Lime Reader to be as small in size as possible so that it loads ins
Read the rest
tantly. Both PageSpeed Insights and Pingdom rate my site's performance as Excellent. It's server side rendered, so it works even with JavaScript disabled (though enabling it gives you a few extra features like quick access to archive.org for each link). Kind of works even with CSS disabled. The site doesn't have any ads (I hate them and have installed ad-blockers everywhere!), no trackers, or analytics. CloudFlare automatically enables Real User Monitoring (RUM) on sites. The very first thing I did was disable this thing. I am self-hosting the site on an old Mac mini. It's a 2020 Intel model which has a 2018 chip (Intel's 3 GHz 6-core Core i5) and 32gb ram. Qwen model takes about 5.5GB of ram usage and does my headline classification in about 2 seconds each. The Swift app talks to a locally running Qwen3 8b LLM for classifying whether a headline is political or not. This is done over a REST API by Ollama. This seems to work pretty well and far better than Apple's Foundation Models. Originally, I tried using Apple's Foundation Models for this classification. When it worked, it worked decently well. However, many headlines (and even pretty bland headlines) would somehow trigger its guardrails. I asked Stack Overflow for help on this but as usual, they closed the question for lack of details: https://stackoverflow.com/questions/79785822/how-to-disable-... For example, this headline: > SEC approves Texas Stock Exchange, first new US integrated exchange in decades Would hits the Apple's guardrails and throw an error saying `refusal: May contain sensitive content`. Apple does provide a "permissive guardrail mode" as per: https://developer.apple.com/documentation/foundationmodels/i... This does end up allowing some texts to work. However, it still failed for some other ones. That's when I gave up on using Apple's foundation models and switched to the Qwen3 8b model which had no such issues. It's pretty sad how the Foundation Models have so much potential but Apple has severely neutered them. I originally tried the apple foundation models on my newer mac with m4 chip and once I had the issue with their guardrails, I decided to just switch to Qwen model which runs on Intel and used my old Mac mini for it. An issue I ran into was that my Swift app was intermittently crashing. Root cause were two issues: 1. First one had to do with accessing the SQLite database from multiple threads. Apparently, for multi-threading use, SQLite needed to be initialized with a `SQLITE_OPEN_FULLMUTEX` flag. 2. Second one was a "Bad file descriptor" error from the macOS operating system itself. Had to do with a possible bug in Process.run() which would cause it to crash after some time: https://github.com/swiftlang/swift/issues/57827 Was able to fix it using the above workaround/solution of "fileHandleForReading.close()". Lets see how long the site stays alive now without crashing :) Feel free to ask questions.
4 points · Open discussion
Swift user here: I have to say one of the best features of Swift is the exception handling. Which is to say, exceptions in Swift are not C++/Java/Obj-C style exceptions, but instead are a way to return an error result from a function. And Swift enforces that the error is handled. That is, a `throw` statement in Swift simply returns an `Error` value to the caller via a special return path instead of the normal result. More explicitly, a Swift function declared as: func f() throws -> T { } Could be read as func f() -> (T|any Error) { } More here: https://github.com/swiftlang/swift/blob/main/docs/ErrorHandl...
In Problems with C++ exceptions
I had a very similar thought (which I removed from the final draft) Yesterday without searching this prompt was able to speculate that my query about static vars on Swift actors was a sign of an underlying compiler bug. Turns out, it WAS a compiler bug and fixed back in February. I have never found a compiler bug and I'm a Swift noob, but I was pretty impressed. (It's what led me to write this post) https://github.com/swiftlang/swift/issues/78435
In Sprinkling self-doubt on ChatGPT
> I think Swift maybe does something more clever with witness tables, but I don't recally exactly how it works. Pestov actually wrote a long explanation of what it is that Swift does there[1,2]. And I’m almost sure you’ve already seen it, but it’s been on my reading list forever and I’m hoping that maybe if I can’t get myself to read it, than somebody else will see this comment, get interested and do it. [1] http://download.swift.org/docs/assets/generics.pdf [2] https://github.com/apple/swift/tree/main/docs/Generics
In (On | No) Syntactic Support for Error Handling

Showing the 15 most recent of 269 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.