Empower Apps

Joannis Orlandos stops by to chat about WendyOS, an operating system for bringing Swift and AI to robots, drones, and edge devices. We get into running Swift on NVIDIA Jetson and Raspberry Pi hardware, the future of cross-platform Swift across Android, Windows, and Wasm, and somehow end up arguing about whether you should let LLMs format your code at all.

Guest
Related Links
Related Episodes
Chapters
  • (00:00) - What Is WendyOS
  • (05:15) - Swift, Hardware & Getting Started
  • (16:18) - Swift Everywhere: Multi-Platform Future
  • (21:24) - Swift on Windows, SQL Server & WWDC Preview
  • (30:19) - AI, Skill Files & LLM Workflows
  • (42:30) - Swift 6.4 & Wrap-Up

Watch
Click here to watch a video of this episode.

Transcript

Support the Show
★ Support this podcast on Patreon ★  

Thanks to our supporters: Thanks to our monthly supporters
  • Steven Lipton
 
Welcome new supporters:

Social Media
Credits
Music from https://filmmusic.io "Blippy Trance" by Kevin MacLeod (https://incompetech.com) License: CC BY (http://creativecommons.org/licenses/by/4.0/)

Creators and Guests

Host
Leo Dion
Swift developer for Apple devices and more; Founder of BrightDigit; husband and father of 6 adorable kids
Guest
Joannis Orlandos
Swift Engineer, SSWG Member, Maintainer for @codevapor and 20 other libs. Currently supporting the #Swift Developer Community 🚀

What is Empower Apps?

An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.

EAS.205
===

[00:00:00]

What Is WendyOS
---

Leo Dion: Welcome to another episode of Empower Apps. I'm your host, Leo Dion. Today, I am joined by Joannis Orlandos. Joannis, thanks for coming back on the show

Joannis Orlandos: Hey, yeah, thanks for having me. How are you doing?

Leo Dion: Good, good, good. Really glad

Leo Dion: to have you on. So

Joannis Orlandos: ago in

Joannis Orlandos: in Folkestone in Swiftcraft, yes

Leo Dion: Yes. Yes, I just talked about that in my last episode

Leo Dion: It's a really great

Leo Dion: time. I'll let you go ahead and

Leo Dion: introduce yourself really quick before we

Leo Dion: get started

Joannis Orlandos: Hey, so I'm Joannis. I'm the CTO of Wendy Labs and co- co-maintainer of Hummingbird. Used to work on Vapor and Mongo Kitten, and I've generally been around on the

Joannis Orlandos: Swift ecosystem, particularly server-side Swift, for about 10 years now.

Leo Dion: Yep. Yeah, that's

Leo Dion: right. And

Leo Dion: there's a lot of amazing

Leo Dion: stuff you, you do. But today we're gonna focus on WendyOS, since that's

Leo Dion: new. We

Leo Dion: had you on to talk about the server side Swift work [00:01:00] group last time. So, let's get started jumping right

Leo Dion: in. What is WendyOS?

Joannis Orlandos: Yeah. So WendyOS is a operating system as it implies. It's an operating system for robotics and edge devices. So you can imagine anything from this NVIDIA Jetson box over here you know, small GPU, kind of like a Raspberry Pi.

Joannis Orlandos: Got some peripheral GPIO port pins. So if you want to do any electronic development, hardware, robotics, maybe a car or a drone WendyOS is your tool for running apps

Joannis Orlandos: on edge devices, just like iOS allows you to run apps on your iPhone

Leo Dion: How is it unique from, say, other just

Leo Dion: Linux distributions?

Joannis Orlandos: So generally if you run a Linux distribution on

Joannis Orlandos: your Linux device or, or on your hardware,

Joannis Orlandos: First you'll need to, you know, do a research, wh-which operating system do I actually want to use? And, and that choice can vary a lot depending on what kind

Joannis Orlandos: of hardware platform you're targeting. So this Nvidia Jetson [00:02:00] Nano is way different than the big guy, the four.

Joannis Orlandos: Different requirements, right? Different memory amount or

Joannis Orlandos: am-amounts of

Leo Dion: What is that?

Joannis Orlandos: this is a four.

Joannis Orlandos: This is the big bo- this is the big boy Nvidia Jetson. So this is used for humanoid robots or cars.

Joannis Orlandos: Whereas the Nvidia Jetson Nano or a Nano is more like a AI camera or like your home assistant like Siri.

Joannis Orlandos: Maybe you would build a home pod or home assistant would be cool to sort of run on something like this. And we go all the way down to, let me unplug this, like a Raspberry Pi 3 or a Raspberry Pi 4 or a 5 even microcontrollers. We're building a gene- general tool for embedded Linux development for all types of hardware devices.

Joannis Orlandos: And right now if you download if, if you buy this, this Nvidia Jetson Nano or, or Raspberry Pi for that matter, each vendor has their own operating system, usually with vastly different capabilities, but [00:03:00] almost all of them come with a desktop. Whereas for you, when you're buying this device it's kind of like a home server.

Joannis Orlandos: It's headless. You wouldn't want to plug it into a TV or your monitor, and you certainly are not interested in connecting it with a keyboard or mouse. But all of them currently do... Mo-most of these operating systems do require you to connect with a keyboard and mouse, which means that you can't just plug it in over a USB-C like your iPhone and start developing.

Joannis Orlandos: And that's really where we differentiate in that you install the OS on an SD card or NVMe drive, and from that point forward it will

Joannis Orlandos: come... If you power it on, it will

Joannis Orlandos: come online on Wi-Fi and Bluetooth. If you plug it in over USB, it will just be

Joannis Orlandos: readily available with the tools,

Joannis Orlandos: and it will connect to your Mac, Linux, or the Windows PC.

Joannis Orlandos: And you can just develop for it just like you would on Android or IO- iOS

Leo Dion: That's amazing. So, is it... What's special about Wen- Wendy when it comes to the Swift ecosystem?

Joannis Orlandos: So, when it uses [00:04:00] containers and, and, and just like you would in Docker to run apps and on macOS, you can't really run GPU workloads or Wi-Fi or Bluetooth workloads on your container. If your Mac has Wi-Fi, it will use your Wi-Fi, but generally speaking, it's it can't really benefit from hardware acceleration or anything like that.

Joannis Orlandos: So when you run it on-- If you run Linux apps on your Jetson, you can get the full experience, even USB peripherals or ribbon cable cameras, stuff like that do work, and you can build your own hardware devices, right? But where Swift is special is that a lot of companies right now, when they're, they're, when they're getting this box for the first time, they need to prototype their first application.

Joannis Orlandos: And getting an application working requires, you know, you want to iterate quickly, so you don't want to spend too much time on your operating system or your tools, but you also don't want to spend too much time on your programming

Joannis Orlandos: language. So a lot of companies opt for scripting languages, specifically Python, to quickly iterate their code. [00:05:00] But the moment they want to go to production, that's not fast enough. So m-most companies we spoke to actually prototype in Python, and then before production, they have a separate team on standby to rewrite everything in C++.

