Thankfully, Apple is starting to hire Rust developers as well as AWS.
The tide is changing, one day we will see some Rust code in iOS/macOS so that these issues are a thing of the past.
Thankfully, Apple is starting to hire Rust developers as well as AWS.
The tide is changing, one day we will see some Rust code in iOS/macOS so that these issues are a thing of the past.
It seems much more likely that they will use Swift in some form.
> Swift is a successor to both the C and Objective-C languages.
https://developer.apple.com/swift
> Swift is intended as a replacement for C-based languages (C, C++, and Objective-C).
There are people that believe systems programming languages in an OS kernel is doable with some form of GC, and then there those that will never change their mind.
https://www.f-secure.com/en/consulting/foundry/usb-armory
https://blog.arduino.cc/2019/08/23/tinygo-on-arduino/
https://github.com/mit-pdos/biscuit
https://github.com/ycoroneos/G.E.R.T
By the way, NeXTSTEP drivers were written in Objective-C, and the new userspace framework, DriverKit, is an homage to the NeXTSTEP driver API.
https://www.nextop.de/NeXTstep_3.3_Developer_Documentation/O...
That being said, ARC may faire much better than a tracing GC, particularly in latency variance, throughput variance, and mean heap usage.
Though, I think we're best off moving off of hypervisors and onto 4th generation microkernels with isolation similar to AIX LPARs / Solaris Containers. After all, a hypervisor is essentially a microkernel that's forced to use hardware traps/faults plus hardware emulation for its syscall interface (plus upcalls for performance, which use a calling convention much closer to traditional syscalls). There are stability, security, and performance advantages to throwing out all of that hardware emulation code, moving everything to upcalls, and getting rid of the second (guest OS) kernel running between the application and the hardware. If you push most of the system functionality out of kernel space, then rewriting some of the less performance-critical components in a language with ARC or tracing GC starts to make more sense.
Biscuit was a research project whose goal was to get the thesis done, when the thesis was done, no more effort was spent.
Bing was powered by Midori for the Asian countries for part of its life, and Joe Duffy has stated in the RustConf keynote that Windows Dev team was a reason why Midori faced so much internal resistance, even when they were proven wrong.
Before Google was willing to put the money into JavaScript many would assert that JavaScript would be worthless to anything besides form validation and DHTML.
Mainframes to this day still make use of their own systems programming languages, way safer than C, and you don't see people crying that their kernels are too slow.
In fact, Unisys uses this fact to sell ClearPath MCP to customers that value security above anything else, Fort Knox style.
There is reason to believe they will adapt it.
That being said, ARC is probably easier to get to work well in-kernel vs. tracing garbage collection. There's a performance cost to all of those reference count updates, but at least the variance is extremely low.
There's so much low-hanging fruit to pick in that code and switching to Rust is like saying that we should go to Mars to pick fruit instead.