Arduino a knihovny

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #45 kdy: 08. 03. 2021, 01:54:38 »
Ono to bude souviset s tím, že Arduino původně vůbec neměla být vzdělávací platforma (a podle některých není ani dnes). Vzniklo to někdy kolem roku 2005 jako jednoduchej nástroj pro umělce, kteří si chtějí rozblikat nějakou svoji instalaci, aniž by se zbytečně museli něco učit.

The objective of the thesis was to make it easy for artists and designers to work with electronics, by abstracting away the often complicated details of electronics so they can focus on their own objectives.

https://arduinohistory.github.io/
Hm, to hodně vysvětluje. Vzdělávání v této oblasti by mělo být zaměřené na asynchronní, událostmi řízené aplikace. To je asi jen zbožné přání.


Re:Arduino a knihovny
« Odpověď #46 kdy: 08. 03. 2021, 08:10:15 »
Také to vysvětluje, proč se vyrojilo tolik "odborníků", co si myslí, že jsou embeďáci. :D

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #47 kdy: 08. 03. 2021, 11:23:29 »
Také to vysvětluje, proč se vyrojilo tolik "odborníků", co si myslí, že jsou embeďáci. :D
Nestačí umět používat setup/loop? :D

Re:Arduino a knihovny
« Odpověď #48 kdy: 08. 03. 2021, 19:11:58 »
Hm, to hodně vysvětluje. Vzdělávání v této oblasti by mělo být zaměřené na asynchronní, událostmi řízené aplikace. To je asi jen zbožné přání.
To by bylo moc pěkný téma na celodenní brainstorming+hackaton.

Prvně si vyjasnit, co myslím slovem "vzdělání" - u Arduina a podobných popularizačních projektů to imho není "naučit dobré základy pro seriozní vývoj v embedded", ale spíš "poskytnout děckám a jiným laikům co nejvíc cool quick win, abysme je vůbec k zájmu o techniku přitáhli" (a tohle se mu imho daří fantasticky, alespoň v mojí generaci, u mladších si tím nejsem jistej).

Udělat něco, co by poskytlo podobně nízkoprahový quick win a zároveň neučilo špatným návykům, to by byla fakt výzva. Protože bohužel v C ten asynchronní, událostmi řízený kód vyžaduje spoustu ne moc srozumitelné bižuterie, která by asi laiky dost odrazovala. Možná by šel zbastlit nějakej pěknej, čistej framework v Rustu nebo Go?

Byl by to super hackaton, úplně to vidím, hned bych do toho šel :)

Re:Arduino a knihovny
« Odpověď #49 kdy: 08. 03. 2021, 20:24:00 »
Prvně si vyjasnit, co myslím slovem "vzdělání" - u Arduina a podobných popularizačních projektů to imho není "naučit dobré základy pro seriozní vývoj v embedded", ale spíš "poskytnout děckám a jiným laikům co nejvíc cool quick win, abysme je vůbec k zájmu o techniku přitáhli" (a tohle se mu imho daří fantasticky, alespoň v mojí generaci, u mladších si tím nejsem jistej).

Mě by se líbilo to samé, ale pro programátory, tj. zprostředkovat pokročilejším vývojářům  specifika a různé možnosti v přístupu k embedded vývoji. Klidně to udělat na základě nějaké existující vývojové desky (nevím zda se na to hodí Arduino, ale třeba ten ESP nebo STM32 mi přijde vhodný určitě). Věřím že spousta programátorů si ráda pohraje nebo se jim to bude hodit v nějakém projektu.

Udělat něco, co by poskytlo podobně nízkoprahový quick win a zároveň neučilo špatným návykům, to by byla fakt výzva. Protože bohužel v C ten asynchronní, událostmi řízený kód vyžaduje spoustu ne moc srozumitelné bižuterie, která by asi laiky dost odrazovala. Možná by šel zbastlit nějakej pěknej, čistej framework v Rustu nebo Go?

