Issue 1 - January 13th 2025

Share interesting bits from the internet that you’ve recently come across and explain what inspired you about them.

While implementing the template for the newsletter issue, we faced a decision: should we use Markdown or plain HTML that we would copy across issues? Then I recalled an interesting project I came across while reading about Zig, SuperMD. This project addresses some of the current challenges with Markdown in a compelling way, and I thought it would be great to share in the newsletter.

Current solutions for Markdown generally fall into two categories: extending Markdown or embedding layout details directly into the Markdown. However, SuperMD takes a different approach. It retains the Markdown syntax but allows for references to external content, which is then pulled into the Markdown—essentially inverting the dependencies.

It’s crazy what people can build for terminals. This library allows drawing plots:

There’s a new proposal for forcing the compiler to produce specialized versions of generic functions: [Pitch] Explicit Specialization - Pitches - Swift Forums

It reminded of this section in a different article: How Swift Achieved Dynamic Linking Where Rust Couldn't - Faultlore

The TL;DR is that a monomorphic compilation of generic methods produces a separate method for any possible value used by the code being compiled. Polymorphic generics do that at runtime by wrapping the geneic values in a container. However, monomorphic methods can be better optimized by the compiler, so even Swift compiles some generic methods monomorphically.

The proposal suggests to add a new annotation to force monomorphic compilation - particularly useful for when rhe geneeic values are type erased in which case the compiler optimizations can be limited without the proposed annotation.

TIL about these guidelines to migrate to Swift 6 and I think they are amazing:

https://www.swift.org/migration/documentation/migrationguide

Mozilla’s approach to bringing LLMs to the browser, Orbit:

Dominic from StackBlitz announced a WebAssembky course. With a Swift to WebAssembly compilation being possible these days, developers might want to explore the technology to add extensibility to their Swift apps.

I liked this post about Swift parameterized Testing. Swift Testing has been such a needed upgrade and I appreciate how the output and the UI is much clearer with it: Swift Parameterized Testing

New neat little theming library for SwiftUI: GitHub - alexanderwe/swiftui-theming: Effortless theming support in SwiftUI

I think it’d be worth mentioning the service context library that we started to use for dependency injection of dependencies that would otherwise need to be passed through very deep, like logger: GitHub - apple/swift-service-context: Minimal type-safe context propagation container

LiveView Native is getting more and more stable: LiveView Native Is Here!

Writing server-driven apps with SwiftUI templates sounds like an amazing alternative to other tools in the space like React Native.

Memory safety is considered for C++ but the agreement is far from a reality. The two most loved solutions resemble ideas from Rust and also new Swift 6 compiler capabilities.

A technology to build server-driven mobile apps:

I came across this tool to generate color palettes and looks pretty dope

This is a phenomenon that I experienced myself many times when configuring CI services, and even Tuist projects:

Tools should aim at minimising that effect

I found this article about homomorphic encryption and how Apple uses it quite interesting: Homomorphic Encryption in iOS 18

I liked this thread on some Swift language decisions: Ben Cohen: "Over on Blue Sky, @dimillian posted a screenshot …" - Mastodon

I agree with most what Ben mentions there.

1 Like

Mise not only improved the DX of installing tools, but it’s improving the security of the ecosystem. This is a quite good write-up around how that unfolded:

The type evolution Elixir is undertaking is fascinating to watch: Data evolution with set-theoretic types - Dashbit Blog