Swift, Hardware & Getting Started
---

Joannis Orlandos: And what Sw- makes Swift unique is that it's a high-level language, just like you would expect from Python or JavaScript, right?

Joannis Orlandos: So you can get, get really expressive, nuanced code without complexities like memory allocation and all the difficult low-level stuff, while still getting a really good

Joannis Orlandos: performance footprint similar to C or C++

Joannis Orlandos: or, or Rust. It's on

Joannis Orlandos: par with that. So,

Joannis Orlandos: It's really the fact that you don't need to rewrite all of your code

Joannis Orlandos: again when you move from Swift to Swift.

Joannis Orlandos: It's what makes Swift unique

Joannis Orlandos: in this world. It's one of the few languages that does the low-end optimization all the way up to the high-level code.

Leo Dion: Yeah, that makes total sense. So, what are some, like, success stories you have of [00:06:00] using WinDOS,

Joannis Orlandos: Right now we're still in a very early stage, right? Some people are-- Like, we don't have many production use cases, although we have a couple clients, like very big, big

Joannis Orlandos: clients. I'm not sure I can name them actually. I think we told about the-- talked about a bit offline. But no, yeah, we have a couple clients ranging from the energy industry to self-driving cars robotic companies or even universities that are trying to adopt this right now.

Joannis Orlandos: Most of the-- E-even like theme parks that, you know, that, that have animatronics or stuff like that. So we've got various different companies that are playing with this in very different use cases, right? And generally across the board, we've heard posit- we've heard a lot of positive news. People are excited for it, asking for new features.

Joannis Orlandos: Especially I've got a-- we've got a lot of asks to get the Jetson 4 out in production release because people are trying to do some serious use

Joannis Orlandos: cases with this, where a Jetson Nano is just not powerful [00:07:00] enough. And we've actually seen a lot of older ecosystems like Avocado OS. They're copying a lot of our ideas like USB remote debugging or,

Joannis Orlandos: or stuff like that.

Joannis Orlandos: So I think we're on the right track given

Joannis Orlandos: that people are copying.

Leo Dion: So if someone like me were to get into WinDLS to play around with it, one of the challenges

Leo Dion: that I face is, A,

Leo Dion: my lack of knowledge when it comes to

Leo Dion: embedded programming, and B is there like Swift packages out there that

Leo Dion: you can use to

Leo Dion: directly interface with hardware?

Joannis Orlandos: Yes. So there are existing GPIO libraries. We have our own in-house Bluetooth library for Swift developers that leverages the existing BlueZ ecosystem. Wi-Fi and audio and video all just work. We have a GStreamer package that allows you to do audio to video input, signal processing, video conversion, frame rate changes, even like resize, scaling the, the pixel layout and different pixel layouts.

Joannis Orlandos: So [00:08:00] we have a pretty good library there for audio and video too. And we're right now working on, on the later

Joannis Orlandos: stages of MLX support for CUDA

Joannis Orlandos: Sorry, the other way around. Yeah, MLX support in

Joannis Orlandos: CUDA, so you can run your Swift M- ML libraries like LLMs, VLMs, even audio libraries

Joannis Orlandos: on a Jetson using an NVIDIA GPU, but ru- running

Joannis Orlandos: inside of Swift.

Joannis Orlandos: So we're building

Joannis Orlandos: that

Leo Dion: take a step back just for folks who aren't super aware what CUDA and what MLX

Leo Dion: is,

Leo Dion: And explain why they're super important right now

Joannis Orlandos: So, if you want to run AI workloads or GPU workloads on an NVIDIA Jetson or a Mac there are actually two different paradigms. So, most people will use something like PyTorch, which is a Python library, and PyTorch is pretty popular, but you have different implementations on the back end. So you have a CUDA back end and an Apple back end.

Joannis Orlandos: So the Apple back end uses Metal. Metal is the GPU [00:09:00] language, right, for shaders in, in, in Swift and in Apple ecosystems, and that allows you to do hardware acceleration, really fast inference on these devices or rendering, right? So the inverse of that is CUDA on G- NVIDIA GPUs, and CUDA allows you to do the same thing, GPU workloads on the GPU, the NVIDIA GPU.

Joannis Orlandos: But us- and, and pretty similarly to Mac- Apple, it uses

Joannis Orlandos: a me- unified memory architecture for these Jetson

Joannis Orlandos: GPUs. So, there is no need to

Joannis Orlandos: copy data back and forth between the GPU and the CPU. So Apple developed a framework called MLX, and MLX is an AI inference framework just like PyTorch

Joannis Orlandos: is, but MLX supports also Python, but

Joannis Orlandos: also Swift, and there's a C++ library

Joannis Orlandos: as well. The interesting thing about MLX is that it lev- it's, it's designed around

Joannis Orlandos: unified memory, just

Joannis Orlandos: like Apple Silicon, right?

Joannis Orlandos: So instead of you having to copy

Joannis Orlandos: data like, like LLM text back and forth between the GPU and

Joannis Orlandos: the CPU now it's this unified memory layout, [00:10:00] right? So they don't have to copy anything.

Joannis Orlandos: CPU processes the

Joannis Orlandos: data

Leo Dion: use metal underneath

Joannis Orlandos: On Apple platforms, yes

Leo Dion: t- and it's particular to

Leo Dion: Apple Silicon,

Joannis Orlandos: Correct. But what makes MLX unique these days is that

Joannis Orlandos: they're supporting more GPUs like these NVIDIA devices.

Leo Dion: Got it.

Leo Dion: All

Joannis Orlandos: devices are using

Joannis Orlandos: CUDA, so you can leverage CUDA with

Joannis Orlandos: MLX to get a unified memory optimized ML inferent framework native to Swift as well. And these frameworks around Swift are excellent.

Joannis Orlandos: Like, they use task cancellation, structured concurrency, and they're very

Joannis Orlandos: well-defined generally. So

Joannis Orlandos: we're getting to get the advantage of all of

Leo Dion: very literally close to the metal where you have to deal with

Leo Dion: pointers and stuff and yeah

Joannis Orlandos: But you don't notice anything. For you, it's just a matter of get- getting a stream of tokens in like an async sequence and getting an async sequence of tokens

Joannis Orlandos: back. And the moment the client is no longer interested in providing the stream of tokens, task cancellation [00:11:00] ensures that the whole GPU workload is broken down and canceled so you don't

Joannis Orlandos: waste any cycles

Leo Dion: So, I did your wonderful workshop at Swiftcraft. I learned how to set up a web server basically on a...

Leo Dion: Yeah, what did you bring?

Joannis Orlandos: It was this Nvidia Jetson

Joannis Orlandos: device, except there is a

Joannis Orlandos: case around it now.

Leo Dion: Oh,

Joannis Orlandos: So this is the Nvidia Jetson you worked with

Joannis Orlandos: as

Joannis Orlandos: well

Leo Dion: Okay. What are some really great starter projects for someone like me who might have a Nano or a Pi but I don't just wanna set up another web server? I wanna actually, like, work with hardware

