Hacker News new | ask | show | jobs
by frankjr 983 days ago
Is there similar effort from Apple?
3 comments

Apparently people keep forgetting Swift exists.

"CppNow 2023:Introducing a Memory-Safe Successor Language in Large C++ Code Bases"

https://www.youtube.com/watch?v=lgivCGdmFrw

Swift is a different class than rust though.
Not for Apple,

> Swift was designed from the outset to be safer than C-based languages, and eliminates entire classes of unsafe code.

-- https://www.swift.org/about/

> Swift is a successor to the C, C++, and Objective-C languages

-- https://developer.apple.com/swift/

Sorry, what does swift have to do with this?
Swift is Apple's answer to replacing C derived languages, they don't need Rust.

> Swift is a successor to the C, C++, and Objective-C languages -- https://developer.apple.com/swift/

They also mention plans for kernel and firmware targets on that talk.

I don't believe Apple has embraced Rust the same way Google has. Particularly their firmware is still very based on C.
Specifically a dialect called Firebloom (supposedly anyway)

https://saaramar.github.io/iBoot_firebloom/

Possible related to the ‘-fbounds-safety’ feature they’ve proposed for Clang

https://discourse.llvm.org/t/rfc-enforcing-bounds-safety-in-...

Firebloom == `-fbounds-safety`
Firebloom is more of a custom compiler/toolchain than a dialect of C—apart from annotations to relate pointer+length parameters, etc., it is still just C.
Reminds me of this blurb from djb's qmail security guarantee [0]:

> I've mostly given up on the standard C library. Many of its facilities, particularly stdio, seem designed to encourage bugs. A big chunk of qmail is stolen from a basic C library that I've been developing for several years for a variety of applications. The stralloc concept and getln() make it very easy to avoid buffer overruns, memory leaks, and artificial line length limits.

[0]: http://cr.yp.to/qmail/guarantee.html

I mean, the annotations are supposed to be simple C attributes wrapped in macros, so even them are just C
The other commenter mentioning Firebloom is correct that some firmware (iBoot family) has been using C w/ Firebloom extensions for a while. Parts of SEPOS also use Swift, which would make more sense as a non-C language than Rust, from Apple's perspective at least.
What benefit would Apple get from this? They want you all in on an ecosystem they control.

EDIT: Thought OP was talking about writing iOS apps using Rust.

Apple does use Rust, though from job postings, we can infer it's more like network services than firmware.

Regardless though, I don't see how the implementation language of your firmware is locking you into a specific ecosystem, so this criticism seems misguided to me.