Főoldal

"Mérnököt a mérnöktől"

A Schönherz Bázis összeköti az állást kereső és állást kínáló mérnököket.

CV küldés

Küldj önéletrajzot! Gyorsan, egyszerűen.
Megjegyzésbe írd be a pozíció nevét.
CV küldés

Iratkozz fel hírlevelünkre!

Hírek

Hogyan válasszuk ki az ideális programozási nyelvet az IoT projektekhez?
Hogyan válasszuk ki az ideális programozási nyelvet az IoT projektekhez?

A fizikai eszközök ezen folyamatosan növekvő hálózatában az Internet of Things kezd egyre reálisabbá és elérhetőbbé válni, a kevesebb emberi beavatkozást és több gépi eredményt is lehetővé tevő okos eszközökkel. Ma már teljes mértékben elképzelhető, hogy okos otthoni központok, viselhető eszközök, csatlakoztatott autók, az ipari Internet, a kiskereskedelem és még sok más használja az IoT megoldásokat a működéshez.

Az asztali alkalmazások, szerverek és mobil appok néhány olyan programozási nyelvre épülnek, melyek többé-kevésbé ugyanolyanok. Ez elhiteti velünk, hogy nincs különbség az okos eszközök között, hiszen mind olyanok, mint a miniszámítógépek. Az IoT egy háromsoros környezetből épül fel, mely az adatok generálásából, azok helyi átjárók vagy központok általi rendezéséből és a centralizált szerverekből áll, melyek egymástól földrajzilag távol helyezkednek el, és ahol az adat végül kiköt.

Egy kérdés merül fel: hogyan működnek? Milyen típusú kódolást használnak? És milyen típusú programozási nyelv szükséges? Egy specifikus programozási nyelv kiválasztása az IoT projektedhez legalább olyan komplex, mint a hardver platform kiválasztása. Az alábbi listában felsoroljuk azokat a nyelveket, melyek a legalkalmasabbak az IoT projektekhez.


Java

A kódra való tekintettel a Java a legismertebb programozási nyelv. Így senkit nem lep meg, hogy ez egy népszerű választás a mérnökök körében. Ez a választás kifejezetten magától értetődővé válik, ha azt nézzük, hogy a nyelv lehetővé teszi az úgynevezett „tedd össze egyszer, futtasd akárhol” elvet.

A Java egy dialektus, mely kódolási stratégiákat vett át a Mesa, C, C++ nyelvektől, és még sok másiktól. Mi több, egy kiemelkedő funkciója képessé teszi a számítógépes hibaelhárításra, és utána egy Java Virtual Machine-en (JVM) keresztül egy chipre áthelyezésre.

Ez maga után vonja, hogy a kód néhány jobb helyen fut, ahol a JVM-ek rendszeresen előfordulnak, mint a mobiltelefonok és a szerverek. Bárhogy legyen is, ebben az esetben ugyancsak futtatható lesz a legkisebb gépeken is.


C

Ahogy talán magad is elmélkedtél, a „dolgok” jelentős hányada nem fog létezni egy olyan alapvető kiemelkedő programozási nyelv nélkül, mint például a C. Lényegében ez a kezdőszakasz, és a legismertebb nyelv a telepített eszközök tekintetében.

A nyelvet hasznosították már IoT felületeknél, mint az Arduino, és gyakran használják annak ellenére, hogy más nyelvek jelentősen jobb eredményt is elérhetnek.


C++

A C-nek nincs meg ugyanaz a preprocesszoros előkészítési intenzitása, mint a C++-nak. Ebből adódóan használják a C preprocesszoraként, hogy lehetővé tegyék számára több nyelv futtatását. Könnyű vele egy rakás hibát elkövetni, és mégis a C++-t szeretik a legjobban a szoftvertervezők.

Mivel a széleskörben elterjedt Linux kiterjeszthető, mint telepített programozási nyelv, így javítja az adatok rétegeit és a visszaverődéseket. Optimális a mérnökök számára, akik ki szeretnék terjeszteni a kódjukat IoT célokra. Továbbá a C++ segít, hogy kiaknázz több programozási nyelvet is, mint például a C#, Java és Python.


Python

Néhány évvel ezelőtt senki nem gondolta volna, hogy a Python-t majd használni fogják az IoT központi részén a webes applikációk körül. Akárhogy is, nagy változásokon ment keresztül, mivel mind megérteni, mind használni egyszerű.

Annak ellenére, hogy a Python egy szkript nyelvként kezdte kódok összerakására, az egyik alapvető nyelvvé fejlődött és rengeteg fejlesztő használja. És mivel a kis eszközöknek korlátolt számítási kapacitása és memóriája van, így a fejlesztőknek találékonynak kell lenniük. Később még jelentősen fejlődött a behelyezett eszközök belsejében, míg a fejlesztőknek lehetővé tette érthető információbányászati eredményeket közvetítő appok létrehozását.

Manapság az ismert mikrokontrollerek túlnyomó többsége Pythont használ. Még kicsi táblák is léteznek, mint a MicroPython, mely csak egy néhány négyzetcentiméternyi programozói csomag. Ha valami király dolgot akarnál létrehozni az Alexához, akkor nem árt felfrissíteni a Python ismereteidet.


PHP

Ha a PHP-t fontolgatod, akkor inkább webhhelymodelleket és webnaplókat képzelj el vele, ne IoT-t. Bármi is legyen a helyzet, az igaz, hogy sok fejlesztő vegyíti bele a PHP kódot a projektbe. Ez egyfajta tagadhatatlan eltökéltség, hiszen a kód alapvető célja a mikroszolgáltatások egyensúlyozása lenne a szerveren.