Leo Dion: itself

Joannis Orlandos: We have a couple starter projects as part of the CLI. So if you type Wendy init, we will allow you to pick a programming language, Swift, and then one of our example projects. For example, we have a web server, but we also have an AI voice speaker like your HomePod coming up. I think it might already be published, to be fair.

Joannis Orlandos: So you can start [00:12:00] there and just get audio data running through your Swift application. You could maybe even remotely listen to it from a, you know, like a security camera. But just any Swift package project that's compatible with Linux will work on this device, whether it's your Hummingbird, your Vapor server, or Swift Neo or anything else.

Joannis Orlandos: It, it just, it's just Linux and the moment you ta- have a package called Swift, we will make it into a container using existing ecosystem tools like Swift container plugin and ship it to the device. Now, one thing that we're currently, like, polishing a bit more is the VS Code experience. So we have a Visual Studio Code plugin

Joannis Orlandos: building on top of the Swift plugin, and it will allow you

Joannis Orlandos: to well, with the click, same click of the button, you can target a Wendy OS device instead

Joannis Orlandos: of your Mac, ship it there.

Joannis Orlandos: And we'll set up remote debugging breakpoints, logging, telemetry

Leo Dion: So, some of the examples you had was video, audio stuff with a [00:13:00] camera or mic or speaker. And then what other kinda like projects would you recommend somebody get started with besides the web server?

Joannis Orlandos: Well, a web server

Joannis Orlandos: is fun, of course. If you don't want use, want to... If you want to use an existing project like OpenClaw or something such as Home Assistant, you could run that on a Wendy device as well. Most people use a Raspberry Pi for these things. Use a different operating system and a Docker file, and you're ready to go.

Joannis Orlandos: Some other cool use case, like I said, the voice speaker, a security camera. I, when my kid-- I have a second kid on the way,

Joannis Orlandos: One of the first things I'll be building is a baby monitor app just on my Nvidia

Joannis Orlandos: Jetson. And,

Joannis Orlandos: Maybe instead of getting,

Joannis Orlandos: In- in, you know, instead of go- not being able to go out for a walk, I can leave my Jetson in the room with a camera and get a notification on

Joannis Orlandos: my phone, "Baby's crying.

Joannis Orlandos: Let's head back home."

Leo Dion: Yeah, yeah. That's really cool. Any, like, hardware type stuff you could imagine

Leo Dion: being [00:14:00] able to do,

Joannis Orlandos: Yeah, so there are these GPIO pins over here. I'm not sure if you can see them. So those GPIO pins, you can attach arbitrary hardware like LED strips to it. You can also do something more novel like a display, so you could have a touchscreen. One of the like if you want to have your calendar on the wall, you could mount this kind of behind me there with maybe like a, a small LCD display or a camera, what's it called?

Joannis Orlandos: A TV. And then you could show your agenda for today every morning or like a breakdown of what's going to happen today for the kids.

Joannis Orlandos: Another cool use case that's not like, video output related would be what's it called? Like a drone. So these GPIO pins, they can also control things like your propellers of a drone.

Joannis Orlandos: Although,

Joannis Orlandos: What I recommend doing there is to

Joannis Orlandos: get a hat or these Pixhawk boards that you can put in between the drone and

Joannis Orlandos: your Jetson. And then this Pixhawk board does the stabilis- stabilization of the drone and [00:15:00] making sure you're complying by

Joannis Orlandos: local regulations. Then you control where

Joannis Orlandos: it goes just on a higher level language.

Leo Dion: That's awesome, Joannis. Was there anything else you wanted to mention about Wendy OS before I jump onto Swift Everywhere?

Joannis Orlandos: No, I, yeah, we've got cloud connectivity coming up so you can remotely manage your devices. That means that you don't need to think about it

Joannis Orlandos: either. Just you can connect it to our cloud or you

Joannis Orlandos: can use your own gRPC instance

Joannis Orlandos: and

Joannis Orlandos: PKI will handle the rest. No, only you can log into your

Joannis Orlandos: device.

Joannis Orlandos: So, yeah, it's just a, a really easy way to

Joannis Orlandos: remotely manage your fleet or your home

Leo Dion: That's pretty awesome. So We got now

Leo Dion: Swift running on a Jetson a Pi,

Joannis Orlandos: Yeah. Linux

Leo Dion: sorts of Linux servers, Android. We had the

Leo Dion: episode with Mark last year

Joannis Orlandos: Oh, you did?

Joannis Orlandos: Cool.

Leo Dion: Tools. AWS, we've had Sebastian on. Trying to think what else, [00:16:00] but what, ... Oh, of course,

Leo Dion: Windows. But

Leo Dion: what,

Leo Dion: Where, do you see the place...

Leo Dion: Where, where do you see Swift right now and the

Leo Dion: future of Swift as far as

Leo Dion: multi-platform, multi-OS, multi-device and, like, what are we looking at in the next year or

Swift Everywhere: Multi-Platform Future
---

Leo Dion: two

Joannis Orlandos: So there are a couple new work groups that have recently been announced, like the build and packaging work group that I'm a member of. Of course, a year ago we launched the Swift Android work group. Both of those work groups, especially Swift on Android, have had tremendous success. Over the past year, we have been able to build out early versions of the VS Code extension for remote debugging, but we already shipped the first version of the SDK as well.

Joannis Orlandos: There are, like, a couple million users right now already running Swift on Android on apps that are used every single day by people.

Joannis Orlandos: It's been a tremendous success. Companies like Cricket I believe [00:17:00] this is public as well, but

Joannis Orlandos: What's it

Joannis Orlandos: called? The betting app. There's

Joannis Orlandos: a betting app out there that's

Joannis Orlandos: pretty popular that's using Swift on Android as well.

Joannis Orlandos: There are

Joannis Orlandos: other

Leo Dion: A bet, a, a betting app That's popular. That narrows it down.

Joannis Orlandos: Yeah, yeah. I'll, I'll leave it at that. I'm w- I, I... It's it's a very popular app, but I forgot the, the name. Although it's not, it's not used in Europe as much. But yeah, there are lots of different apps that are getting developed using Swift on Android already. Most of

Joannis Orlandos: them have been exceptionally happy with it.

Joannis Orlandos: Main concerns right now are binary size, but then when we

Joannis Orlandos: look at compet- competition in this regard, a lot of

Joannis Orlandos: them also have

Joannis Orlandos: big binary size in cross-platform mode 'cause they can't leverage like, For example, if you use Kotlin

Joannis Orlandos: on iOS, you need to ship the Kotlin libraries. We do the same with Swift on Android, of course.

Joannis Orlandos: Whereas Swift on iOS already has these

Leo Dion: my remembrance, Like Swift Skip Tools had its own set of like, not foundation, but foundation-esque [00:18:00] libraries that it would make available that... Cause

Leo Dion: for those who don't know, when you build and deploy an app on an iPhone, like the OS already has the framework, so they're not included in the size.

Leo Dion: Whereas if you need those

Leo Dion: libraries

Leo Dion: then you have to yeah, you have to ship them with the app

