4 ms·
I like js, but I won't sacrifice all the performance aspects in the sole name of productivity. Node(nor any GC lang) is simply not designed for embedded dev. I
by Apaec 8y ago
I like js, but I won't sacrifice all the performance aspects in the sole name of productivity.
Node(nor any GC lang) is simply not designed for embedded dev. I'll gladly switch to C or Rust that are designed for this kind of work.
- zokier 8y agoIt is debatable if any (mainstream) language is designed for embedded use. C was designed for "minicomputers" (aka small mainframes), not for embedded devices.
- e12e 8y ago"minicomputers" with 256kb ram and a cpu running at ~10mhz? How would you differentiate them from today's embedded devices? ;)
- pjmlp 8y agoModern embedded devices are more powerful that the computer I had on high school to play Defender of the Crown on the computer club. Amstrad PCW 1512 vs ESP32. If I could use high languages in MS-DOS when performance wasn't critical enough to warrant being written in Assembly, so can we in our modern embedded devices. The exception being micro-controllers like PICs.
- zokier 8y ago> How would you differentiate them from today's embedded devices? ;) Intent and usage type. Minicomputers were still "general-purpose" computers, expected to run varying user code while embedded devices are more or less fixed-function. From a more technical perspective, one difference is the expectation of (hard) real time control. While I have no doubt that some genius has put PDP-11 into industrial process control loop or something, generally UNIX (and C by extension) was not designed for real-time applications
- monocasa 8y agoThrowing out there that PDP-11/20s were borderline running the entire manufacturing sector for a decade or so there. Parts are still super expensive because some ancient steel mill or something will buy them up as soon as they're on ebay or what have you. But yeah, those weren't running UNIX for the most part, but probably RT-11 if their developers were sane.
- pjmlp 8y agoNot all embedded development is about PIC microcontrollers with 14KB Flash memory. http://www.astrobe.com/default.htm http://www.astrobe.com/default.htm https://www.wildernesslabs.co/ https://www.wildernesslabs.co/ https://www.ptc.com/en/products/developer-tools/perc https://www.ptc.com/en/products/developer-tools/perc http://www.microej.com/portfolio-item/28-kbyte-java-virtual-machine-supports-32-bit-mcus/ http://www.microej.com/portfolio-item/28-kbyte-java-virtual-... https://www.aicas.com/cms/ https://www.aicas.com/cms/ https://developer.android.com/things/hardware/ https://developer.android.com/things/hardware/ https://developer.microsoft.com/en-us/windows/iot https://developer.microsoft.com/en-us/windows/iot
- imtringued 8y agoIf you have 512MB RAM you can run the atom editor on your IoT device. At that point why would anyone even care about whether the software is designed for constrained systems?
- pjmlp 8y agoWell, some of the stuff I linked to works with KB, including Cortex-Mx class devices. Genereally speaking embedded devices is a very broad area, from a tiny PIC up to a couple of MBs. There are many factors at play and in many cases it is actually worthwhile to spend 5€ more per unit and get a better development experience. It is a decision per case basis and not really something that we can generalise as all embedded development is like X.