• We would like to remind our members that this is a privately owned, run and supported forum. You are here at the invitation and discretion of the owners. As such, rules and standards of conduct will be applied that help keep this forum functioning as the owners desire. These include, but are not limited to, removing content and even access to the forum.

    Please give yourself a refresher on the forum rules you agreed to follow when you signed up.

Embedded Programming in decline

MaVo

New here
As Fractal Audio with the Axe Fx is on the frontier when it comes to Embedded Programming, I personally have the impression, that it’s really tough to find more people with experience and even education in programming embedded controllers. It seems that most of the students focus on web and app programming, instead of getting through data sheets, memory maps and work with a hardware debugger and oscilloscope.

How’s everyone else thoughts on this topic?

I guess somehow the real experts have grown up in an era where the first PCs were affordable for home use and got comfortable with the evolution of the complexity of the controllers throughout the decades.
 

ksandvik

Veteran
It is indeed the case but those who go into embedded programming have a nice market for themselves compared with competing with all the React-Javascript programmers. Usually an EE or combined EE/CS degree is the best.

Funny, I started with embedded systems programming (even very early day MIDI in 1983) and ended up with computer and consumer/mobile UI/middleware work (also a short stunt with web backend programming during the crazy dot-com boom).
 

200man

Veteran
I fit the mold here...EE degree and have spent 28 years crafting embedded controls. I believe you are right though, web,cloud,network programmers do not understand this field so much. And a programmer is not an engineer which is a critical difference.
 

Promit

Inspired
I'm in games and it's been getting tough to find someone with serious systems knowledge and C programming background rather than a bunch of engines and frameworks nonsense. And that's a walk in the park compared to real embedded programming work so I can't imagine how dry that hiring pool must be. Maybe some of the kids coming out with computer engineering degrees? That basically means training someone from close to nothing, though.
Absolutely. It's getting very difficult to find embedded programmers. 99% of the resumes are Java, Perl, etc. which is useless to us.
Don't forget every third candidate who lists Node.js as if it's a skill.
 

MoJiggity

Inspired
Absolutely. It's getting very difficult to find embedded programmers. 99% of the resumes are Java, Perl, etc. which is useless to us.
Perl? Are you writing to us from 1998? On another note though, you can thank ARM for this. The proliferation of cheap Chinese SoCs and dev boards means that interpreted/JiTted languages run everywhere now.Ffor many applications the per-unit cost difference between a "just good enough" part and an off-the-shelf SoC is negligible when you factor in developer wages and the expandability afforded by the higher specs via firmware updates.

I'm in games and it's been getting tough to find someone with serious systems knowledge and C programming background rather than a bunch of engines and frameworks nonsense. And that's a walk in the park compared to real embedded programming work so I can't imagine how dry that hiring pool must be. Maybe some of the kids coming out with computer engineering degrees? That basically means training someone from close to nothing, though.

Don't forget every third candidate who lists Node.js as if it's a skill.
I didn't graduate college (barely) but the CS degree I almost got involved us learning architecture, writing MIPS and x86 assembly, implementing data structures in C89... fun times. I will say that probably half the people in these classes just didn't get pointers and still somehow managed to graduate, but it's not as though this stuff is some type of dark art. I'm 27 if that means anything.

To your comment about Node.js though... as much as I despite JS and never thought I'd see the rise of server-side JS, it does have its uses. C is an inherently unsafe language, and 95% of the software being written today is some boring line-of-business application or a hypebeast web app that some "founder" envisioned during an Ayahuasca retreat that his rich parents paid for. Running the same language on the client and the server allows you to share domain objects and business logic, and frameworks like React also give you server-side rendering for SEO and faster load times. Javascript and npm may blow chunks, but it's what we have and if you use Typescript it's not so terrible.

In your ideal world would we be writing microservices in C?
 

pima1234

Fractal Fanatic
Part of the problem are the companies themselves. Not looking for the best product to sell and ones which can be contintually improved upon. That's what's become all too rare.
 

lqdsnddist

Axe-Master
I totally went into the wrong fields in school and missed the whole wave of programming, IT et al., but it’s kind of fun to read a thread with folks in the know talking and realize I literally have zero idea about 95% of what people are talking about lol.

Guitars, music, acoustics, medicine, cycling, cooking... I know a thing or two....

This stuff though you guys are talking about, it’s just alphabet soup to me. Kind of fun in a way to realize how little you know sometimes lol


But I guess I can pick up that Node.js isn’t anything to brag about now ;)
 

unix-guy

Legend!
Perl is great for Sys Admin work.

I've written a lot of tools, data mungers, log scrapers, web backends, etc in Perl.

