Wpis z mikrobloga

@przegrywam_przez_miasto: jeśli chodzi o języki niskopoziomowe to myślę, że Rust ma przyszłość. Zobacz sobie takie Go, wydane w 2012, trochę czasu to zajęło, ale jest już całkiem popularne, przynajmniej ja widzę sporo ofert. Rust będzie jeszcze przez jakiś czas egzotycznym językiem, ale coraz więcej firm zaczyna z nim eksperymentować i z czasem będzie coraz więcej ofert.
@przegrywam_przez_miasto: język jak język ale dopóki silicon vendors będą dostarczać sdk i biblioteki tylko w C to nie będzie szybkiej adopcji. Co z tego że nawet jakaś dobra dusza doda support dla twojej platformy jak na produkcji tego nie użyjesz bo nie ma wsparcia. Miało być C++ embedded bo standard 11 i dalej by się dobrze na to nadał, miało STMicro coś w tym kierunku robić, lata minęły dalej jest C
@Bzdula: to ma wsparcie silicon vendora na okoliczność błędów i certyfikację safety critical? Szczerze wątpię ale może. Jak nie to dłubek wydłubał i tyle. Komercja ominie szerokim łukiem dokładnie tak jak piszę.
@DK13: no to rzeczywiście coś się ruszyło. Możnaby jakieś projekty 'do szafy' porobić a jak za te 10-15 lat okrzepnie to jakąś komercję. Trochę przesadzam ale takie jest podejście w safety critical - niech inni najpierw sprawdzą, my już mamy coś co działa.
@przegrywam_przez_miasto: Moim zdaniem zdecydowanie warto spróbować. W moim doświadczeniu w Rust dużo szybciej tworzy się firmware w porównaniu z C (z C++ nie mam doświadczenia). W mojej pracy robią embedded w Rust.

Główne zalety Rust nad C:
- Unikanie głupich błędów, błędów które wychodzą dopiero na produkcji po kilku miesiącach pracy.
- Dużo bardzo dobrej jakości bibliotek (tworzonych przez społeczność (np. do STM32 https://github.com/stm32-rs)

Główne wary Rust nad C:
- Szybko
@m504: pozwól, że spytam: u was w firmie devy nie mają problemów z brakiem jakichś funkcjonalności w tych libach do stm32? Pytam o sytuację, kiedy nie trzeba surowo operować na rejestrach, tylko dany lib jest zupełnie wystarczający i dojrzały (np. hal)?

Pytam dla własnej ciekawości, bo w Ruscie na STM32 to dopiero na poziomie włączania/wyłączania pinów jestem (pomijając diodę), więc zastanawiam się, kiedy ewentualnie trafię w ścianę, gdybym poszedł głębiej.
@devopsiarz: Mieliśmy kilka problemów z hal ale z czego mi wiadomo zostały poprawione w kolejnych wersjach. Tam gdzie były problemy to albo robiliśmy fork i potem MR albo używaliśmy obejścia z PAC.

Najwięcej (>90%) kodu unsafe używamy do odczytywania/modyfikowania statycznych struktur aby nie trzeba było ich alokować na stosie.

Największymi problemami z Rust w embedded moim zdaniem są:
- Zbyt szybko kończący się flash. Do tego przydaje się narzędzie https://github.com/RazrFalcon/cargo-bloat
-