Odpovídáte na názor ke článku Řízení kotle Arduinem.
Arduino standardní knihovna vznikla dávno před rokem 2011, takže nové best practices v C++ a nové styly API tam prostě nejsou a nebudou. A vycházela ještě ze starších projektů Processing a Wiring.
Cílová skupina pro Arduino navíc nejsou profesionální embedded vývojáři. Primárně s ním začali umělci a akademici. Bez wifi (ESP přišlo až mnohem později). A i dnes je spousta kódu od bastířů, hardwerářů a lidí co napíšou co potřebují pro svůj problém (motto: scratch your own itch). Takže ten komentář "Dodělám později" není nic neobvyklého.
Už jsme na to narazili v diskuzi o Fish. Lidi nemají obecně motivaci přepisovat starý kód do nového stylu, pokud to neopraví něco zásadního. A staré styly API snadno nezměníte, protože by to rozbilo veškerý starý kód (dekádu trvající přechod Python 2 vs. 3 nám buď varováním).
Takže ano, ty vysokoúrovňové Arduino abstrakce neumí využít ten hardware naplno nebo neumožní libovolné skládání více asynchronních úloh (nebo neumí low power provoz).
Pokud jste si nikdy nevšiml, průmyslové embedded kontroléry se snaží multitaskingu vyhnout! Superloop styl s pollingem je velice obvyklý. Nikdy jste se nezamyslel nad významem Arduino základních metod setup a loop?
https://en.wikibooks.org/wiki/Embedded_Systems/Super_Loop_Architecture
Mimochodem, zrovna ten ESP wifi koprocesor polling umí, jen si ho musíte zakomponovat do smyčky sám. Arduino vysokoúrovňové API je úmyslně jednoduché (viz cílová skupina).
https://github.com/arduino/ArduinoCore-renesas/blob/main/libraries/WiFiS3/src/WiFi.cpp - je to jen práce se sériovou linkou.
Komunita jako taková pak umí napsat i kvalitní kód, třeba EtlCPP (https://www.etlcpp.com/) je implementace STL kontejnerů a algoritmů pro prostředí bez dynamické alokace.
Pro lidi více na profesionální straně spektra je tu pak třeba možnost použít PlatformIO (https://platformio.org/) a vyhnout se Arduino IDE úplně.
Takže až příště budete nadávat na API a kvalitu, zamyslete se nad tím co používáte. On je totiž rozdíl mezi hobby a průmyslovým "nářadím". Arduino tudíž ani nemůže přejít na profesionální a detalní API, protože by tím odřízlo svoji cílovou skupinu (a staré projekty).
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 601×
Přečteno 27 720×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×