In today's world, a truly embedded device implies an original firmware driving all the hardware on the device. These are not so common anymore. Most devices use existing OS platforms depending on the task. - time/resource critical? real time OSes - GUI/multimedia/telephony? Android - a platform for you app? Linux Dev tools are very dependent on the hardware platform. C is common, as is C++. This is also very vendor s…
Ask HN: Current state of programming embedded devices?
51–60 of 76 posts
Re: Ask HN: Current state of programming embedded devices?
#52Earlier quoted context omitted.
Why are you moving away from Qt?
Just for the record I'd never do an embedded gui in html. Well maybe not never, but not until it's common. Sounds like a nightmare of layers and compatibility issues. If you run into a problem, where do you even start to look? I've been doing straight opengl-es on my devices and like not being locked into a gui platform. It makes even more sense to do it this way when you've got external buttons as inputs, because yo…
Re: Ask HN: Current state of programming embedded devices?
#53I work at a company that's in the food industry. Currently, we're running Linux with Qt 4 on PowerPC. We're moving to a newer CPU (i.MX6 quad core). Freescale announced that they would continue manufacturing and supporting it for 15 years and it comes in industrial grade and consumer grade packaging depending on your needs. We're moving away from Qt for the GUI. HTML5 is the way of the future. ;) For people who are s…
Why are you moving away from Qt?
* It's easier to find people with JS skills than C++ skills
* It takes ages to build Qt and it's unreasonably hard to compile. Building the Linux kernel is far less painful.
* It takes ages to build a single Qt project and we have multiple architectures to deploy to (ppc, arm, x86).
* Remote connections are trivial. People only need a browser to connect remotely.
The people at the company who have been using it like it a lot. They just have to put together a few tags and boom there's your GUI.
The GUI has access to some system variables via WebSocket. We have a two-way binding abstraction so people don't have to think too much about events and such.
I wouldn't recommend HTML for a small company though. Better stick to Qt if you're a small group of competent C++ programmers.
Re: Ask HN: Current state of programming embedded devices?
#54Earlier quoted context omitted.
Just for the record I'd never do an embedded gui in html. Well maybe not never, but not until it's common. Sounds like a nightmare of layers and compatibility issues. If you run into a problem, where do you even start to look? I've been doing straight opengl-es on my devices and like not being locked into a gui platform. It makes even more sense to do it this way when you've got external buttons as inputs, because yo…
On an embedded device you're gonna be shipping the runtime environment (aka the browser) also. So the typical challenges of compatibility with HTML5/JS of many moving target platforms doesn't really exist.
Re: Ask HN: Current state of programming embedded devices?
#55The mainstream OS choices are: Wind River VxWorks, Green Hills Integrity, BlackBerry QNX, Linux, Android, and (god forbid) some variant of Windows. A great deal of embedded software is still done in C/C++. (Embedded is not a good environment for dynamic languages.)
Can I ask why you dislike dynamic languages in an embedded environment? Or why you think they are 'not good'?
But when I think of embedded devices, I'm looking across my desk at a Cisco router with an eight year old firmware, and an HP LaserJet I recall updating at least 12 years ago. I shudder at the idea of writing Ruby and having it run in production for 12 years.
This doesn't criticise "dynamic" languages directly - but I can only possibly think of C, and similar languages, which wouldn't suffer this issue. Hopefully Rust can improve this situation.
That said, I'm on the fence about Erlang in this situation.
Re: Ask HN: Current state of programming embedded devices?
#56Earlier quoted context omitted.
We used Linux/C so we didn't kill people. I'm not sure that C the best language for life critical high level applications... it's far too easy to shoot yourself in the foot.
What alternative would you recommend?
Check this out: http://tobyho.com/2008/03/30/how-safe-is-your-programming/
There also used to be a website that ranked programming languages according to various parameters (which is faster, which is safer) by asking visitors pairwise comparisons (Which is faster - Matlab or C?). I was going to link it but can't find it unfortunately. Anyway I'm pretty sure C would come second-last in the safety ranking, right above assembly.
Re: Ask HN: Current state of programming embedded devices?
#57Re: Ask HN: Current state of programming embedded devices?
#58Re: Ask HN: Current state of programming embedded devices?
#59Re: Ask HN: Current state of programming embedded devices?
#60The current state is that there is no real current state of programming on those devices. In the real embedded device field (things that need to be cheap but still need to fulfill mission critical tasks with more or less realtime requirements) you have choices between lots of CPU architectures, dozens of realtime OSes or directly going the bare metal route and you will mostly develop in C (or maybe a subset of C++ -…
> The current state is that there is no real current state of programming on those devices. Yes, that's what I suspected but I feel there _should_ be some advices/best practices.