Hirdetés
. Hirdetés

Alkalmazásfejlesztés a 21. században

|

Új technológiák, új trendek, új irányok.

Hirdetés

forráskód
forráskód

Talán semmi sem jobb indikátora a programozók iránti kereslet változásának a Dice-nál; az észak-amerikai IT állások gyűjtőhelye az egyik legöregebb és legkedveltebb ilyen jellegű szolgáltatás az interneten. 2010-ben valamivel több mint 48 ezer munkalehetőséget tartalmazott, ami a tavalyi év végére, dacára az újabb gazdasági problémáknak, már bőven meghaladta a 83 ezres darabszámot. De nem csak mennyiségben, hanem típusát tekintve is jól jelzi az éppen aktuális trendeket. A Dice-on leginkább Ruby és JavaScript képességekkel bírók iránt van igény, illetve leginkább mobilkörnyezetekbe keresnek fejlesztőket. E két programnyelv éves szinten 67 és 53 százalékos munkahelykínálat-növekedést produkált az elmúlt két évben.

Természetesen van élet a fentieken túl is, még a számítástechnikai mércével nézve bőven öregnek mondható C++ programozók iránt is van kereslet, ahogy a Python fejlesztők szintén válogathatnak az állások között. Voltaképp szinte minden, kicsit is kurrens programnyelv kínál elhelyezkedési lehetőségeket a piacon, ennek ellenére nem csak, hogy a főbb környezetek fejlődése nem állt meg, de folyamatosan újabb és újabb programozási nyelvek bukkannak fel, melyekhez értelemszerűen kevesen értenek.

Mit érdemes figyelembe venni a képzésünk szempontjából, mik az uralkodó trendek - cikkünk ezekre a kérdésekre keresi a választ, és noha teljes képet terjedelmi korlátai miatt nem adhat, igyekszünk áttekinteni a főbb irányvonalakat. Közben olyan, valóban 21. századi problémákat is megvizsgálunk, mint a sávszélesség-bőség látszólagos mivolta, az energiaigények elszabadulása, a párhuzamos programozás és a grafikus processzor munkára fogása.

A programozás Java
Az idők és az eszközök változnak, amihez természetesen a programozóknak igazodniuk kell. Részben persze rajtuk múlik maga a változás is, mely programnyelveket „kapja fel” a fejlesztői közösség, ugyanakkor általános jelenségek, mint például a platformfüggetlenség, szintén megfigyelhetők a fejlődésben. Az egyik, kibontakozó trend szerint a JVM többé nem csupán a Java-é, a JVM-től függő nyelvek listája hosszú és egyre nő. Néhány példa: a Ruby-t favorizálók kiemelik a JRuby jobb teljesítményét komoly terhelés alatt, a Scala és Cloture a Java-nál gyorsabb kód írását teszi lehetővé - mindezt Java Virtual Machine keretek között.

Eközben a JavaScriptet használók tábora is változik: már nem csak a JavaScript kóderek alkalmazzák előszeretettel. Még a fenti listánál is hosszabbra nyúlik azoknak a nyelveknek a sora, amik valamilyen szinten JavaScriptre támaszkodnak. Vegyük például a Google Web Toolkitet: a GWT segítségével anélkül írható JavaScript kód, hogy Java applet plug-int vagy JVM-et kellene telepíteni kliensszinten. A böngészőbe integrált JavaScript-képesség gépfüggetlenné teszi a fejlesztést, a Google compilere JavaScriptté alakítja azt a forrást, ami eredetileg más környezetben készült, így biztosítva egységességet az asztali, okostelefonos és tablet platformokon.

Mindez azzal jár, hogy a kiterjesztések egynémelyike annyira sikeres lesz, hogy szinte saját maguk válnak programozási nyelvvé. Gondoljunk például azokra a webfejlesztőkre, akik jQuery-vel dolgoznak - anélkül, hogy a JavaScriptet használniuk kellene közvetlenül.

