Posted by DASD 2 days ago
https://faultlore.com/blah/swift-abi/ (written by a core Rust developer)
[1] apart from the basic/universal C one, which prevents exposing any useful Rust semantics over the interface
Rust is also just a more complex language. I’m not convinced the benefits would have been worth it.
Swift is also interoperable with different versions of itself courtesy of the Swift stable ABI (Application Binary Interface)[0], which they invested a significant amount of time into at the expense of adding other new features to the language, which have come along later.
Rust offers a different approach: recompile everything and static linking.
You missed Java as well.
The gap between the two languages is quite small, it just makes me wish Apple was also all-in on Rust
They have further and much more significant changes that I think might have recently landed in the development version. That should make an even bigger difference. But it’s not in a released version yet.
And yes, none of us like that one part of Swift. Especially the DRASTIC difference compared to objective-C which really only checked syntax and little else.
It’s still probably my favorite language right now though I don’t get to write in it much.
If somebody is mulling over Rust but finds it too difficult to grasp, they could start off with Swift first and then move over to Rust.
One of the main advantages of Rust is a more developed and thriving ecosystem.
The “Rust” branding, to this rando, implies corrosion, oxidation, decay, regardless of the true origin of the name. Swift is “quick”, Java is “caffeine”, Rust is something I need kerosene for.
I use it for making user-facing desktop applications, to name one example.
Many features that get discussed as being Swift/Rust, trace back to one of those languages.
Being more ergonomic is relevant enough for increasing language adoption, that possible improvements are now on Rust roadmap.
Rust 2026 roadmap has language ergonomics on it for a reason.
That said, outside Apple ecosystem you probably better with Rust, or if one has no GC issues, OCaml, Haskell, F#, Scala, C#.
It worries me. I hope Codex adoption picks up there.
Vello has been a big inspiration and source of knowledge for my own webgpu text renderer, thank you for that!
Just strings or rendering strings?
If the latter, who are the other members of the club?
There's also, very relevantly, the DWriteCore work from Microsoft. My understanding is that there's been some talk of open sourcing that, but it's still proprietary.
There are other things that count as high performance text in memory safe languages, for example implementations in Go, but in general those are not a good candidate to replace C and C++ in environments like operating systems and browsers.
It looks like this hinter will be used only in rendering PDFs, because that's where they test the performance.
https://www.dell.com/en-us/shop/dell-laptops/dell-15-laptop/...
It is very, very common. Just not in the Mac world.
1920 x 1080 51.89%
2560 x 1440 21.20%
3840 x 2160 5.00%
To me, it's more about what I'm used to. I have a perfectly fine several years-old monitor, so why should I throw it away?
Other way around, most Mac software is not tested how it behaves on inferior external monitors.
Mac OS X 10.4 tried the same thing (Quartz2D scaling) and it was so damn difficult that they threw it out and went for simple 1x/2x/3x auto-scaling. Even 3x was a challenge because of pixel alignment.
>Have you ever tried to write HiDPI-aware Win32 code?
I haven't. I don't think there's any reason to, I'm more of a wxwidgets fan. I don't think even Microsoft makes applications in raw WinAPI.
>I suggest enabling HiDPI in Control Panel sometimes and marveling at how many Win32 apps just don’t notice and draw as postage stamps.
The default behaviour of a DPI-unaware app in Windows is to scale everything by the scale factor. Which - yes, looks completely awful and blurry, but that's not what you describe.
Edit: Guess it depends on the app
Whether good letter shapes is more legible or crisper text is more legible is basically subjective. In the 2000s before HiDPI became popular different people really thought one was more legible than the other and vice versa. HiDPI made this basically moot.
If you work with text and fine UI elements, do yourself a favour and get proper tools for the job. Get an ergonomic mouse and a good keyboard while you're at it. In every other field professionals use high quality tools to do their jobs, IT shouldn't be any different.
A plumber has equipment worth tens of thousands of dollars, while IT professionals think it's outrageous to pay a few hundred for equipment which is undeniably an improvement.
But I personally reviewed every line that shipped and was absolutely insufferable about testing.