Czy istnieje takowa? Widziałem np. ogłoszenia embedded Java, ale trudno mi to sobie wyobrazić dla czegokolwiek bardziej zaawansowanego i/lub wymagającego wysokiej niezawodności w czasie rzeczywistym.
Słowo "embedded" jest z gumy.
Jaki wyobrażasz sobie wspólny mianownik dla architektur od 64 bajtów RAM do gigabjata.
Po drugie nie każde "embedded" to czas rzeczywisty.
dwa przykłady, które przychodzą mi do głowy:
- chipy w kartach płatniczych
- Android
Teoretycznie Python, na raspberry pi. Polecam profil eh_org na instagramie, dużo contentu z tym związanego.
Tak jak pisał @AnyKtokolwiek słowo Embedded jest mocno nadużywane. Dla tworzących ogłoszenia działa to tak, że jeśli piszesz cokolwiek mającego w przyszłości działać na systemach wbudowanych, lub jeśli na Twoim biurku leży jakaś płytka, a Ty tworzysz na nią aplikację z jakimś interfejsem graficznym to już jesteś programistą embedded. Dokładnie tak samo było do niedawna z IoT, gdy był on bardzo modny - wystarczyło, by soft wykorzystywał bluetooth i już jest to IoT.
Dziś tak samo jest z AI. Wystarczy, że gdzieś zastosowano jakiś nieco bardziej skomplikowany algorytm lub coś z obliczeń miękkich i już można przeczytać, że "nasze oprogramowanie wykorzystuje sztuczną inteligencję"...
Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.
lxs napisał(a):
Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.
Potrafisz to bardziej uzasadnić niż wiarą?
lxs napisał(a):
Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.
tu już widziałem prędzej projekty GUI oparte o java script niż o C#. Masz też tam naklepane gui w C/C++ tyle co to zależy od urządzeni, raz może być qt drugi raz coś typu touchGFX dla cortex m-x.
revcorey napisał(a):
tu już widziałem prędzej projekty GUI oparte o java script niż o C#. Masz też tam naklepane gui w C/C++ tyle co to zależy od urządzeni, raz może być qt drugi raz coś typu touchGFX dla cortex m-x.
Ja widziałem trochę projektów gdzie GUI było napisane w C#, warstwa niższa w C. System operacyjny to Windows Embedded,
Sporo tego jest. Tutaj masz np. Betamax (vs C VHS) tamtych czasów -> https://en.m.wikipedia.org/wiki/Ada_(programming_language)
W przyszłości prawdopodobnie Rust ma szansę być taką alternatywą. Inna sprawa, że programiści C/C++ chyba dość niechętnie podchodzą do zmiany języka.
Java - dekodery, tunery etc. (Są chipy co implementują jvm)
C# - soft na hand heldy i wszystko z Windows embeded
Bascom - mikrokloce
VHDL/verilog - dla fpga/cpld
Trudno odnieść pożytek w tym wątku, bez FUNDAMENTALNEGO rozróżnienia: bare-metal / komputery z systemem operacyjnym (a potem pytanie o czas rzeczywisty czy inne uwarunkowania). Rozmiar RAM (wystarczy wykładnik z rzędu wielkości: 100 1k, 10k, 100k ... 3GB), posiadania zalążka koncepji pliku, w ogóle posiadanie UI ...
BTW straciłem z oczu dostępne detalicznie uP z JVM, rzeczywiście takie były, teraz to tylko na rynku hurtowym?
Dlatego koło każdej technologii zakreśliłem obszar bo nie wyobrażam sobie klienta VOD w VHDL ;) Co do bare metal JVM - nie śledzę obecnie tego sektora. Nawet jak Oracle namodzilo z licencjami to i tak w wielu tunerach etc. Siedzi Linux i jvm jakiś.
Node.js
Niestety nie żartuję.
Jeżeli kodzisz na platformę, która potrafi odpalić jakiś rozbudowany system jak Linuks albo Windows, to możesz kodować w większości cywilizowanych języków i nie ma w tym nic złego, jeżeli działa to poprawnie i z akceptowalną szybkością. Wiem o działających w świecie kombinacjach C# (Mono) + Linux, jak też o wymysłach na bazie Node.js. Moja teoria spiskowa o popularyzacji takich rozwiązań, to wypadkowa wzrostu mocy obliczeniowej w szeroko pojętych embedach oraz zbyt mała ilość programistów C/C++. Wszyscy ruszyli na Jave, Pythona i inne tego typu wygodniejsze języki, a embedy gdzieś tam zostały w swojej niszy. Tak więc teraz wystarczy posadzić przed komputerem z Linuksem tego przysłowiowego studenta, który jako tako potrafi kodzić w C#, kazać mu na Mono napisać aplikację, która realizuje dane zadanie, a potem gotową aplikację dać jedynie na chwilę bardziej ogarniętej osobie, która włączy gotową aplikację w obraz systemu dla urządzenia.
Podczas tej prezentacji autor wspomina, iż właściwa aplikacja w DVR, na którym wykonywał reverse engineering jest właśnie napisana w C#