Joannis Orlandos: Yeah, so this is the same for Kotlin on iOS, React Native on iOS

Joannis Orlandos: or Android or Flutter, and the same

Joannis Orlandos: is true for Swift on Android which does increase

Joannis Orlandos: binary size, although we're making more large leaps on reducing that. Swift on Wasm has been tremendously successful lately. There was a blog post, I think it came out yesterday,

Joannis Orlandos: Where Goodnote showed how they ported their iOS app over to

Leo Dion: That's crazy. I did see that,

Leo Dion: yes.

Joannis Orlandos: So I, I'm-- for me personally, I think the future is extremely optimistic. Many ecosystems are struggling with things that Swift is starting to solve, like remote debugging on Android like a cross-platform app or VS Code [00:19:00] support. I think with the, with the AI making, with AI making a lot of waves, Swift is, Swift and Rust will be in a good spot 'cause traditionally people have been hesitant to use Swift because of the concurrent, strict concurrency mode, right?

Joannis Orlandos: There was a lot of uproar about the difficulty of implementing stri-strict concurrency.

Leo Dion: Okay

Joannis Orlandos: Now, of course, we have approachable concurrency, which makes it more easier to adopt concurrency in your iOS apps. But I think strict concurrency is easier than ever because AI agents don't get exhausted reasoning about this new paradigm.

Joannis Orlandos: Of course, humans do get tired, so you can leave some refactoring to an AI and review the code at the end, and do small increments like that.

Joannis Orlandos: Like, "Okay, I don't want unstructured tasks.

Joannis Orlandos: How can I rewrite this unstructured task?" And without you having

Joannis Orlandos: to do a whole lot of research and

Joannis Orlandos: arguing on the

Joannis Orlandos: Swift forums, you could let an AI

Joannis Orlandos: propose a couple solutions and, and go with it, right? So I think AI will make

Joannis Orlandos: these stricter [00:20:00] languages like Swift and Rust a lot more approachable than they

Joannis Orlandos: already are.

Leo Dion: So that was the big concern amongst, like, developers outside of

Leo Dion: the Apple ecosystem

Joannis Orlandos: think mainly

Leo Dion: concurrency?

Joannis Orlandos: mainly inside ecosystem people are worried

Joannis Orlandos: about thread

Leo Dion: I just wanted to check

Leo Dion: what you

Joannis Orlandos: yeah. Outside of the Apple ecosystem, of course, a lot of people are worried about maybe a lack of cross-platform libraries, although that's being addressed

Joannis Orlandos: very well recently as well,

Joannis Orlandos: like Swift CUDA, Swift Java, Swift

Joannis Orlandos: Node,

Joannis Orlandos: Swift Python libraries even.

Joannis Orlandos: PythonKit I believe is still alive

Joannis Orlandos: and there are like many new

Joannis Orlandos: efforts

Joannis Orlandos: to ex- expand the

Joannis Orlandos: ecosystem

Joannis Orlandos: of compatibility.

Joannis Orlandos: C++ a really big one

Leo Dion: What's that?

Joannis Orlandos: The fact that Swift has native

Joannis Orlandos: C++ introp is massive for people outside of the Apple ecosystem mainly

Leo Dion: Yes. Yeah, agreed. And I can't hesitate to plug my s- my GitHub action, which builds your stuff [00:21:00] your Swift package in whatever OS you pick, so that's really nice.

Joannis Orlandos: And one thing I'm particularly proud of

Joannis Orlandos: is the

Joannis Orlandos: fact that we're lo- getting Swift

Joannis Orlandos: Neo support, well support unofficial support for Windows which means that we will have a f- you know, a workable version. Doesn't mean

Joannis Orlandos: it's officially in CI, but

Joannis Orlandos: we're getting there, right? So that

Joannis Orlandos: PR

Leo Dion: And I think,

Joannis Orlandos: been far

Swift on Windows, SQL Server & WWDC Preview
---

Joannis Orlandos: matured

Leo Dion: We have this discussion at SwiftCraft, but you wanna, you

Leo Dion: wanna tell people why it's important that Swift Neo works

Leo Dion: on Windows?

Joannis Orlandos: So I think there are a couple reasons for this that I personally, my personal takes. First of all, my website, I have a blog, swift-on-server.com, where I post about Swift Server, you know, Swift on server development. And at some point we launched an article, how to use Swift with VS Code, and Swift has been this cross-platform language for 10 years now, with Windows coming [00:22:00] a couple years ago.

Joannis Orlandos: But we were surprised that when, as soon as we launched that article, it did really, really well, the VS Code one, and we figured that it would be the Swift Server audience. But we were wrong. 60% of the traffic of our website started being generated from Swift on Windows,

Joannis Orlandos: cause we mentioned that the VS Code extension also supports Windows.

Joannis Orlandos: That's the only keyword for Windows on our site, driving 60% of the traffic. People on Windows use C# most of the time, but really when you look at, for example, Android, it's, it's lar- it's by, by far and large a Kotlin-dominated landscape, right? On Linux, it's mostly C and C++, Apple platforms Swift, Windows more so C#.

Joannis Orlandos: But if you look at the general demographic, it's pretty much a bit of everything like Electron, Node.js apps. Most of them are web wrappers, right? Yeah. But also some C#, some C++, some Java apps, and a lot of low-level apps. But there is, there is really [00:23:00] no you know, no native way that's, that's dominating or even a cross-platform way that's very dominant.

Joannis Orlandos: If I would name anything, it would be JavaScript on Windows. So a lot of people are looking into higher level languages than C++ to write their apps in,

Joannis Orlandos: understandably

Joannis Orlandos: so. And I, I'm not surprised

Joannis Orlandos: that Swift and Rust

Joannis Orlandos: will, with their cross-platform

Joannis Orlandos: support, are dominant, are, are, are, becoming more

Joannis Orlandos: dominant in this, in this ecosystem. Or does... That doesn't mean they are dominant, but they are

Joannis Orlandos: becoming more dominant

Joannis Orlandos: for cross-platform use

Joannis Orlandos: cases, right? The write a shared core, ship it everywhere kind of approach.

Leo Dion: Mm-hmm. Yeah. Yeah. I

Leo Dion: well, the other thing that you were talking about, I just remember, is the business case of, like, there's still a lot of servers that run Windows for certain rules and reasons, and if they can get Swift running on Windows, I mean, that's a big

Leo Dion: win for everybody

Joannis Orlandos: It is a big win. I think people are surprised how many enterprises. [00:24:00] There are many enterprises that have Windows system administrators, but no Linux-- with little or no Linux experience. And if you need to get your backend hosted at those companies, it needs to be written in a language that supports Windows.

Joannis Orlandos: And if Swift does not support Windows, there is no way Swift can make it into these big

Joannis Orlandos: enterprises that are reliant on Windows backend still. Of course, more and more companies, including

Joannis Orlandos: Microsoft, are adopting

Joannis Orlandos: Linux. But a lot

Joannis Orlandos: of

