5 ms·
Disagree, the embedded world is still firmly routed in C and this world is larger than you realise. Consider that every electronic device you have has multiple
by TickleSteve 8y ago
Disagree, the embedded world is still firmly routed in C and this world is larger than you realise.
Consider that every electronic device you have has multiple microcontrollers inside running C code.
I would argue that if you want to get your code in the most peoples hands, you have to know C. Just looking around the (engineering) office I'm in at the devices using C:
- My PC.
- The router(s)
- The printer(s)
- the USB hubs.
- the mobiles and tablets
- the lights (yes).
- the A/C.
- The door entry system
- the microwave
- the desk phones.
- the monitors on my desk.
- The dishwasher
- The coffee machine
- The clock
The C world is much larger than most web people realise.
(the list goes on and on...)
- sacado2 8y agoI agree, there is more C code used in everyday life than anything else. But, regarding job offers, there's a bias, because this code tends to be very stable. The code in your microwave was written 10 years ago, and didn't change since then. OTOH, even a rather stable webapp like HN changed a lot in the meantime. Maybe the guy who worked on your microwave's code moved on to several other projects, and produced code for dozens of objects in your office, while the guy working on your company's website has been working fulltime on it since its creation. Web stuff is maintenance heavy, so even a small webapp requires a lot of human work to keep working in the long run. Add this to the fact that, although most companies, even small ones, need a website that is more than a static single webpage, and/or a way to manage their customer / provider databases, there are rather few companies producing electronic appliances, and unless you live in the right place, most programming jobs you'll find are in high-level stuff.
- rayiner 8y agoC is much bigger than just the “embedded” world/microcontrollers. iOS and Android are still C from the kernel up through the window system/graphics layer. The router software at the core of the Internet are written in C. Vulkan or whatever underlies your game console is in C, as is the GPU driver. (The game itself is probably C++.)
- pjmlp 8y agoActually besides the Linux kernel and the respective drivers, Android native parts are mostly written in C++, specially since after Treble reboot. Game consoles use mostly C++.
- pcwalton 8y agoIOKit and all drivers, which are most of the iOS kernel by lines of code, are C++. The windowing system of iOS and modern macOS, Core Animation, is a hybrid of Objective-C and C++. As pointed out by the sibling comment, core Android—everything Google wrote except kernel modules—is basically all C++. Vulkan is a C API (though might have a C++ implementation), but Metal is all Objective-C (with internals written in C++, I think?), and Direct3D is all COM-flavored C++.
- saagarjha 8y ago> Metal is all Objective-C (with internals written in C++, I think?) Most Metal programming (for shaders, at least) is done in C++, which it itself is written in.
- fiedzia 8y ago> - The router(s) > - The printer(s) > - the mobiles and tablets > ... All of those do contain some C, but the ratio of it to all the js/java/python/swift etc. on top of that (because this router has web, ui, mobile app and so on) is growing. > The C world is much larger than most web people realise. Perhaps. But it was a lot larger 10 or 20 years go, and C was wiped out as "the language" from many domains it used to occupy.
- TickleSteve 8y agoI'm afraid the embedded world now is probably 10 to 20 time the size it was then.... the number of devices in corporating electronics and therefore software has skyrocketed.
- fiedzia 8y agoIt is, but non-embedded grew many orders of magnitude above that, not just in terms of size but also in terms of different branches.
- tjoff 8y agoAnd the supply of non-embedded programmers also grew many orders of magnitude above that. The question was whether job opportunities for C was scarce. I would not agree that it is.