back
2 comments
C devs? No. Competent systems-level C devs - yes.

The embedded and systems space are hard and require special talent and knowledge. You can't just take some front-end React developer and get them writing quality systems C code in a weekend... people spend entire careers in that space, and the number of people interested in that work shrinks by the year (look at all developer surveys).

Incidentally, that's one of the reasons for which Rust is so successful in this space. Rust won't magically make you productive in a week-end, but the Rust compiler (with its error messages) is pedagogic enough that it is going to help you learn from your mistakes.

That's the extreme opposite of raw C (or raw JavaScript, etc.) in which it's very easy to believe that you have solved an issue, only to realize much later that you've been entirely misunderstanding some constructions of the language and (if your code somehow managed to land) you have made the entire product unstable or insecure without realizing it.

Of course, there are tradeoffs to each approach. But I believe that investing in Rust was a great initiative from Mozilla.

I have said this multiple times, but I am grateful for learning Rust as it helped shape the way I view memory ownership, and in the process made me a better developer.
But can you take some JavaEE backend developer, shove them into the compiler, and expect them to do well?

I think the language difference is a red herring.

It's certainly very interesting since Java was among the few high level languages that had unlimited access to C OS devs in theory, but it doesn't show this in practice.

I always felt they were hostile to understanding OSes and problems/solutions they provide and thereby limiting themselves to mostly junior C devs who didn't rock the boat by making real OS features for the JVM.

The percentage of developers that do C might be shrinking but the number of C developers surely has to be increasing. You can barely throw a rock in a major city without it landing on a developer nowadays.
Just because someone took a class in school, or did some online tutorial doesn't make them a C developer.

Most developers you see/hear/interact with are not C developers - rather they use higher level languages mostly to build web apps and mobile apps.

> C devs? No. Competent systems-level C devs - yes.

I don't think C is special in this regard.

It actually is. Managed languages don't suffer from many kinds of bugs that C/C++ and other unsafe languages do. Memory corruption and concurrency bugs can be devilishly hard to find in the latter.
How does embedded programming pay?
not really hard just harder than Java
Hard, just in a different way. I think most Systems developers would say building fancy wiz-bang web apps is hard.
I wouldn't call web programming is not hard, just very cumbersome at times.