Live data from Hacker News

Apple is looking for engineers to convert its code from C to Rust

jobs.apple.com

111–120 of 240 posts

Re: Apple is looking for engineers to convert its code from C to Rust

#111
post #64

Earlier quoted context omitted.

My last job in Canada the other Engineers got uppity about that with me. I studied a degree called "Software Engineering", that was 4 years with first class honors. It is accredited by, and I'm a member of the Australian Institute of Engineers. The only way for me to get accredited in Canada it 2 years of relevant work experience with an accredited Engineer in my field. There are no Software Engineers in Canada.

Not sure why this topic is getting downvoted to oblivion. The entire Google Canada workforce just had our titles changed from 'software engineer' to 'software developer' and were asked to update linkedin profiles to reflect this, as well.

Probably because it's _weird_.

Protected titles seem to have differing meanings in many places. Doctor is a pretty universally understood one; yet we throw around "Architect" pretty willy nilly and it's a protected title in many more countries than Canada.

Yet somehow Canada gets special consideration and other countries do not.

For context: I work for a French company, and we have many Architects despite that being a protected term. But we do not have Engineers in Canada (even if they have MSc CompSci engineering degrees).

Re: Apple is looking for engineers to convert its code from C to Rust

#112
post #111

Earlier quoted context omitted.

Not sure why this topic is getting downvoted to oblivion. The entire Google Canada workforce just had our titles changed from 'software engineer' to 'software developer' and were asked to update linkedin profiles to reflect this, as well.

Probably because it's _weird_. Protected titles seem to have differing meanings in many places. Doctor is a pretty universally understood one; yet we throw around "Architect" pretty willy nilly and it's a protected title in many more countries than Canada. Yet somehow Canada gets special consideration and other countries do not. For context: I work for a French company, and we have many Architects despite that being…

I have been told that this in fact is only really an issue in Quebec. I am not a lawyer, but, I don't believe it's an actual issue elsewhere in Canada.

Re: Apple is looking for engineers to convert its code from C to Rust

#113

Earlier quoted context omitted.

Uh, there's an entire software engineering program at the University of Waterloo: https://uwaterloo.ca/future-students/programs/software-engin...

Just throwing some info out there since I graduated from this exact program. We may graduate with an engineering degree, but we technically cannot use the word engineer in our title (in Canada) until we get our accreditations, which require a couple years working in Canada under a somebody else with their P.Eng license. The vast majority of us (definitely > 90% of my class) have moved to the US after graduation where…

> we technically cannot use the word engineer in our title

Just for completeness: it’s OK to use the title “B. Eng.”, which means you have a Bachelor’s in engineering, without implying anything about being a professional engineer.

Re: Apple is looking for engineers to convert its code from C to Rust

#114
post #92

Earlier quoted context omitted.

10tb sounds like a big scary number but when you think about it that's only 100 100gb ports. It should be no surprise to you that a company making their own switches and NICs, where every RPC is individually authenticated and possibly also encrypted with session keys specific to the peer has no need of vendor "acceleration". https://cloud.google.com/blog/products/networking/google-clo... https://cloud.google.com/secu…

10 Tbps is not a scary number? I am honestly still in awe of how such a small box can route an entire city’s worth of traffic. Different perspectives I suppose. Regarding your points: I am not sure I completely follow. Firstly, as far as I know, Google does not make its own switching or routing ASICs. Secondly, virtually all switching and routing ASICs are highly programmable. So if you need a custom protocol, you ca…

We obviously have very different perspectives on this issue. I think given Google's architecture, where a host handles millions of flows and they are all individually keyed, just the key management nightmare alone would be enough to discredit the idea of offloading crypto to an ASIC in a separate box.

Re: Apple is looking for engineers to convert its code from C to Rust

#115
post #97
post #46

Earlier quoted context omitted.

It said Rust and/or C though, and I imagine learning Rust is pretty easy compared to C from what I've seen.

Arguably not. Rust has a lot of things that C doesn't, like classes, lifetimes, and the borrow checker, which can be jarring to deal with for programmers used to other languages. And, unlike most other languages I've seen, you can't just sit down and write a "bad" Rust program and then refine your abilities; the compiler won't let you do the "bad" things, so you have to get everything write from the word go.

> Rust has a lot of things that C doesn't, like classes, lifetimes, and the borrow checker, which can be jarring to deal with for programmers used to other languages.

