A C++ jelentős múltja miatt úgy él a legtöbb ember tudatában, mint a legacy projektek nyelve, pedig napjainkban is az egyik legtöbbek által használt programozási technológiáról van szó. Dr. Forstner Bertalan, a BME-VIK egyetemi docense, az AutSoft Zrt. üzletfejlesztési igazgatója és az Informatikai tudományok doktora segítségével egy korábbi webináriumunk során bemutattuk, miért nem helytálló ez a tévhit és miért éri meg napjainkban is belevágni a C++ elsajátításába.
Vendégünk évente átlagosan 400 diákot tanít objektumorientált szoftverfejlesztésre többek között C++-ban, emellett a mobilszoftver-fejlesztés specializáció vezetője a BME-VIK-en. Nem egyetemi keretek között pedig a Webuni C++ alapú szoftverfejlesztés képzésének oktatója.
Miért tanuljunk C++ nyelvet?
A C++ 1979 óta fejlődik és van velünk Bjarne Stroustrupnak köszönhetően, aki akkor a Bell Laboratories kutatója volt. Előadásunkban azonban nemcsak arra kerestük a választ, hogy honnan is indult ez a technológia és mi váltotta ki iránta az igényt, hanem arra is, hogy miért érdemes a mai napig foglalkozni vele.
“Mi a Műegyetemen elég sok objektumorientált nyelvet tanítunk, de a C++-hoz mindig visszanyúlunk.
Ennek két oka is van, hogy miért használjuk a C++-t az oktatásnál is és miért gondoljuk fontosnak, hogy bárki aki a villamosmérnöki karon tanul BSc-n, akár informatikát, akár villamosmérnöki tanulmányokat, az mindenképpen ismerje meg a C++-t. Ez nemcsak azért van, mert nagyon klassz a nyelv, hanem azért is, mert nagyon könnyen be tudjuk vezetni vele az objektumorientált paradigmát.”
Na, de miért is tanuljunk C++ nyelvet?
- 4,4 millió fejlesztő használja aktívan világszerte, ha pedig körbenézünk az állásportálokon, a C++ területen a várható fizetés igen magas. Magasabb, mint a C#, vagy az Android esetében.
- Nemcsak a nyelvet, hanem az osztálykönyvtárait is elkezdte szabványosítani, így kész eszköztárat kapunk a kezünkbe, vagyis nem kell nulláról lefejleszteni mindent, hanem támaszkodhatunk az újrahasznosítható részekre.
- Hordozható, minden jelentős platformra elérhető ugyanis C++ fordító. Így nem olyan szinten platform független, mint a Java, de egy klassz, hordozható forráskódot tudunk készíteni a segítségével.
- Hatékony, mivel nagyon kevés erőforrást igényel, ezáltal nagyon gyors alkalmazásokat készíthetünk. Hardverhez közel fut a kód, ezáltal nemcsak a fordítás, hanem a futás is nagyon gyors.
- Hatalmas támogató fejlesztői közösség áll mögötte és a mai napig folyamatosan fejlesztik és portolják. Akár magyar nyelvű közösségeket is találhatunk a témában.
- Tévhit, hogy csak legacy projektekben használják, valójában ugyanis számos alkalmazás és rendszer épül C++-ra. Ilyen például a Windows és az Android alapja is.
- Ideális a beágyazott rendszerekhez, mert ezeknél nincs jelentős erőforráslehetőség, akár még memóriából is minimális áll a rendelkezésünkre és valós idejű környezetben kell dolgozni. Tehát determinisztikus paraméterek között kell dolgozni, amire a C++ jó megoldást nyújt.
Az objektumorientált paradigma előnyei
A C++-on túl számos nyelv használja az objektumorientált paradigmát, így elsajátítása hosszú távon jelentősen hozzájárulhat fejlesztői karrierünk fellendítéséhez. Ha van már gyakorlatod Java-ban, a C++ elsajátítása is egyszerűbbé válik, vagy ha most tervezed a belépést a backend fejlesztés területére, az alapvető ismereteket a Webuni mentorált online képzésein is elsajátíthatod!
Előadónk azt is kiemelte, miért sajátítsuk el az objektumorientált paradigmát. Például, ha valaki C nyelvről lép a C++ felé, akkor Bjarne Stroustrup útját járja, aki a következő előnyök miatt vágott bele az új nyelv kifejlesztésébe.
- “Egyre komplexebb rendszerek készültek ott a ‘80-as években a Bell Labs-nél és természetesen máshol is, amiket a végén már alig lehetett átlátni. Nehéz volt különböző absztrakciós szinten vizsgálni a problémákat. A C++ lehetővé teszi azt, hogy a fejlesztő egy nagyobb probléma kisebb részére tudjon koncentrálni. Ezzel a hibázás lehetőségét is csökkentjük és kisebb esélye lesz annak, hogy az azonos projekteken dolgozók egymás lábára lépjenek, így hatékonyabb lesz a munka.
- “Az adatok és objektumok egy helyen vannak. A C nyelvben ezek az adatok struktúrák, a műveletek függvények, a kettőt semmilyen módon nem köti össze egy nylevi elem. Ebbe futott fbele Bjarne Stroustrup is, aki megállapította, hogy szükség van arra hogy az adatok és az objektumok egy helyen legyenek és abba senki nem tudjuk kívülről úgy belenyúlni, hogy az ne legyen módosítható.”
- A C++ kódja rendkívül jól újrahasznosítható, illetve igényeinkhez igazodva kiegészíthető, ami nemcsak megkönnyíti a fejlesztők munkáját, hanem hatékonyabbá is teheti azt. “Ehhez viszont nyelvi támogatásra van szükségünk.”
- “A polimorfizmus azt jelenti, hogy azonos interfészen keresztül szeretnék elérni, használni különböző objektumokat. Például, ha valaki bemegy egy autószalonba, akkor nem kell a különböző autógyártóktól egyesével jogostványt szerezni, hanem ha valahova beülök, akkor ugyanazokat az elemeket látom benne, mint egy másik típusban. Fejlesztőként például szeretném, hogy ha van egy rendező algoritmusom, akkor az A,B,C tárolón is ugyanúgy működjön.”
- “A nagyobb hatékonyságot és produktivitást biztosítja az is, hogy maga a C++ nyelv, vagy az objektumorientált paradigma is megvédi a fejlesztőt a saját hibáitól.”
A webináriumot végül egy rövid programozási session zárta, amit érdemes visszanézni az alábbi videóra kattintva. Ha pedig érdekel a C++, nézd meg a témában induló képzésünket, amit Dr. Forstner Bertalan tart majd!