10 ms·
There are quite a few jobs available which are pure C. But obviously the industries/domains which require C are not the same as those which require Java/PHP/JS
by ElBarto 8y ago
There are quite a few jobs available which are pure C.
But obviously the industries/domains which require C are not the same as those which require Java/PHP/JS.
In embedded software no-one is going to use Java or PHP, like in mobile/web apps software no-one is going to use C. That being said, Objective C is a pure superset of C (which C++ isn't).
- pjmlp 8y ago> In embedded software no-one is going to use Java Actually they will. https://www.ptc.com/en/products/developer-tools/perc https://www.ptc.com/en/products/developer-tools/perc https://www.aicas.com/cms/en/JamaicaVM https://www.aicas.com/cms/en/JamaicaVM http://www.microej.com/ http://www.microej.com/ https://developer.android.com/things/ https://developer.android.com/things/ https://www.ricoh.com/esa/ https://www.ricoh.com/esa/ Just a small overview, as I don't feel like posting all links from everyone active in commercial Java compilers for embedded deployments.
- ElBarto 8y agoThese seem mostly application level (i.e. high level) software running on embedded systems. I wouldn't call developing on Android "embedded software". The point being that the choice of language is strongly influenced by the domain the software is developed for. I graduated 16 years ago and I have always got jobs which were pure C, on state-of-the-art products as well. That's still the way it is, plenty of jobs available.
- pjmlp 8y agoNoted that I explicitly mentioned Java compilers and not JVMs, some of those platforms do run bare metal and require just a couple of MBs. Not everyone is targeting PICs with 8KB Flash memory.
- Uberphallus 8y agoHonestly, efforts to run Java/Python/Lua/etc in embedded are more about retrofitting developers into that market than anything else, the fact that embedded devices get more and more powerful only enables that. Embedded isn't unaffected by Wirth's law.
- pjmlp 8y agoUS and French military are some of the entities using Java based embedded solutions for weapons control systems, they surely know a few things about hard embedded requirements.
- Uberphallus 8y agoIf we're talking about Aegis, they replaced UYKs with PCs and the realtime constraints are very soft (hundredths of milliseconds); that's hardly embedded, unless you mean embedded in a ship. And yeah, Java works there way better than the CMS-2 they force fed engineers with before. In any case, those systems are far from having the physical and technical constraints of the actual system on a missile, plane or satellite; simply put, a 50ms delay to know the speed of a remote object is acceptable, a 50ms delay to know the speed within said object isn't. To this day, and to the best of my knowledge, 95% of hard realtime logic is C, C++ and Ada or a combination of them, when not custom ASICs and FPGAs for low latency and high throughput tasks. If we're talking about other systems, I'd like to know about them.
- jki275 8y agoCMS-2 really is a horrid language. I'm surprised to hear they're using Java though, I figured they would go to C or C++.
- pjmlp 8y agoYes Aegis is one of the examples, among other ones reported throughout the years by Aonix, before they got bought by PTC. Apparently embedded now means PICs with 8 KB, while anything else more powerful than a late 80's Cray is not embedded anymore.
- jki275 8y agoAegis isn't embedded. Not even a little bit.
- 8y ago
- TickleSteve 8y agoYou can only afford to run Java on an embedded system when you are making limited-run devices, i.e. where the cost of the processor & RAM etc are negligible. For most embedded devices, this is not true. When you're paying for every device the code runs on... and that code wastes 80% of your cycles in abstractions and indirections then forces you to have 200% more RAM than the equivalent C code, that changes your mind. Saving a tiny amount on a processor adds up when the multiplier is (say) 1 million units.
- pjmlp 8y agoDepends if you only consider embedded PICs with 8KB or such then yes. Otherwise anything of ARM Cortex M class does have Java compilers available. Garmin devices use Monkey, which is their own Java like language. Ricoh and Xerox copiers use Java on OS stack for third party integration. Likewise Cisco conference call systems have their own Java flavour. Blu Ray players, Gemalto intelligent electricity meters, and plenty more of other examples are available.
- TickleSteve 8y agoThe same applies regardless of the processor (size). Less overhead will allow a cheaper device. Its worth noting that the java support on Cortex-Ms (Jazelle) is deprecated. If you're using a cortex-m class device, chance are you don't want to be running java on it. Note that I'm talking in general terms, there are always exceptions to the rule (such as for the rare sandboxed application).
- pjmlp 8y agoWhy are you talking about Jazelle?! There is this little feature of all commercial Java toolchains for embedded development called AOT compilation to native code.
- TickleSteve 8y agoof course aot exists, was just pointing out that java is not much of a use case in embedded sw, to the extent that once major features are now deprecated.
- varjag 8y agoI've seen an industrial switch running Node. Whenever it was collecting stats, the switching fabric was locking up.
- seabird 8y agoCan we hear a little more about this? It seems so far off the deep end that I'm morbidly curious about the reasoning behind it.
- varjag 8y agoIt was a managed industrial switch from a 2nd tier manufacturer that am not going to name. Was found out because it was breaking the fiber ring on site. My colleague opened it, hooked to a UART, accessed the system and found it's running a Node application for Web UI. On (self-refreshing) status page it was accessing exposed to userspace PHY registers to read out the stats and not in a clever way, blocking up the switch.