Tak mě přijde, že by šel klidně zahrnout i docela vysokoúrovňový přístup, četl jsem o robotech programovaných v Smalltalku apod. Události, fronty, zpracování streamů, hlídání limitů - IMHO podle mě ideální pro řadu aplikací. A zkušenější programátoři se s tím už určitě setkali jinde, navíc je tu synergie se současným trendem mikroslužeb. To by bylo ideální téma na Arduino v2.0 nebo konkurenční projekt.


Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #50 kdy: 08. 03. 2021, 20:26:32 »
Prvně si vyjasnit, co myslím slovem "vzdělání" - u Arduina a podobných popularizačních projektů to imho není "naučit dobré základy pro seriozní vývoj v embedded", ale spíš "poskytnout děckám a jiným laikům co nejvíc cool quick win, abysme je vůbec k zájmu o techniku přitáhli" (a tohle se mu imho daří fantasticky, alespoň v mojí generaci, u mladších si tím nejsem jistej).
Na tom Svazarmu něco bylo.

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #51 kdy: 08. 03. 2021, 20:27:49 »
Možná by šel zbastlit nějakej pěknej, čistej framework v Rustu nebo Go?
Určitě šel, ale kdo to udělá?

Re:Arduino a knihovny
« Odpověď #52 kdy: 08. 03. 2021, 21:49:40 »
Mě by se líbilo to samé, ale pro programátory, tj. zprostředkovat pokročilejším vývojářům  specifika a různé možnosti v přístupu k embedded vývoji. Klidně to udělat na základě nějaké existující vývojové desky (nevím zda se na to hodí Arduino, ale třeba ten ESP nebo STM32 mi přijde vhodný určitě). Věřím že spousta programátorů si ráda pohraje nebo se jim to bude hodit v nějakém projektu.
Existují různé knížky pro Arduino, které jdou fakt krok za krokem přes různé experimenty. Většina asi jenom v angličtině, ale u nás máme úplně úžasný triptych od Martina Malého. Každá z knížek má jiné téma, takže si člověk musí dobře vybrat, co ho opravdu zajímá. Jsou k dispozici zdarma v PDF, ale silně bych doporučil je koupit papírové, protože si to autor fakt zaslouží, je to úžasně udělané. (EDIT: to nejdůležitější bych málem zapomněl: https://www.nic.cz/page/4205/v-edici-cznic-vychazi-kniha-data-cipy-procesory-autorem-je-znamy-publicista-martin-maly/ )

Tak mě přijde, že by šel klidně zahrnout i docela vysokoúrovňový přístup, četl jsem o robotech programovaných v Smalltalku apod. Události, fronty, zpracování streamů, hlídání limitů - IMHO podle mě ideální pro řadu aplikací. A zkušenější programátoři se s tím už určitě setkali jinde, navíc je tu synergie se současným trendem mikroslužeb. To by bylo ideální téma na Arduino v2.0 nebo konkurenční projekt.
To částečně existuje ve formě Micropythonu nebo Lua a mně osobně to moc nesedí. Něco tomu podle mě chybí. Mně by se líbil framework buď fakt výkonný (rustí zero-cost abstraction by mohly být nadějné) nebo naopak geniálně vysokoúrovňový (ten smalltalk je dobrej příklad, ale možná i nějaká spešl verze Erlangu by mohla být cool). Micropython mi přijde přesně v tom prostředku, který mi přijde nejmíň sexy (čistě subjektivní záležitost).

Určitě šel, ale kdo to udělá?
Tak chce to chytrej design, na to je potřeba někoho trochu zkušenějšího, s otevřenou myslí a rozhledem, a pak je to kupa rutinní práce, která by byla krásným zadáním diplomky. Takže minimálně tu druhou část bys mohl trochu pošťouchnout ty, ne? ;)
« Poslední změna: 08. 03. 2021, 21:51:24 od Mirek Prýmek »

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #53 kdy: 08. 03. 2021, 21:59:06 »
Rust by technicky šel (jen teda nevím, nakolik je vhodný pro začátečníky... vlastně vím...), ale to Go — cos zmiňoval výše — není dobrý nápad, ledaže by existovala nějaká verze s korutinami a kanály, ale bez GC (jo, vím o TinyGo, ale to není to pravé). Smalltalk by byl vhodný z didaktických důvodů.

Re:Arduino a knihovny
« Odpověď #54 kdy: 08. 03. 2021, 22:04:51 »
Rust by technicky šel (jen teda nevím, nakolik je vhodný pro začátečníky... vlastně vím...), ale to Go — cos zmiňoval výše — není dobrý nápad, ledaže by existovala nějaká verze s korutinami a kanály, ale bez GC (jo, vím o TinyGo, ale to není to pravé). Smalltalk by byl vhodný z didaktických důvodů.
Jo, já si taky myslím, že Rust by byl daleko vhodnější. "Pro začátečníky" - no ten framework by musel být natolik vysokoúrovňový, aby se nováček se samotným jazykem vůbec netrápil - podobně jako se v Arduino netrápí s C++...