Joannis Orlandos: companies, like especially older companies, banks that are not in the tech industry they are we- running

Joannis Orlandos: Windows servers since 1990-whatever and still will be

Leo Dion: Here's, here's something we n- we haven't talked

Leo Dion: about is so Fluent is going through a lot of work

Leo Dion: right now. Is that correct?

Joannis Orlandos: I don't

Joannis Orlandos: know actually. I haven't kept up with, Fluent that much, but I don't think it's been that

Joannis Orlandos: actively developed

Leo Dion: M- my question was gonna be is what's the story with, [00:25:00] since a lot of folks have Windows, it's likely that they have SQL

Leo Dion: Server. What's the story

Leo Dion: with Swift and SQL Server right now?

Joannis Orlandos: I started an effort with a small group of

Joannis Orlandos: people to get this working. Oracle and Microsoft SQL are the same protocol. It is

Joannis Orlandos: tabular

Leo Dion: Oh, really?

Joannis Orlandos: Yes. And we made a project to get it

Joannis Orlandos: working, but I think recently someone reinvigorated the effort and has made a lot of progress. So, there might be...

Joannis Orlandos: I, I haven't tried the driver

Joannis Orlandos: myself cause I'm not primarily a Windows backend guy,

Joannis Orlandos: but I have seen good signals in the dev. I'm

Joannis Orlandos: not sure if it will be integrated with

Joannis Orlandos: Fluent, but I do think there is there is something

Joannis Orlandos: brewing there, yeah

Leo Dion: I mean, is that what people d- like, is that often the case though? Is that if you have Windows Server, you

Leo Dion: probably have SQL Server, or am I

Joannis Orlandos: of the time. A, a lot of those companies do rely on SQL Server because they have

Joannis Orlandos: service contracts with Microsoft.

Joannis Orlandos: Oracle is also not unheard of in some of these organizations. So TDS, [00:26:00] Tabular Data

Joannis Orlandos: Streams is

Joannis Orlandos: a good protocol to

Joannis Orlandos: support for Swift

Leo Dion: Yeah. I I've used Oracle

Leo Dion: before. It's a type of torture, I

Joannis Orlandos: It-- yeah, I know.

Leo Dion: SQL Server I actually like. I do have fond memories of that and the whole .NET thing, but, like, SQL or Oracle is just, we all know the, the famous webcomic with

Leo Dion: what Oracle looks

Leo Dion: like and its

Leo Dion: organization.

Joannis Orlandos: I have a pers-,

Leo Dion: a lot of lawyers. A lot of

Joannis Orlandos: MySQL from

Joannis Orlandos: Or-,

Joannis Orlandos: What's it called? Is that, that's also Oracle, right? Isn't it? MySQL?

Leo Dion: MySQL? Might've been. Yeah, Oracle might've bought MySQL, 'cause that's where everybody had moved over to. They forked to Maria, and then

Leo Dion: pretty much most people just ended up moved into Postgres, so.

Leo Dion: Should we talk about

Leo Dion: next week?

Joannis Orlandos: Which part of next week? What do you mean?

Leo Dion: Of course you're talking about Dub Dub?

Joannis Orlandos: Ah. Oh, wow, it's already June. I

Joannis Orlandos: completely forgot that. You know, I've been traveling so much, I my, my dates are...[00:27:00]

Joannis Orlandos: Yeah

Leo Dion: tell people where have you been

Leo Dion: traveling

Joannis Orlandos: This year I've been to I think the start of this year wa- end of last year kind of was do iOS. I'm not sure in which order, but I went to the Swift meetup at Fullstack, then I went to Fullstack itself, which is in Brussels, both of them. I went to Arctic Conference. I went to at Defcon I went to, which is in Amsterdam. I went, Arctic Con was in Finland. I went to Norway, I went to

Joannis Orlandos: To- thrice with Tokyo, right? Twice to San Francisco. I've got a couple more coming up. I've got

Joannis Orlandos: I was in the UK at Swiftcraft

Leo Dion: Yes.

Joannis Orlandos: I'll be at, in Calgary, yes, at,

Joannis Orlandos: Swift Rockies. So I'm actually-- I, I was actually thinking of,

Joannis Orlandos: I was thinking of going to

Joannis Orlandos: WWDC, and I

Joannis Orlandos: figured, well, maybe it's time to take a

Joannis Orlandos: break for a month.

Joannis Orlandos: But I'll also be in San Francisco again coming July or August.

Joannis Orlandos: And of course Server-side Swift later this year.

Joannis Orlandos: I can't,

Joannis Orlandos: Can't not go. [00:28:00] That's my favorite

Joannis Orlandos: conference. Although Swift, Try

Joannis Orlandos: Swift is

Leo Dion: That is a really good

Leo Dion: conference that people should

Leo Dion: check out, so

Joannis Orlandos: definitely should

Leo Dion: hopefully we get an announcement

Leo Dion: soon, right? Maybe next

Leo Dion: week we get an announcement.

Joannis Orlandos: I hope so

Leo Dion: All right. let's talk about next week then.

Leo Dion: What...

Leo Dion: let's...

Leo Dion: let's...

Joannis Orlandos: Do you want to take the realistic approach or the

Joannis Orlandos: I,

Joannis Orlandos: I hope this is going to be the case approach?

Leo Dion: Let's do the

Leo Dion: re- I'm sorry, let's do the realistic approach, and let's

Leo Dion: let's focus on Swift the

Leo Dion: langu- like, let's focus outside of

Joannis Orlandos: Apple platform

Leo Dion: oh, we ratted a new,

Leo Dion: I don't know. What's the

Leo Dion: trendy thing right

Leo Dion: now that people love?

Joannis Orlandos: Foldables?

Leo Dion: speaking of betting apps, they added a new betting... Apple has a new betting app.

Leo Dion: Or or Apple added video

Leo Dion: playgrounds. Right, there's all that social crap that we have, we hear about and people forget in like six months. Like, forget that stuff, forget,

Leo Dion: like [00:29:00] particular to Apple platform, what are you realistically

Leo Dion: looking forward to next week?

Joannis Orlandos: So it's a bit hard because a lot of the open source stuff

Joannis Orlandos: will already be in, will already be

Joannis Orlandos: kind of,

Leo Dion: That's true. That's,

Leo Dion: I forgot about that

Joannis Orlandos: But

Leo Dion: Is there, is there a chance just, sorry, is

Leo Dion: there a chance we have something like DSL or result builders that we just don't know

Leo Dion: anything about

Joannis Orlandos: I, I'm hopeful, but I think

Joannis Orlandos: not now. But I-- they

Joannis Orlandos: they might announce new libraries that are s- open source, right?

Joannis Orlandos: Like more

Joannis Orlandos: interop

Leo Dion: But they haven't published at all

Joannis Orlandos: that they haven't published yet. So Apple also of cour- doesn't just evolve

Joannis Orlandos: the language, they also create new libraries. Swift Java was a big one that they announced at Server-Side Swift.

Joannis Orlandos: They might maybe

Leo Dion: there

