C++: kezdhetem vele a tanulást vagy előbb sima C nyelv?
Ha a C típusú nyelveket szeretném megtanulni, akkor a tanulást a sima C vagy a C++ nyelvvel érdemeskezdeni?
Algoritmusokkal, programozással stb korábban sokáig foglalkoztam (csak elavult programozási nyelven), tehát a "előbb programozni kell megtanulni" típusú válaszokat hagyjuk.
Nagyon köszönöm a hasznos választ.
Gondoltam utánanézek: milyen beágyazott rendszereknél használják, vagy esetleg kis cégek stb.
Nem szándékozom például driver-eket írni vagy kernel-programozó lenni.
18. “Megnézném, ahogy ennek hatására Linus Torvalds rögvest átírná a Linux kernelt Rustra. :D”
Át nem írja, de a következő Linux kernel verzióban a Rust már hivatalos nyelv lesz, és innen kezdve arra számíthatsz, hogy új projekteket már főleg Rustban fognak indítani. Nagyon komoly mozgásban van az ipar.
“Megnézném, ahogy ennek hatására Linus Torvalds rögvest átírná a Linux kernelt Rustra. :D”
Ez már múltidő.
A linux kernelt átírták Rust-ban. Igaz, nem Linus volt az elkövető.
Ezt a "C tipusú nyelvek" szálat már nem hagyom elvarratlanul:
Nincsenek ilyenek, hogy "C tipusú nyelvek".
Minden programozási nyelv eredendően más, mint a többi.
Vannak egy nyelvnek dialektusai, de az egy más kategória.
Egy új programnyelv éppen azért születik, mert valami nagyon mást akar az alkotója, mint ami már van.
Használ az illető egy nyelvet, és támad benne egy igény, hogy hopp, ez miért nem így van, vagy az miért úgy van, ahogy?
Aztán, ha ezekből a miértekből csak 1-2 van, akkor azt az illető benyeli, de ha a miértek száma meghalad egy mértéket, akkor nekiül és csinál valamit, ami olyan, amilyen neki megfelel.
Szerintem te ezt a dolgot a "c szintaxisú nyelvekkel" kevered.
Mert ilyenek vannak. A C-nek tömör, rugalmas a szinaxisa, ráadásul, ha új nyelvet alkot valaki, akkor ha a nyelve grammatikailag a C szintaxisára hasonlít, könnyebben talál felhasználókra, hiszen azok a már tanultakat újra hasznosíthatják, a megcsontosodott beidegződéseket nem kell felülírniuk, vagy csak viszonylag kis részben.
A C szintaxisa egyébként azért lett ilyen, mert a UNIX-ot egy használaton kívüli (talán PDP 11-es) gépen alkották, amiben csak 8 (vagy 12?) kilo-szó memória volt.
Ezen kellett elférnie a gép assemblerének, az Ős-C transpilerének és a unix forrásának is.
Én nagyon sok (tiniként kb) éve kezdtem C-ben, sima Basic-ben, Pascal-ban, stb. És amíg el nem kezdtek terjedni az OOP nyelvek, mindent meg tudtam csinálni. Ha más nem pointer hegyekkel. Ez ment vagy 10 évig.
És annyira beleégett a strukúrált programozás az agyamba, hogy vagy 1-2 év volt amíg magamévá tettem az obejektum oerientált programozás "értelmét".
Esküszöm nem értettem, hogy mire jó egy osztály/objektum ha én struktúrákkal és szubrutinokkal, mindent meg tudok oldani. Tehát nem az volt a baj hogy a C++ szintaktika nem ment, vagy mert nem értettem az osztályokat az öröklést, az egységbe zárást... dehogynem... A filózófiát nem értettem, és hogy miért hasznos, és hogyan tervezzek, bontsam szét osztályokra amit eddig "ömlesztve" implementáltam.
Én javaslom kezd a C++-al, és OOP szemlélettel azonnal. Amúgy a C-t is megtanulod közben úgy is :)
Én a C-t javasolnám kezdésnek. Sokkal egyszerűbb és könnyebben érthető, mint a "túlbonyolított" C++ (ez az én saját tapasztalatom). Ha megvan a C alapszinten, mehetsz tovább C++-ra (ha akarsz). C++-t manapság jobban keresik az OOP miatt és gyakorlatilag ezzel ki is merültek a jelentős előnyök C-vel szemben. Vannak még pár dolgok, amik máshogy működnek de én személy szerint nem feltétlenül nevezném előnynek. A C-ből eredő valódi problémákat a C++ soha nem oldotta meg. Lásd: memóriabiztonság.
A legtöbb dolog dolog C-ből megvan C++-ban is, ezért ha C++-al kezdsz akkor sem fogsz mellé. A két nyelv külön utakon indult, mindkettőt fejlesztik, jönnek újabb szabványok. Ha a C jobban tetszik, tanuld azt, de egy idő után mindképp térj át C++-ra az objektumorientáltsága miatt és tanuld meg azt is. Az OOP manapság mondhatni alapfeltétel a programozásban még ha nem is mindenki szereti.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!