K té druhé úplně vysokoúrovňové variantě taková kacířská myšlenka: spoustu lidí (včetně mě) hodně baví Factorio. Z informatickýho hlediska je to vlastně stavění masivně paralelního stroje. Ale z takových primitiv, která jsou naprosto srozumitelná a dají se skvěle spojovat do větších celků. Takže člověk úplně bezbolestně vytvoří něco, co by v C absolutně neměl šanci dát, i kdyby to byla funkčně ekvivalentní věc. Takhle nějak bych si to představoval. Kanály, eventy, transformace. Vůbec neřešit vlákna, coroutiny, procesy, paměť... Prostě jenom skládat srozumitelná primitiva ve funkční celek. To by byla nirvána :)

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #55 kdy: 08. 03. 2021, 22:07:50 »
Rust by technicky šel (jen teda nevím, nakolik je vhodný pro začátečníky... vlastně vím...), ale to Go — cos zmiňoval výše — není dobrý nápad, ledaže by existovala nějaká verze s korutinami a kanály, ale bez GC (jo, vím o TinyGo, ale to není to pravé). Smalltalk by byl vhodný z didaktických důvodů.
Jo, já si taky myslím, že Rust by byl daleko vhodnější. "Pro začátečníky" - no ten framework by musel být natolik vysokoúrovňový, aby se nováček se samotným jazykem vůbec netrápil - podobně jako se v Arduino netrápí s C++...
Na tohle má Go mnohem lepší syntax. Ale v tom Rustu by to asi taky šlo, je to o zvyku, blikat diodou se dá i s borrow checkerem :)

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #56 kdy: 08. 03. 2021, 22:12:45 »
Rust by technicky šel (jen teda nevím, nakolik je vhodný pro začátečníky... vlastně vím...), ale to Go — cos zmiňoval výše — není dobrý nápad, ledaže by existovala nějaká verze s korutinami a kanály, ale bez GC (jo, vím o TinyGo, ale to není to pravé). Smalltalk by byl vhodný z didaktických důvodů.
Takhle nějak bych si to představoval. Kanály, eventy, transformace. Vůbec neřešit vlákna, coroutiny, procesy, paměť...
To je easy, stačí CSP. Buď osekané Go, nebo třeba Smalltalk s kanálama (a odpovídající syntaxí) by byl na tohle super (trochu úlet, ale pozitivní).

Re:Arduino a knihovny
« Odpověď #57 kdy: 08. 03. 2021, 22:13:20 »
Na tohle má Go mnohem lepší syntax.
To urcite jo, ale plati se za to, zejo, nic neni zadarmo...

Ale v tom Rustu by to asi taky šlo, je to o zvyku, blikat diodou se dá i s borrow checkerem :)
Kdyby se vhodne navrhlo API, tak by se na vetsine mist na ten borrow checking vubec nemuselo narazit. Kdyz budes vetsinou predavat skalary (u toho blikani: cislo pinu a true/false) a slozitejsi veci jako zpracovani eventu budou z drtive vetsiny immutable struktury, neni problem.

Re:Arduino a knihovny
« Odpověď #58 kdy: 08. 03. 2021, 22:16:08 »
To je easy, stačí CSP. Buď osekané Go, nebo třeba Smalltalk s kanálama (a odpovídající syntaxí) by byl na tohle super (trochu úlet, ale pozitivní).
Jj, tak jsem to presne myslel - dat lidem CSP s peknym API a vhodnou sadou nastroju a lisacky jim vubec nerikat, ze je to CSP :)

Akorat teda treba u toho Rustu jsem si jeste neprostudoval, jakej je soucasnej stav prace s konkurenci. Nejaky kanaly jsem nekde z rychliku videl, ale jak je to pouzitelny netusim.

Idris

  • *****
  • 1 249
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #59 kdy: 08. 03. 2021, 22:18:53 »
Na tohle má Go mnohem lepší syntax.
To urcite jo, ale plati se za to, zejo, nic neni zadarmo...

Ale v tom Rustu by to asi taky šlo, je to o zvyku, blikat diodou se dá i s borrow checkerem :)
Kdyby se vhodne navrhlo API, tak by se na vetsine mist na ten borrow checking vubec nemuselo narazit. Kdyz budes vetsinou predavat skalary (u toho blikani: cislo pinu a true/false) a slozitejsi veci jako zpracovani eventu budou z drtive vetsiny immutable struktury, neni problem.
IMHO stačí slušný “select” (jako v Go, Rust to má tuším jako makro, kdyby byl nativní, není co řešit).