Hell, back in the day before in-car MP3 players or iPods, I built my own with a motherboard, a 4MB IDE "flash disk" (it plugged right into the IDE port), a fanless 80586 chip (aka, Pentium),a 10-key pad and 3-line "smart" LCD display running on a micro Linux distro (made for running a firewall) and Perl.

Anytime I need to sift through data, it is definitely my tool of choice - the regular expression engine is fantastic.
 

ksandvik

Veteran
Most modern languages have good regular expression libraries by now (Rust, Go, Scala et rest). Going back to embedded systems programming, you need very special skills to understand hardware restrictions and possibilities and tweak out the Nth degree of performance out from closed and tight systems and also make the code bullet-proof. And handle memory constraints and take care of memory allocations/frees -can't rely on garbage collection exactly. Most embedded systems have their own realtime OS as well so it' not exactly Linux. You need to code in C and assembly. Add DSP knowledge on top of this and suddenly the hiring pool is very small.
 

hippietim

Fractal Fanatic
When was there ever a large pool of coders with DSP chops? When was there ever a large pool of great C/C++ developers? Today’s node.js and web coder would have been Perl or VB or dBase or COBOL coders in the past depending on how far back you go. They’ve always been the majority of the developers.

JavaScript is a pathetic language. And things like Typescript are laughable attempts at buffing and polishing that turd. A number of choices would be astronomically better like C#, Java, or even Python.

But I’m glad most people don’t write software in C/C++. C is basically a portable assembler with some simplifying expressions that allows you to wreak havoc on yourself. C++ extends that and adds hundreds of clever ways to shoot yourself in the foot.

Since I joined our quantum computing initiative a few months ago I’m back to writing C++ code. This project uses all the STL stuff and the latest C++ 17 enhancements/treachery. Using that stuff can make things safer and easier but man is it hideous to look at.
 

MaVo

New here
Thanks for sharing your thoughts on this topic!

Seems like a lot of companies have trouble finding people, even Germany’s automotive OEMs in their race for autonomous driving.
Part of this decline is companies shifting the low level driver development to overseas like India, China or even Eastern Europe. I think a lot of knowledge is passing away.

But even if you want to dig in Embedded C there’s very little resources on this topic. At least in online courses or books. Kernighan & Ritchie C is still one of the more valuable resources. Does anyone have good recommendations on material? Besides this code examples from microcontroller manufacturer give a good entry, if provided.

Btw how much effort had to be made for the transfer from the Analog Devices Tiger Shark architecture to Texas Instruments Keystone? Was it manageable, because the DSP feature sets share a common base?
 

rushfan

Veteran
I graduated with a 4-year degree in computer science in 1987, but my C++ skills have fallen by the wayside since I became a network engineer 26 years ago. I programmed in it for 5 years prior to that and haven't used it since. I used it for PC application programming for a division of Aegon back then, and made a career change in 1993. I was also dabbling in networking before changing careers to it full time.
 

MoJiggity

Inspired
JavaScript is a pathetic language.
Sure is.

And things like Typescript are laughable attempts at buffing and polishing that turd.
I would rather live in a world with Typescript than without... calling it "laughable" is hyperbolic. Until WebAssembly gains traction we're stuck transpiling to JS and Typescript is pretty clearly the best choice insofar as it manages to hide most of the ugliness while still exposing the target language for the times where it's necessary.

A number of choices would be astronomically better like C#, Java, or even Python.
I've no idea how you can feel justified trashing Typescript then suggesting a language that doesn't have proper first-class functions or reified generics with a gigantic bloated de-facto framework (Spring). I know Python has its fans but in my book a language that's dynamically-typed, has no access modifiers and sports weird name-mangling means it's more suitable for scripting than heavyweight app development.

But I’m glad most people don’t write software in C/C++. C is basically a portable assembler with some simplifying expressions that allows you to wreak havoc on yourself. C++ extends that and adds hundreds of clever ways to shoot yourself in the foot.

Since I joined our quantum computing initiative a few months ago I’m back to writing C++ code. This project uses all the STL stuff and the latest C++ 17 enhancements/treachery. Using that stuff can make things safer and easier but man is it hideous to look at.
This much is true.
 

unix-guy

Legend!
This quote is for @unix-guy:

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
That's funny... that was probably written either by somebody who doesn't grok regexp or (more likely) somebody that really does ;)

A well created RE is a thing of beauty... But beauty is in the eye of the beholder :D
 

200man

Veteran
But I’m glad most people don’t write software in C/C++. C is basically a portable assembler with some simplifying expressions that allows you to wreak havoc on yourself...
If you are responsible, thoughtful and have a talent for design, then there is no problem.
...having said that, I see your point. ;)
 
Top Bottom