A Raspberry Pi mérnökei jelenleg LAMP-et használnak Linux felett, így a legalantasabbnak tekintett valamit egy all-out webszerverré alakítják. Egy chipre LAMP stacket helyezve kevésbé lesz megerőltető létrehozni, mivel a Raspberry Pi-nek van elég extra ciklusa. Emellett minden, az elmúlt évtizedek folyamán létrehozott szerveroldali kód elhelyezhető egy egyszerű szenzoron.


JavaScript

Ma minden HTML és internetböngésző JavaScriptet használ. Annak ellenére, hogy sok nyelvtől átvett ezt-azt, mint a Python és a C, azt biztosan állíthatjuk, hogy egy szkript nyelv, mely tartalmaz más nyelvi könyvtárakat is, például Javaból.

Ez sokat tesz azért, hogy az eszközök interoperábilisek lehessenek, és a széleskörű felhasználása segít kevésbé nagy igényeket támasztó dolgokat létrehozni. Az IoT haladás híres ága a Node.js, a munka jelentős része központok és szerverek köré van építve, hogy összegyűjtsük és tároljuk az információt.

Az Espruino és a Tessel két mikrokontroller, melyek már a kezdetektől JavaScriptet használnak. Láthatjuk, hogy a JavaScript tényleg mindenütt ott van a webes alkalmazásoktól a weboldalakig, és így a webfejlesztők az IoT területére is bemerészkedhetnek anélkül, hogy egy új programozási nyelvet tanulnának.


GO

A Go egy Google által létrehozott programozási nyelv, mely rengeteg hasonlóságot mutat a C-hez. Ami a legjobb benne, hogy megalapozottabb, mint a C, és megengedi a különféle eszközök együttműködését információk küldéséhez és fogadásához számos csatornán, a teljes útvonalon.

Ámbár létezik egy kritikus hibája; nagy valószínűséggel fordulnak elő információs hibák, ha a kódolási szakasz folyamán nem szentelnek neki elég figyelmet. De ha az elkövetkező időszakban ütemesen fejlődik a nyelv, akkor ez inkább előbb, mint utóbb fog megváltozni.


Rust

Csakúgy, mint a Google Go-ja, a Mozilla is egy open-source programozási nyelvre épül, név szerint a Rust-ra. Gyakran tekintenek rá úgy, mint a Go egy rendkívüli imitátorára, de tud néhány dolgot, mely kivitelezhetetlen lenne az előbbivel.

A Rust képes különböző csatornák között következetesen adatokat megosztani. Egy hátránya van viszont, ahhoz, hogy megfelelően működjön, engedélyezni kell a processzornak a szimultán kezelést.


Swift

A Quick az általánosan használt nyelv iOS alkalmazások írásakor, így, ha véletlen felmerül az igény, hogy az iPhone vagy az iPad rá tudjon csatlakozni az otthoni rendszerre, akkor a Swift a megoldás. Persze az Objective-C névre hallgató elődje is hasonlóan fog működni.

Ahogy a Swift egyre kiemelkedőbbé válik az IoT célokra alkalmas programozási nyelvek közül, az Apple-nek muszáj utat törnie az otthoni IoT világában. A szervezet egy ideje keretrendszereket és könyvtárakat épít, amik elvégzik a munka nagy részét, így a mérnököknek elég a feladatra összpontosítani, a HomeKit stage majd elvégzi az egyeztetést.


Parasail

Ha olyan szituációba kerülsz, hogy az IoT alkalmazásodnak olyan nyelvre van szüksége, mely támogatja a párhuzamos feldolgozást, akkor a Parasail egy megfelelő választás. De létfontosságú, hogy a fejlesztő felfogja a különbséget a szimultán és a párhuzamos feldolgozású processzorok között.

Ehhez hasonlítható mondatstruktúrát láthatunk a C#, Java vagy Python-hoz hasonló programozási nyelvekben is, de ha a projektedben szükséged van párhuzamos végrehajtásra, akkor a Parasail a legjobb megoldás.


B#

A B# főleg kis alkalmazásokhoz lett kifejlesztve, így használható a fejlesztés különböző szakaszaiban, amikor B#-t támogató Embedded Virtual Machine-t (EVM) használunk.

Abban az esetben, ha nem szeretnél semmi hatalmasat alkotni, a B# a legjobb választás a lényegre törő IoT applikációkhoz.


Assembly

Annak ellenére, hogy nem a legnépszerűbb programozási nyelv az iparban, az Assembly egy remek választás, ha kisméretű IoT alkalmazásokra van szükséged.

Viszont mivel alacsony szintű nyelv, ne akarj vele sok dolgot csinálni, mert a képességei jelentéktelenek.


Konklúzió

A kérdés továbbra is fennáll: melyik a legjobb programozási nyelv IoT fejlesztéshez? Kinek van meg a saját szerepe és befolyása ezen a téren? Azok, melyek kiemelkednek a sorból támogatják az alkalmazások végfelhasználását is. A jelenlegi tényállásban a Java vezeti a trendet, de ez idővel változhat. Amikor meghatározod a nyelvet az IoT projekthez, két tényező befolyásolja ezt igazán: a személyes preferencia és a projekt specifikus igényei. Hogy megtaláljuk a tökéletes programozási nyelvet, elengedhetetlen a jelenlegi piaci trendek megértése, és a szolgáltatások ehhez mért megválasztása.


(Forrás)


***

Ha Te is kreatív, kihívásokkal teli mérnök állást keresel minõségi munkáltatónál, jó helyen jársz, mert a Schönherz Bázis épp azért jött létre, hogy Neked segítsen.
Gyere, nézz szét aktuális állásaink között!