Joannis Orlandos: They're, they're creating more events in the open source community, like maintainer meetups. They recently showed the big iOS names, right? People that have been promoting Swift and helping people get started with the ecosystem.

Joannis Orlandos: That was really great to

Joannis Orlandos: [00:30:00] see.

Joannis Orlandos: I want to-- I, I'm really

Joannis Orlandos: hopeful they'll, they'll continue promoting the community more.

Joannis Orlandos: I'm, I'm very hopeful for a new documentation effort, right? More and re- more documentation efforts around Swift. Maybe LLM evals or

Joannis Orlandos: like, models optimized for Swift,

Joannis Orlandos: like Cloud

Joannis Orlandos: Code

Joannis Orlandos: or, or OpenAI

Leo Dion: let's,

AI, Skill Files & LLM Workflows
---

Leo Dion: let's deep dive into that. Yeah, that's, that's an interesting point. So

Leo Dion: you're a big AI person.

Joannis Orlandos: I am, yes

Leo Dion: use ......You're more

Leo Dion: you burn through more tokens

Leo Dion: probably

Leo Dion: than I ever will.

Leo Dion: That's, that is one of the things... So we've seen

Leo Dion: since DubDub, pe- periodically with every version of

Leo Dion: Xcode, I don't know if you still use Xcode, but we've seen a lot more like angetic stuff going on there.

Leo Dion: I don't... Like, I use Xcode, but I don't use any of

Leo Dion: that stuff. So when I do an AI talk, people always ask, "Oh, what's the X- what, what do you think of this thing?" And I go, "I don't know. I don't..." But anyway, like do you think we're gonna get more,

Leo Dion: Yeah, [00:31:00] like you said,

Leo Dion: more non-Xcode integrations of LLM type stuff

Leo Dion: into Swift?

Leo Dion: A- and, and, like one of the things I, I

Leo Dion: recently mentioned in a

Leo Dion: podcast episode is like, like, if anybody thinks they're gonna open up Codex or Claude Code next week and start using new APIs or their LLM will even be aware of their new APIs, like good luck with that 'cause that's probably not gonna be the

Leo Dion: case.

Leo Dion: Are, is there some

Leo Dion: way that we're gonna have skills or some sort of thing from Apple to help people like stay up to date with Swift

Leo Dion: and, and have it, have LLMs or angetic tools more

Joannis Orlandos: I'm hopeful. I'm hopeful, yes, because of course Apple internally uses LLMs as well. I think everyone does,

Joannis Orlandos: right? They haven't been exactly secretive ar- around this, I

Joannis Orlandos: think. I'm not sure how much they use it,

Joannis Orlandos: but I imagine just like, any company they

Joannis Orlandos: had to. I mean, that's just the, the way the world is. I've personally made some some skill files that have [00:32:00] reduced token consumption while also increasing performance.

Joannis Orlandos: So, I mean, if I can do it,

Joannis Orlandos: I'm sure Apple can do a much better job at providing these skill files than, than I would as a

Joannis Orlandos: single developer

Leo Dion: that what we're gonna end up talking about is, like, new skill files that

Leo Dion: are be open sourced?

Joannis Orlandos: I'm not sure, but I hope that will be like at least the start. But my, my, my personal hope is that they will use these skill files to train better LLMs. So because what you can do is you can use these skill files or... What I, what I like to do is I, I write, like to write skill files kind of like, like my spec document.

Joannis Orlandos: This is what, what code I want, right? And not just on a functional level, but also on a meta like code quality level. For example, I ban the unstructured

Joannis Orlandos: task type from my code base. And I tell the LLM,

Joannis Orlandos: "Don't use unstructured

Joannis Orlandos: tasks." But of course, LLMs

Joannis Orlandos: are free to ignore the skill files, just like you don't

Joannis Orlandos: always read the whole documentation on apple.or- .com, right? I don't, so I'm sure the LLM doesn't always read

Joannis Orlandos: my [00:33:00] skill files either, and they don't. They don't have infinite headspace, right? Or infinite context window. So what I like

Joannis Orlandos: to do is I

Leo Dion: a good way to put it. Infinite headspace versus infinite contact. It's like exactly

Joannis Orlandos: the same thing.

Leo Dion: yeah,

Joannis Orlandos: So what you can do is you can, y- you

Joannis Orlandos: can, you can do two things. You can... Well, first of all, you can make it a habit by training your model, right? By training, you can make these skills your habits. Just like you don't think about

Joannis Orlandos: walking, you can don't, also don't think about if how to write

Joannis Orlandos: an if statement, right? So some of these patterns can

Joannis Orlandos: become i- i- integral to your, to your process. That's what I... What the, in the end goal, you know, your process is perfect and your AI doesn't make

Joannis Orlandos: mistakes. But in a real world, humans make mistakes, and AIs are kind of like faster humans. So yes, AIs will make mistakes, and they will make them faster,

Joannis Orlandos: but you still need to review them.

Joannis Orlandos: And but some things are more difficult than others, right? So I ban unstructured tasks from my [00:34:00] code, but do it once in your code base and it will pick up the pace again, and I don't like that. So what I like to do is I like to convert my, my, my skills, my requirements, my, my preferences, everything. I like to encode them as

Joannis Orlandos: a a linter rule or a static code analysis tool or something along those lines.

Joannis Orlandos: And then before it makes it to commit, I'll check all of my lines of code that were changed. Do you qualify for a commit? If you use unstructured tasks or any of the other banned rules, I will not allow

Joannis Orlandos: you to commit, right? And then the LLM can

Joannis Orlandos: read this error, see this error, and it can maybe even get some context injection,

Joannis Orlandos: like the error reason, right? Showing an error with a reason, this is why it went wrong, it's kind of context injection, right? You tell the LLM this went wrong, you should look here in the

Joannis Orlandos: documentation to fix it. So I can refer it back to

Joannis Orlandos: my skill file so it knows how to do better.

Joannis Orlandos: What I like more is, yeah

Leo Dion: sorry, one one question I was gonna ask is you said unstructured text.

Leo Dion: So do you have a linter rule for that, or do [00:35:00] you have an LLM way

Leo Dion: to check it?

Joannis Orlandos: Both. So my skill files are rules. My rules become linters. My linters become our static code analysis, so I run them every time on my code and theirs. And then whenever an error pops up, it will have to fix it before it can commit. So that creates a feedback loop. It will burn more tokens

Joannis Orlandos: because it will be in a feedback loop, but the code quality will be much higher

Joannis Orlandos: because it's kind of forced into a path of good code.

Joannis Orlandos: And then whenever I spot a mistake, I, I, I change my skill files, which after which I also update my linter rules, after which it will never make the mistake again 'cause it

Joannis Orlandos: cannot

Leo Dion: Okay, that makes sense. So like my example is I, I use linters,

Leo Dion: right? I, we ta- I talked about this in my workshop.

Leo Dion: I

Leo Dion: use Swift Format, Swift Lint, and w- like I just have it, I just have a linter script it runs before it commits and push, and then I have CI set up to do that. [00:36:00] I guess, do you have CI to check for unstructured tasks

