Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023
Godot Engine6 HN recommenders · 2023–2026
27K views · talk · evergreen · Uploaded 2023-11-07
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.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
2:25:52The spelled-out intro to neural networks and backpropagation: building micrograd
Andrej Karpathy
49:55How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
26:53What the heck is the event loop anyway? | Philip Roberts | JSConf EU
JSConf
36:45Rich Harris - Rethinking reactivity
You Gotta Love Frontend
51:18Lexical Scanning in Go - Rob Pike
GoogleFOSSSydney
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
12 comments from Hacker News
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. [VIDEO]
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. [VIDEO]
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: [VIDEO]
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) [VIDEO]
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: [VIDEO]
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] [VIDEO]
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] [VIDEO] [2] [LINK]
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. [VIDEO] [LINK] (I've had some fun dabbling with Swift Godot but all of the documentation seems to be a bit out of date)
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: [VIDEO] But if you really love C# nothing is stopping you. I prefer GDScript.
> 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: [VIDEO]
Miguels work on Swift for Godot is really inspiring. Highly recommend this video for anyone looking for more context: [VIDEO]
Ah it's from 2023, Miguel de Icaza : Swift Godot: Fixing the Multi-million dollar mistake: [VIDEO] Highly recommend.