3 ms·
There is also Micropython and there are a couple of javascriptish options as well. These are all leaky abstractions, none of these languages actually works exac
by jeremyjh 5y ago
There is also Micropython and there are a couple of javascriptish options as well. These are all leaky abstractions, none of these languages actually works exactly the same as the versions that run on full OSs with memory protection. As far as I know, none of it is actually used in industry and the workflow the author describes is the standard practice that is followed pretty much everywhere. Of course, Toit will also face an uphill battle to get any adoption in this market. I think they made a mistake using their own language instead of pretending it is Python or Javascript, even if this lets them shed a lot of baggage. Their platform is interesting though and does I think address some real challenges people would face when trying to get in-house IOT-type work done on ESP32.
- petre 5y agoOne can do more stuff with Tasmota and Berry language (which also looks like Python only with useful end statements) or Arduino, NodeMCU, MicroPython than what this platform offers at this time. I2C and SPI drivers, everybody has that. If one wants to do serious stuff they would use an appropriate RTOS and program it in C. MongooseOS does more than this if we're talking ESP32, also other devices, Javascript, C, C++, commercial support, cloud based OTA upgrades and integration with AWS, Azure, Google and IBM Watson IoT cloud services.
- elcritch 5y agoNot quite sure if I follow what you're saying. As in Tasmota/Berry do or do not do more than provide I2C/SPI? > If one wants to do serious stuff they would use an appropriate RTOS and program it in C. It's unfortunate, but still largely appears to be the case. I find C very time consuming to program, so I ported Nim to FreeRTOS [1]. It's _very_ nice being able to go from writing highly optimized ISR functions to high level JSON parsing in one language. Add in defaulting to memory safety but with no pause-the-world GC. I tried Rust but it seems more difficult to integrate into existing world RTOS'es, flashers, Swagger debuggers, etc. Though, I've been curious what running a WASM VM would be like? One could integrate any language: C++, C, Nim, Rust, etc. Would be interesting. > MongooseOS does more than this if we're talking ESP32, also other devices, Javascript, C, C++, commercial support, cloud based OTA upgrades and integration with AWS, Azure, Google and IBM Watson IoT cloud services. MongooseOS does seem interesting, but very targeting a niche market with prebuilt needs? For future RTOS'es I think ZephyrOS [2] has a lot of potential given it's now supported by NXP [3], TI, and others but is independent of any given (cloud) vendors or other IoT companies. Some might not like the CMake based build system, but in my view all the RTOS build systems are terrible in their own special way. 1: https://github.com/elcritch/nesper https://github.com/elcritch/nesper 2: https://www.zephyrproject.org/ https://www.zephyrproject.org/ 3: https://www.nxp.com/design/software/embedded-software/zephyr-os-small-open-source-rtos-for-iot:ZEPHYR-OS https://www.nxp.com/design/software/embedded-software/zephyr...
- petre 5y agoTasmota has drivers for almost anything you'd imagine. Adding I2C or OW sensors for instance is mostly plug and play. If you wired them correctly and used tge appropriate image they would just work. Berry is an addon scripting kanguage that runs on a VM. It's only present in the ESP32 dev branch. Zephyr is nice and well documented but support for ESP devices is quite lacking. For NXP devices it's great.
- rattray 5y agoWhat are the shortcomings of Espruino and QuickJS? http://www.espruino.com/ http://www.espruino.com/ https://bellard.org/quickjs/ https://bellard.org/quickjs/
- lioeters 5y agoIf the scope is limited to ESP32/ESP8266, it seems technically possible to run QuickJS on them. From Fabrice Bellard himself: > QuickJS should be able to run on the ESP32 platform as it is OS independent (as you said, quickjs-libc.c is not part of the engine). For simple scripts it should fit in the available RAM. https://www.freelists.org/post/quickjs-devel/quickjs-on-esp32,2 https://www.freelists.org/post/quickjs-devel/quickjs-on-esp3... --- Some attempts on GitHub: https://github.com/binzume/esp32quickjs https://github.com/binzume/esp32quickjs https://github.com/huming2207/quickjs-esp32 https://github.com/huming2207/quickjs-esp32 https://github.com/jack828/esp8266-quickjs https://github.com/jack828/esp8266-quickjs
- discreteevent 5y ago>I think they made a mistake using their own language It might make adoption harder but I'm glad they did because it looks like a really nice language.