Leo Dion: as well?

Joannis Orlandos: No, not-- I, I have CI that

Joannis Orlandos: checks for common patterns, yes. I have linters. I don't have all of my linters there, like unstructured tasks, but most of

Joannis Orlandos: the

Joannis Orlandos: other two things are in CI. I'm actually

Joannis Orlandos: getting back from code formatting 'cause I feel like AIs

Joannis Orlandos: are spending a lot of tokens, which is money on formatting, and I think I can just run formatting

Joannis Orlandos: any time. I don't care,

Joannis Orlandos: right? If the code is valid and it does what it needs to do, I'll run the formatting once a day if it

Joannis Orlandos: needs to be, but I don't need my LLM to do that

Leo Dion: Well, you should have the LLM run the script, not the LLM do the formatting, if that

Leo Dion: makes sense

Joannis Orlandos: Right. But running the

Joannis Orlandos: script means modifying the files, which means it needs to reload those files back into memory. That's why I don't.

Leo Dion: Oh, it reloads the source code into memory.

Joannis Orlandos: Yeah, so Claude and the Codex, I think this-- I'm not sure whether they did it ne- they, they check if at least Claude checks [00:37:00] if you have modified the file since it model, it wants...

Joannis Orlandos: It reads, it has to read the file before it modifies

Joannis Orlandos: it, right? It's forced to, 'cause otherwise it says you don't know what's in this file.

Joannis Orlandos: You might be messing something up.

Joannis Orlandos: So Claude

Joannis Orlandos: forces you

Leo Dion: edit until it

Leo Dion: reads the file. That is correct, yeah.

Joannis Orlandos: So then when it reads

Joannis Orlandos: the file and I modify it with a linter or

Joannis Orlandos: anything else, the delta changed.

Joannis Orlandos: So, and the LLM is

Joannis Orlandos: unaware.

Joannis Orlandos: So if it wants to edit this

Joannis Orlandos: file, even though I've, it, it's just linters

Joannis Orlandos: that were applied, it will re-trigger

Joannis Orlandos: that workflow, right? So now the file is into memory twice,

Joannis Orlandos: which is pollution, more higher cost, and it just doesn't achieve anything realistically at this point

Leo Dion: Yeah, I guess for me,

Leo Dion: like, I'm wondering... like, for me formatting is important because I don't want my Git history,

Leo Dion: to be messed up because of stupid

Leo Dion: white format stuff

Joannis Orlandos: I mean, I do that. I make commits that aren't formatted, then my CI complaints and I say, "Fix

Joannis Orlandos: formatting." That's what I used to do.

Leo Dion: right, right. No, no, no. I, agree 100%.

Joannis Orlandos: mistake, but, you know, I, p- I'm human. [00:38:00]

Leo Dion: Right, right. But I mean, like, I guess, I guess in whatever, in whatever commit is my main history, I guess.

Leo Dion: Like, I would wanna keep formatting correct, whereas I do- I guess I don't wanna merge something

Leo Dion: in until it's formatted

Joannis Orlandos: I mean, you could do that as a mer- like a pre-merge or

Joannis Orlandos: whatever hook, right?

Leo Dion: Great, and that's what I

Joannis Orlandos: before... Yeah. But do you need the LLM to do that?

Leo Dion: N- yeah, no, I agree. I hear where you're

Leo Dion: coming from.

Joannis Orlandos: I mean, engineering has changed quite a bit,

Leo Dion: I think you're right. I do think, though, I wonder if there's a way to get around that so that way it's like

Leo Dion: it ignores formatting when it

Leo Dion: reads. Like, I don't... You know what I mean?

Joannis Orlandos: I just don't want it to warn or error on it or automatically trigger because that's a waste of time and effort and money. But I'm happy. I want it, I also

Joannis Orlandos: want the readable code base, but when I review the commit, not when it's still

Joannis Orlandos: thinking

Leo Dion: I have heard, I have heard from some people who just like, I guess, and I

Leo Dion: don't think that's what you're saying, but basically I've heard from people, like, in the [00:39:00] current world, like,

Leo Dion: why do we need

Leo Dion: to format code? because it's all gonna be written and read by LLMs. And I sort of like, that's a way, that's a very

Leo Dion: extreme way to think about it, because at the end of the day, like, there should be some

Leo Dion: sort of person

Leo Dion: looking at the code at some

Joannis Orlandos: foreseeable

Joannis Orlandos: future,

Joannis Orlandos: for

Leo Dion: how it works. yeah.

Joannis Orlandos: that will be

Joannis Orlandos: the case 50 years from

Joannis Orlandos: now or even 20, but I, for now, at

Joannis Orlandos: least the coming years, I will read

Joannis Orlandos: my code.

Joannis Orlandos: I'm, I mean, like any human, I might mistake PR A for B or misreview or,

Joannis Orlandos: you know,

Joannis Orlandos: my head is full and I don't review correctly. That thing, that stuff really

Joannis Orlandos: happens. There are workflows for that too,

Joannis Orlandos: but

Leo Dion: I guess like to me the analogy would be is like let's say you hire someone who is not very skilled at development and they just slop together a bunch of code and you never look at it and you just care that it works.

Leo Dion: Like that's kind of the same

Joannis Orlandos: that's bad management

Leo Dion: u- treating your LLM

Leo Dion: that way

Joannis Orlandos: But what I like to do is,

Joannis Orlandos: so we have our documentation in the same repo,

Joannis Orlandos: but we used to have a

Joannis Orlandos: separate one. [00:40:00] And after every PR that was made, I had the AI, an AI update the

Joannis Orlandos: documentation as well.

Joannis Orlandos: So I have a human reader. The reason

Joannis Orlandos: is, well, first of all, my docs don't need manual updating because people always forget and, and lazy out on this.

Joannis Orlandos: But

Leo Dion: That is, the best thing about AI and,

Leo Dion: LLMs is documentation is both more

Leo Dion: important and

Leo Dion: better in a lot of ways

Joannis Orlandos: You need to prompt it correctly because it will also write a lot of junk that you don't care about. But you can, you can, you can do that. And what I liked is when it made, it made... I, I once had a PR that I made a spec for that I gave to an engineer that made a better spec, right? That wrote out the technical side of it.

Joannis Orlandos: I made the feature request. He wrote the spec. I approved the spec with him and we discussed it because it was quite important. He let the LLM implement it. He said, "This looks good." I read the review, I read the code. I said, "This looks good." Then we merged it, and I read the rev- the documentation updated right before [00:41:00] we released, and then I reviewed the re- documentation PR, and I think, "Ha, that's not what I, what I approved, what PR I merged."

Joannis Orlandos: What happened was I forgot I, I added a note in my original spec. My engineer assumed I was right, so he took over the note condition in his technical d- docs. Then the AI implemented the note. He reviewed it because he was correct, right? He followed my spec. I reviewed it reading what I wanted to read.

Joannis Orlandos: Then when I read the documentation, right, when I read the documentation, I read that it was the inverse, and I fi- figured let's revert that because I made a mistake,