A szigetszerű fejlesztések kora lejárt
A múlt század fejlesztéseire gyakran volt jellemző a szigetszerűség: az elkészült programon néhányan dolgoztak, a kész munkát pedig önmagában alkalmazták. A kód nem illeszkedett, nem kapcsolódott semmihez, önállóságában volt teljes (és tökéletlen). Ennek azonban lejárt a kora: a forrás manapság már szerves része az ökoszisztémának. Például számos PHP programozó készít plug-ineket WordPress-hez, Drupalhoz, Joomla-hoz. Kódjuk olyan modulként létezik, amely más modulokkal való együttműködésen alapul. Maga a fejlesztés is támaszkodik már erre, ahelyett, hogy az alapoktól kezdve építene fel valami teljesen újat.

Persze megvan a módszer hátulütője. Kívülről a modulok remekül működőnek tűnnek, ám gyakran rengeteg debugolásra van szükségük. A hibák nem ritkán a rendszer mélyéről érkeznek, melyre a programozónak még csak rálátása sincs. Legrosszabb esetben valaki más moduljában bújik meg a hiba, ami gyakorlatilag lehetetlenné teszi a javítást, hiszen két különböző tulajdonos birtokolja az egyes kódokat.

apple iphone appok

Ezzel párhuzamosan a fenti trend fordítottjának is tanúi lehetünk. Kezdenek kialakulni a digitális „ültetvények”, kerítéssel jól körbezárt ökoszisztémák. Habár az internet kommercializálódása ingyenességet és széles körű hozzáférhetőséget ígért, ha napjaink mobilplatformjait nézzük, inkább bezárkózást tapasztalhatunk. IPhone-ra fejlesztéskor, az Apple feltételeit elfogadva lehet dolgozni, majd ezt követően az Apple, és csakis az Apple dönt arról, hogy közzéteszi-e saját terjesztőrendszerében a kész appot. Sem a programozón, sem a felhasználókon nem múlik ez a folyamat.

Ennek persze vannak előnyei: biztonságosabbá és egyszerűbbé teszik a dolgokat. A fejlesztő ledobhatja a felelősség egy részét a válláról, ráadásul világos útmutatásokat is kap, mit tehet és mit nem. Mégis, a rendszer nem tökéletes, amit jól mutat a Facebookra fejlesztett alkalmazások története. Noha a Mark Zuckerberg alapította vállalat szintén minden megjelenést egyénileg felügyel, mégis becsúsztak már olyan, a közösségi hálóra fejlesztett appok, amelyek aztán nem kívánt hatásokkal (adatlopás, vírusterjesztés stb.) letarolták a regisztráltak adatait.

És egy dolgot semmiképp sem szabad elfelejteni! Míg a „hagyományos” szoftverfejlesztési modellnél a bevételek teljes mértékben a fejlesztő zsebébe vándorolnak, addig a digitális telepek korában ennek jelentős része az ökoszisztémát fenntartó markát illeti. Vagyis egyfajta tőkekoncentráció zajlik, a piactereket működtetők kihasználják helyzeti és financiális előnyüket.

Szintén az utóbbi néhány év hozadéka a nyíltság háttérbe szorulása. Noha a nyílt szoftverek sikere vitathatatlan, mégis, az iPhone-szerű rendszerek diadala a zártság diadala. Még akkor is, ha Linuxról beszélünk: gondolt-e már arra, hogy noha egy autó fékeit vezérlő alkalmazás nyíltforrású, azt valóban meg lehet-e egyénileg változtatni? A 21. század első évtizedének elmúltával kiderülni látszik, hogy a desktop környezet a legnyíltabb; olyan szabad lehetőségek, mint ebben a szegmensben, sehol máshol nem léteznek. És már itt is elkezdődni látszik a záródás: talán nem véletlen, hogy a Windows 8 biztonságos bootolása érdekében nem teszi lehetővé alternatív operációs rendszerek telepítését ugyanarra a számítógépre.

Az olyan projektek, mint az Apache, viszik tovább a „lángot”, a Githubbal és a Sourceforge-dzsal karöltve. De a szomorú igazság az, hogy az igazi, végfelhasználóig elérő teljes nyíltság visszaszorulóban van.

