HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023

Godot Engine6 HN recommenders · recommended in 7 months, 2023-2026
YouTube
27K views · 3 years ago · talk · evergreen

Miguel de Icaza's GodotCon 2023 talk on Swift bindings for Godot. He argues that garbage-collector pauses in C# are a persistent problem and that Swift's reference counting avoids them.

Frequently recommended for an experienced game-engine builder's view on why GC pauses are inevitable and why Swift's approach is appealing.

Game programming & enginesCompilers, interpreters & program analysisPython, Ruby & scripting languages#swift#godot#garbagecollection#c##referencecounting#gameengines

12 comments from Hacker News

@KolmogorovComp2026 · in “Watching Go's new garbage collector move through the heap”

Ah it's from 2023, Miguel de Icaza : Swift Godot: Fixing the Multi-million dollar mistake: ▶ this video Highly recommend.

RecommendsView on HN
@jlundberg2026 · in “Xogot: Godot for iPad and iPhone”

Miguels work on Swift for Godot is really inspiring. Highly recommend this video for anyone looking for more context: ▶ this video

Strongly recommendsView on HN
@cardanome2026 · in “D Programming Language”

> The fact that C# is becoming the GC language in game dev is proving my point. That is just the Unity effect. Godot adopted C# because they get paid to do so by Microsoft. C# allows for far lees control over the garbage collection compared to D. The decision to use C# is partly responsible for the bad reputation of Unity games as it causes a lot of stutters when people are not very careful about how to manage the memory. The creator of the Mono runtime actually calls using C# his Multi-million dollar mistake and instead works on swift bindings for Godot: ▶ this video

CitesView on HN
@cardanome2026 · in “Godot 4.6 Release: It's all about your flow”

You can use C#. It is well supported except for the (currently) missing web target and Microsoft is funding C# support so it will not get abandoned. You can also use other garbage collected languages. I once tried the Lua bindings and they worked fine. The problem with C# is that its garbadge collection is not really suited for game dev. The creator of the Mono runtime actually calls using C# his Multi-million dollar mistake and instead works on swift bindings for Godot: ▶ this video But if you really love C# nothing is stopping you. I prefer GDScript.

CitesView on HN
@Eric_WVGG2026 · in “Godot 4.6 Release: It's all about your flow”

Miguel de Icaza of Mono fame has a whole video on how C# was a "multi billion dollar mistake," and is working on a Swift Godot package. ▶ this video link (I've had some fun dabbling with Swift Godot but all of the documentation seems to be a bit out of date)

CitesView on HN
@perennialmind2025 · in “.NET 10 Preview 6 brings JIT improvements, one-shot tool execution”

Dotnet's GC has a real latency problem. Miguel de Icaza gave a nice talk on why noticeable pauses are inevitable in a stop-the-world tracing GC, proposing Swift's reference-counting GC as the viable alternative [1]. Still, there are recent developments (Satori GC) with the promise to make the worst case far more palatable (e.g. 250ms -> 5ms) [2]. [1] ▶ this video [2] link

RecommendsView on HN
@willtemperley2025 · in “Migrating away from Rust”

Java is incredibly productive - it's fast and has the best tooling out there IMO. Unfortunately it's not a good gaming language. GC pauses aren't really acceptable (which C# also suffers from) and GPU support is limited. Miguel de Icaza probably has more experience than anyone building game engines on GC platforms and is very vocally moving toward reference counted languages [1] [1] ▶ this video

CitesView on HN
@syndeo2024 · in “Swift 6”

Nope; no having to pause execution and clean up. Miguel de Icaza (the creator of Mono) explicitly mentions this as one of Swift's key strengths over GC languages like C# during a talk about Swift at GodotCon 2023: ▶ this video

CitesView on HN
@rescripting2024 · in “Swift 6”

Something like this? link > SwiftGodot can be used to either build an extension that can be added to an existing Godot project, where your code is providing services to the game engine, or it can be used as an API with SwiftGodotKit which embeds Godot as an application that is driven directly from Swift. Miguel de Icaza gave a great talk on Swift + Godot (among other things) ▶ this video

RecommendsView on HN
@jlundberg2024 · in “Embedded Swift on the Raspberry Pi Pico”

Looking forward to trying this out! Another place Swift seem to be getting traction in is godot. Miguel De Icaza’s talk on the topic is highly recommended: ▶ this video

Strongly recommendsView on HN
@Decabytes2024 · in “Apple hiring compiler developers for improving Swift / C++ interoperability”

Miguel de Icaza’s video^1 Swift Godot: Fixing the Multi-million dollar mistake got me interested in Swift. It starts around 12:30 1. ▶ this video

RecommendsView on HN
@zengid2023 · in “Murder is a pixel art ECS game engine in C#”

Yes and here is a really great talk from Miguel de Icaza about some of the history of adding C# to game engines, and why he's excited about using Swift in Godot because he claims that Swift's reference counting avoids the issues of GC pauses. ▶ this video

RecommendsView on HN
GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson22:51

GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson

Gopher Academy
22K views • 11 years ago
CppCon 2016: Herb Sutter “Leak-Freedom in C++... By Default.”1:39:25

CppCon 2016: Herb Sutter “Leak-Freedom in C++... By Default.”

CppCon
149K views • 10 years ago
RustConf 2020 - Closing Keynote by Siân Griffin39:03

RustConf 2020 - Closing Keynote by Siân Griffin

Rust Programming Language
10K views • 6 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
Rant: Entity systems and the Rust borrow checker ... or something.1:01:51

Rant: Entity systems and the Rust borrow checker ... or something.

Jonathan Blow
304K views • 8 years ago
Google I/O 2012 - Go Concurrency Patterns51:27

Google I/O 2012 - Go Concurrency Patterns

Google for Developers
894K views • 14 years ago
The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]1:29:27

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

cpponsea
245K views • 7 years ago
CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”1:04:26

CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”

CppCon
40K views • 8 years ago
Jonathan Blow on scripting languages9:30

Jonathan Blow on scripting languages

Jeru Sanders
185K views • 7 years ago
OSCON 2010:  Rob Pike, "Public Static Void"12:31

OSCON 2010: Rob Pike, "Public Static Void"

O'Reilly
119K views • 16 years ago
Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible1:02:49

Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible

Reboot Develop
112K views • 9 years ago
Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency1:00:40

Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency

Hydra
47K views • 7 years ago
Introducing a Memory-Safe Successor Language in Large C++ Code Bases - John McCall - CppNow 20231:22:21

Introducing a Memory-Safe Successor Language in Large C++ Code Bases - John McCall - CppNow 2023

CppNow
18K views • 3 years ago
Google I/O 2012 - Meet the Go Team1:00:29

Google I/O 2012 - Meet the Go Team

Google for Developers
108K views • 14 years ago
dotGo 2015 - Rob Pike - Simplicity is Complicated23:12

dotGo 2015 - Rob Pike - Simplicity is Complicated

dotconferences
172K views • 10 years ago
CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”1:15:46

CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”

CppCon
178K views • 9 years ago
The Implementation of Rewind in Braid26:56

The Implementation of Rewind in Braid

GDC Festival of Gaming
141K views • 9 years ago
#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers58:24

#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers

Gamelab Conference
210K views • 8 years ago
How We Solved the Worst Minigame in Zelda's History24:32

How We Solved the Worst Minigame in Zelda's History

Linkus7
1.1M views • 6 years ago
CppCon 2015: Andrei Alexandrescu “Declarative Control Flow"1:07:35

CppCon 2015: Andrei Alexandrescu “Declarative Control Flow"

CppCon
102K views • 11 years ago