If you are a competent C programmer - the kind that "doesn't make" memory errors, you have to be manually keeping track of lifetimes and borrows.

Rust takes that mental effort and offloads it to the compiler.

Lifetimes and the borrow checker will likely be jarring for people coming from languages where you don't need to worry about memory allocation and ownership, but if you are coming from C or C++, you will likely find the borrow checker a relief (I did).

> the compiler won't let you do the "bad" things, so you have to get everything write from the word go.

And it's wonderful! Finding and fixing problems at compile time is the fastest and cheapest way to do it, and is also a productive way to refine your abilities.

Re: Apple is looking for engineers to convert its code from C to Rust

#116
post #49

Earlier quoted context omitted.

Need a degree from an accredited school in engineering + pass the engineering licensing requirements. In Ontario, where I live, that means passing an ethics exam + some years of work that is overseen by someone with a P.Eng. The challenge in software is usually the last part.

Would this mean an engineer in the US who moves to Canada would not be able to practice without getting work accreditation and a license?

They cannot practice, as in they cannot stamp drawings, or in other words take responsibility for things that require an engineer to take responsibility for. What it means in practice is that either they work in a sector that does not require stamping drawings, or a P.Eng. has to review their work and stamp their drawings.

Re: Apple is looking for engineers to convert its code from C to Rust

#117

Earlier quoted context omitted.

Uh, there's an entire software engineering program at the University of Waterloo: https://uwaterloo.ca/future-students/programs/software-engin...

Just throwing some info out there since I graduated from this exact program. We may graduate with an engineering degree, but we technically cannot use the word engineer in our title (in Canada) until we get our accreditations, which require a couple years working in Canada under a somebody else with their P.Eng license. The vast majority of us (definitely > 90% of my class) have moved to the US after graduation where…

Question for you then: Can you work under someone who's a P.Eng mechanical or civil engineer, and then get your own P.Eng license that way (as a software engineer)?

Re: Apple is looking for engineers to convert its code from C to Rust

#118

D now has an Ownership/Borrowing system implemented (though it is in its early stages). It will work with existing code, including DasBetterC code. You're able to incrementally adapt a program to O/B rather than rewrite it.

This is a 'mindshare' game. D had its chance, now Rust has its chance. Would have been cool though if D had caught on more back in the day. Re-invention seems to be impossible to avoid in the software world.

> D had its chance

What is stopping people to download a D compiler and write software in it right now?

Re: Apple is looking for engineers to convert its code from C to Rust

#119
post #75

Earlier quoted context omitted.

Reduce it how? By deploying expensive, unreliable, and hard-to-manage vendor crypto garbage? That is undoubtedly not a trade that a Google would make.

You reduce it by using custom routing ASICs that can handle orders of magnitude more traffic than a CPU with equal or lower power consumption. To put things into perspective: Cisco’s latest routing ASIC — the Cisco Silicon One — can handle 10.8 Tbps (in fixed mode). I’m sure Google and others have evaluated this, but it’s just kind of surprising that they opt to do per-packet processing in software. Disclaimer: I wri…

but getting from 0..custom-asic is waay more harder than you make it out :o) plus you have a _custom_ stack on top of it, which is not malleable at all. moreover, getting a vendor lockin is probably not such a good idea anyways.

giving credit where it is due, intel's role in development of latest pcie-4.0 and upcoming pcie-5.0 specs and ofcourse the latest cpu's make it less and less appealing to consider putting up with custom h/w + s/w imho

with dpdk for example, doing 10g/core with 64b packet sizes is considered pretty standard these days. and if you don't want to roll your own, you always have companies like 6wind to help you (and ofcourse they share the code as well)

facebook/google etc. have, by now, probably at least a decade of experience running their own sdn enabled networks. facebook even has fboss to commoditize switch from white-label manufacturers...

Re: Apple is looking for engineers to convert its code from C to Rust

#120

D now has an Ownership/Borrowing system implemented (though it is in its early stages). It will work with existing code, including DasBetterC code. You're able to incrementally adapt a program to O/B rather than rewrite it.

D has failed long ago. It tried to be like C and in doing so essentially became another C++ over time. Nobody is going to invest into D and that is proven by adoption. The benefit is just too small...

Rust does the right thing. It keeps C ABI compatibility but utterly throws everything else out of the window and starts fresh. If you have the need for Rust, go for it. Otherwise stick with C++. Simple as that. D has no place in this discussion.

Post reply on HN