Joannis Orlandos: right? And because I, I read the documentation in very simple layman human terms I found out about... There we had a bug that was being introduced.

Joannis Orlandos: But if we didn't fo- if I didn't have the final breakdown

Joannis Orlandos: in like, one or two sentences in my

Joannis Orlandos: documentation, I would have never known. I mean, I would've known a couple days

Joannis Orlandos: later,

Leo Dion: You just need to be trained better.

Leo Dion: Like, that's the

Leo Dion: [00:42:00] problem.

Joannis Orlandos: but, it's like there's so much data that's being moved, right? Like spec document, spec document, large diff sometimes, like even 100 lines of code only.

Joannis Orlandos: But like, it's still like there's a lot

Joannis Orlandos: of nuance sometimes in code, and then misreading it, reading the issue

Joannis Orlandos: description

Joannis Orlandos: doesn't say it like a lot of things that I know are

Joannis Orlandos: true, and then reading over the opportune thing that I assumed was, was, was correct. Just assumptions, right? And then reading

Joannis Orlandos: the final two-line distillation made a lot of

Swift 6.4 & Wrap-Up
---

Joannis Orlandos: sense

Leo Dion: Before we close out, I did wanna cover,

Leo Dion: so Swift 6.4 will be out next

Leo Dion: week, or in beta

Joannis Orlandos: Beta, yeah. But the real

Joannis Orlandos: release

Leo Dion: as part of Xcode 27. What, what should we expect

Leo Dion: out of that that'll be new?

Joannis Orlandos: Well, of course, everyone can look at Swift Evolution on swift.org.

Leo Dion: Yes

Joannis Orlandos: There are

Leo Dion: But Joannis, you're our AI LLM. We're- I just prompted you. Could you

Leo Dion: please just give me the answer to

Leo Dion: that question?

Joannis Orlandos: Yeah. So what, [00:43:00] what I, what I like is I mean, for... This is one thing. I, I, I'm on the work group, so I read a lot of things that aren't out yet. I'm not sure who will be Swift 6.4, but Swift PM has been undergoing some major changes. In particular we're updating the build systems to Swift build.

Joannis Orlandos: Not to be confused with Swift build or Swift Build. They conveniently named all three projects the same,

Joannis Orlandos: but Swift

Joannis Orlandos: build command, so the Swift

Joannis Orlandos: PM build command,

Joannis Orlandos: will now use a new build system that's carried over from Xcode. that

Joannis Orlandos: will simplify,

Joannis Orlandos: That will fix... Thanks to that

Joannis Orlandos: change, there were a lot of bugs that were

Joannis Orlandos: found in Swift

Joannis Orlandos: PM. There were a lot of

Joannis Orlandos: bugs that were found in Xcode, and because they're now the same code base,

Joannis Orlandos: we

Joannis Orlandos: have the same bugs to

Joannis Orlandos: fix

Leo Dion: Yeah, that's, that's been an issue is how

Leo Dion: Swift Build works.

Joannis Orlandos: And differently as well, like something compiles under A but

Joannis Orlandos: not under

Leo Dion: more, but I've had issues with Swiftly 'cause, so Swiftly uses the

Leo Dion: actual Swift Build non-Xcode one, and I've run into

Leo Dion: [00:44:00] issues with that.

Joannis Orlandos: So we now have the Swift build build system instead of s- the, I don't know what the other one was called anymore. But you know how confusing

Joannis Orlandos: this is. It's great that they ch- didn't change the name. But the new build system will allow us to

Joannis Orlandos: have the

Joannis Orlandos: same bugs, a much

Joannis Orlandos: faster fix, fix cycle.

Joannis Orlandos: But more importantly, after this release, when this is a new standard, there are a lot of cool

Joannis Orlandos: changes coming to Swift PM and Xcode I'm assuming as well. There is,

Leo Dion: One question. Will they unify the way packages are resolved,

Leo Dion: And that whole issue

Joannis Orlandos: Yeah, but they will al- there are also s- there's also an interesting forms petrol proposal with a matching PR that drastically speeds up build resolution time and cache

Joannis Orlandos: folder sizes.

Leo Dion: Nice. Yeah, that'd be,

Joannis Orlandos: there are those... Because this is one build system now, this fix for reducing the cache, cache layout size by, I think, 60% and also improving compile times and all

Joannis Orlandos: of that, [00:45:00] and resolution times, those fixes were made for Linux, but they're coming to iOS.

Joannis Orlandos: So there's a lot to be

Joannis Orlandos: Yeah, there's a lot coming in that sense. Swift PM has long been our weakest link in the

Joannis Orlandos: Swift ecosystem, so getting that addressed, very happy to see it

Leo Dion: Anything else you can think of about Swift 6.4?

Leo Dion: Languagey

Joannis Orlandos: with what's there. I think the Swift, the Swift build system is the most important thing that's falling behind. Compile times are being improved on the compiler side or like, like the-- they're working on things like the,

Joannis Orlandos: This type is too, it took too long to resolve this expression type of stuff.

Joannis Orlandos: That's a, there's a lot

Joannis Orlandos: of work being put into those areas. Just

Joannis Orlandos: the friction of compile times, compiler getting confused,

Joannis Orlandos: Non-determinism, and they're not new features, but they're definitely more interesting

Leo Dion: That's, that's, I'm excited. I'm excited for next week to hear what comes out, but that's, that's gonna be great. Yanis, was there anything else you wanted to mention before you plug yourself?

Joannis Orlandos: Try Wendy, [00:46:00] of course.

Joannis Orlandos: Over there, my

Joannis Orlandos: logo

Joannis Orlandos: wendy.sh or wendy.dev

Leo Dion: Okay, great. And then where are you

Leo Dion: online?

Joannis Orlandos: I'm online on Joannis Orlandos or just Joannis

Joannis Orlandos: on GitHub. You can also find me in the Hummingbird Discord, maybe even the Vapor Discord

Leo Dion: Yep, and we'll put links to all of that. Thank you,

Leo Dion: Joannis,

Leo Dion: for coming back on. It'll be great.

Leo Dion: People can find me

Leo Dion: on leojdion@c.im on

Leo Dion: Mastodon, brightdigit.com,

Leo Dion: that's my company. Please consider becoming a member on Patreon.

Leo Dion: Thank you to folks like Steve Lipton who've been members. I really appreciate it.

Leo Dion: Episodes like this come out early, and I also talk a lot about different ideas and feedback about what to do next. So check that out.

Leo Dion: Yes, yes. And then if you're on YouTube, like and subscribe, I would really appreciate that. We'll be putting out a lot of episodes this summer with Dub Dub coming around.[00:47:00]

Leo Dion: And then lastly I wanted to mention that yeah, if you're listening to this on a podcast player, please p- give us a review in your podcast player. Thank you again, and we'll be talking next week. We'll be doing a special episode with Peter Witham on the keynote and this platform state of the union.

Leo Dion: So like I said, subscribe if you haven't already, and see everybody later. Bye.

Joannis Orlandos: Bye