A korlátok közelebb vannak, mint hittük
A 21. század első évtizede igazi aranykor volt a sávszélesség tekintetében. Folyamatosan, látszólag határtalanul nőtt, mind kevésbé jelentve gátló tényezőt a fejlődésben. Az első dekád után azonban határokba ütköztünk: egyre ritkábban áll rendelkezésre korlátlanul ez az erőforrás, többek között az ISP-k „forgalommenedzselő” szolgáltatásainak bevezetése és az internet gerincének terhelhetőségi korlátai miatt. Ezt pedig nem lehet figyelmen kívül hagyni a programozás tekintetében (sem). A cloudba és az onnan irányuló adatforgalmat alkalmazásszinten is optimalizálni kell, a lehető legalacsonyabb adatforgalomra való törekvés jegyében.

Nem csak sebességnövelő (vagy szinten tartó) tényező a JavaScript és CSS file-ok méretének minimalizálása, de sávszélességet is lehet spórolni vele. Elég csak az európai roamingdíjakra gondolni, mennyit jelenthet akár néhány megabyte-nyi spórolás is. Azok a fejlesztők, akik ezt nem veszik figyelembe, hamarosan alkalmazásaik iránti alacsony érdeklődéssel találhatják magukat szembe.

Mindamellett nem csak a sávszélességről derült ki, hogy immár nem korlátlanul rendelkezésre álló erőforrás, hanem az energiáról is. A készülékek fogyasztása minden helyzetben lényegessé vált: akár mobiltelefonról, akár szerverfarmról beszélünk. Míg előbbi esetében a gyorsan lemerülő akkumulátor okoz gondot, utóbbinál az egekbe szökő áramköltségek mellett a hűtési kiadások elszaladása jelent problémát. A programozóknak figyelembe kell venniük az ilyen irányú optimalizációs lehetőségeket, nem lehet minden feladatot a hardvergyártókra hárítani.

Párhuzamosan, bevonva a GPU-t is
Noha architekturális szinten már jó pár éve lezajlott egy igen nagymértékű párhuzamosítás (gondoljunk például a többmagos, többszálas processzorokra), szoftveres téren elég vegyes a kép. Egyelőre két területre koncentrálódik a folyamat: a multinode adatbázisokra és a Hadoop feladatokra. A legtöbb NoSQL adattárolás segítséget nyújt a terhelés többgépes elosztására, néhány automatikus sharding révén darabokra bontja az adatokat, az egyes gépek szinkronizációjával pedig külön-külön hostolja az egyes darabokat. A Hadoop pedig egy olyan nyílt forrású keretrendszer, amely egy feladat egyes részleteit több számítógépen képes futtatni, majd a külön-külön összeálló fázisokat egyetlen válasszá alakítani. Azonban mindennapi alkalmazásfejlesztési szinten még mindig nem tart ott a párhuzamos programozás, mint amit az általános hardverkialakítás lehetővé tenne.

Végül, de nem utolsó sorban szintén a 21. század gyermeke a grafikus processzor általános célú utasításfeldolgozásra való bevonása (ebből fejlődött ki a GPGPU architektúra, a General-Purpose Graphics Processing Unit) is. Az elmúlt egy-két évig ugyan szinte kizárólag a játékok és a grafikus megjelenítés profitálhatott a GPU-k erejének növekedéséből, a legújabb trendek ennek általános célúvá alakításáról szólnak. A nagy teljesítményű szerverszámítási feladatok kitaposták az utat a grafikus processzor előtt a hétköznapibb, desktop gépekben is megtalálható feladatok támogatására - ilyen például a modern böngészők weboldal renderelési képessége. Ez mindenképpen hatást gyakorol a (közel)jövő programozási gyakorlatára, jelentős részben megnövelve a rendelkezésre álló számítási teljesítményt, de bizonyos tekintetben nehezebbé is téve annak kiaknázását.

Hirdetés
0 mp. múlva automatikusan bezár Tovább az oldalra »

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://www.computertrends.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.