Téma: C++ |
|
Egzisztenciális kvantor |
|
Általános esetben, azaz ha a választás szabadsága adott, akkor nem kérdéses, hogy a C a nyerő a C++-szal szemben. A C++ valóban szép és logikus nyelv, amolyan matematikai általánosítása egy kezdetleges ötletnek. A gyakorlat azonban azt mutatja, hogy C++-ban baromira könnyű olyan hibákat benne hagyni a kódban, amiket csak hetekig tartó debug-golással lehet majd kijavítani. Hogy a C++ a gyakorlatban sokkal nehezebben használható, mint a hozzá képest primitív C, és hogy számos project bukását okozta, azt mások is viszonylag hamar felismerték. Kigyomlálták a nyelvből a nélkülözhető elemeket, és így született a Java. (Voltak még egyéb szempontok is a Java tervezésénél, pl. a memória fregmentálódásának elkerülése.) Tehát ha Java-t is lehet választani, akkor inkább azt javaslom. Nem kell idegenkedni tőle, nagyon hasonlít a C++-ra. Saját tapasztalatom alapján azt mondanám, hogy valahol 2000-4000 forrássornyi komplexitás között lehet az a határ, amin túl érdemes elkezdeni keresni alternatívát a C++ helyett. Azaz nagyobb C++-os munkáknál biztosan el fogsz pazarolni annyi időt hülye hibák keresésére, hogy megtérüljön a hatékonyabb nyelvre (pl. Java-ra) való átállás kezdeti költsége.
A C# állítólag a Java-hoz hasonló, de én azt nem ismerem.
Kisebb GUI-kra, nem sebességérzékeny progiknak jó még a Python is. Teljesen más világ, csak annyiban hasonlít a Java-ra, hogy milliónyi library van hozzá. |
|
|
Rendes Kis |
|
Nyomós érv a C mellett, hogy van 1 C-s kollégám, akitől tudok kérdezni ...
Azt nem egészen értem, hogy akkor most Te a C vagy a C++ mellett teszed le a voksot ?
A natúr C-t nem választhatom, mert olyan nincs, a Jávától meg effajta szörnyűségektől pedig kiráz a hideg ... |
|
Egzisztenciális kvantor |
|
Ez egy apróság, amit vissza fogsz sírni, amikor az = operátort összekevered a copy constructor-ral, vagy a referenciát a pointer-rel. Szerintem az a library meg van írva más nyelvhez is. Ha 1000 sornál többet készülsz írni, akkor mindenképpen próbálj más nyelvet keresni. |
|
Rendes Kis |
|
Na jó-jó, de azért nem föltétlenül kell a programozó életét megkeseríteni ! |
|
glens |
|
Hát, nehéz kenyér a programozás, kétségtelen. |
|
Rendes Kis |
|
A C-nél viszont merényletszámba megy, hogy az
if( a = b )
szintaxis nem okoz hibát (sőt végrehajtódik), de nem azt csinálja, amit az ember paraszti ésszel gondolna ... |
|
glens |
|
A C#-ban megvan (meg a VB-ben is). Valóban kényelmes, és tömörebb lesz a forrás. |
|
Rendes Kis |
|
A C-ben szeretnivaló a ++, --, +=, -= operátorok ... Ezeket, sajna, a Centurából kihagyták ... |
|
glens |
|
A kényelmet könnyű megszokni... |
|
Rendes Kis |
|
A Centurából a C-be visszalépést úgy éltem meg, mint Petőfi, amikor megvonták tőle a reggeli kávéját ! |
|
|
Rendes Kis |
|
Háát ... én abban semmi szépséget nem találok, hogy a 'CString'-et 'char*'-gá kell konvertálnom ...
Igen, bele vagyok kényszerítve, mert 1 olyan API-t kell használnom, ami C++ -ban íródott.
(De, szerencsére, az API írója is bizonyára csak kényszerből használta a C++ -t, mert eléggé "C-szerűen" dolgozott ... ) |
|
glens |
|
Igen ám, de a mezítlábas C-vel meg iszonyatosan körülményes pl. az adatbáziskezelés. |
|
Egzisztenciális kvantor |
|
Mer' szép! Vagy te nem látod a C++ szépségét?
(Amúgy a C++ tényleg szép, és logikus. Csak éppen használhatatlan.)
Mellesleg minek tanulsz C++-t. Muszáj? Ha nem muszáj, akkor tanulj inkább C-t, Java-t, Python-t, Lisp-et! |
|
glens |
|
Átkozz ki, én most írtam benne egy progit, amelyik egy eszközzel (mérleggel) kommunikált aszinkron TCP/IP protokollal. Kifejezetten élveztem, mert lehetett látni, hogy mi történik. Előtte ugyancsak .net-es c#-pal, vb-kel próbálkoztam, kínlódás volt, nem működött, nem jött át az összes bájt, csak ha bezúztam a klienst, majd újra felépítettem a kapcsolatot, stb. Ezzel meg megy, mint a villám... Valóban sokat kellett a különböző string típusokkal, meg a fordítást befolyásoló kapcsolókkal szórakozni, de megérte. |
|
|
|
|
|
|
|
|
|
|
|