Kezdőoldal » Számítástechnika » Programozás » Miért használnak rengeteg...

Miért használnak rengeteg helyen sima C-t ha a C++ sokkal többet tud és szebb/átláthatóbb/rövidebb kódot lehet benne írni?

Figyelt kérdés

2015. szept. 1. 08:33
1 2
 1/13 anonim ***** válasza:
80%

- NAGYON sarkosan: Van, amikor indokolt. Beágyazott rendszerek esetén például.

- Az, hogy egyértelműen rövidebb volna a C++ kód, nem teljesen fedi a valóságot; mi több, ha objektumorientáltan - ahogy kellene - használod, a szoftver komplexitásával "fordított arányban" több sor kódot igényel "ugyanaz" a feature. A komplexitás emelkedésével viszont a jobb kód-újra-felhasználhatóság (OFF: ez borzalmasan néz ki, meg amúgy is hányok a szakkifejezések magyarításától) komoly előnyt jelent a kódbázis teljes hosszát tekintve; bár ezt a szakemberek gyakran beáldozzák valamilyen egyéb előny érdekében (pl. rugalmasság).

- Nem nagyon derül ki, milyen "rengeteg hely"-re gondoltál.

- No offense, de nem igazán jó ötlet ilyen kérdéseket feldobni, mert csak értelmetlen flamewart fog indítani, gyakorlati értéke viszont nem sok van.

2015. szept. 1. 08:53
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
57%

Okok:


A programozók közmondásos lustasága. Kényelmesebb ugyanazt a nyelvet tovább használni, mint megtanulni egy újat, és áttérni arra.


Ha egy program már egy adott nyelven van, akkor az egészet át kellene írni. Nem a Hello world!-ről van szó, hanem a rendszermagról, a meghajtó programokról és más hasonlókról. Nem lehet automatikusan konvertálni, mint a Python 2-t Python 3-ba.


Emiatt továbbra is érdemes megtanulni a C-t, amiből az 1. pont következik, aminek még több C program az eredménye, így a 2. is tovább érvényesül. Sokáig fog élni még a C a maga helyén.

2015. szept. 1. 14:07
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
Alapvetően mert a C egy paradigmára épül, a C++ meg több paradigmára (ami miatt sokkal nagyobb nyelv). Ezen kívül a C bármin elmegy és régebben kezdett projekteket nehéz átrakni. Nagyon jó a kompatibilitása a C függvények és könnyen meghívhatók más nyelvekből is.
2015. szept. 1. 18:35
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:

Ez csak azt mutatja, hogy nem vagy tisztában a folyamatleíró és objektumorientált szemlélet közötti különbségekkel.


C-re olyan helyeken van szükség, ahol nagyon korlátozva vannak az erőforrásaid, de mégsem akarsz assembly-ben nagyon merev, át nem igazán írható kódokat tákolgatni.

Pl automotive, beágy, virtualizáció, nagyon erőforrás, realtime kritikus háttérben futó service, optikai karakterfelismerés, gépi látás, dinamikus terheléselosztás, akármilyen kernelírás, hogy csak egypár hardverközeli felhasználást említsek.


C-ben is lehet átlátható kódot írni, de az nem a kezdők erőssége. A C++-ban is lehet makarónit csinálni, aki nem ért <template> hozzá.


Hogy melyik nyelv gyorsabb, az inkább kódolási stílusfüggő. A g++ 4.6-tól már legalább olyan hatékonyan optimalizál, mint a gcc.

2015. szept. 1. 21:26
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
56%

Nincs olyan dolog amit C -ben meglehet írni de C++ -ban nem.

OS kernelt is írtak már benne, vadászgéphez szoftvert, meg még jó sok mindent ahol elsődleges a sebesség.

2015. szept. 1. 21:47
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:

[link]


A TIOBE index szerint az objektumorientált nyelvek népszerűsége csökkenő tendenciát mutat, amíg a sima C népszerűsége (néhány gödröt és emelkedőt kiintegrálva) nagyjából változatlan az idők folyamán.

2015. szept. 5. 06:33
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
57%

Egy nagyon fontos dolog: Minden C kód egyben C++ is.

Vannak feladatok, amikre teljesen értelmetlen a C++ plusz képességeit belevinni, csak nagyobb, lassabb, bonyolultabb lesz. Ha pl. egy olyan lineáris folyamatot akarsz leírnni, amiben alig vannak egymásra hasonlító lépések, vagy olyan kicsi a feladat, hogy nincs hol felhasználni az objektumorientáltság előnyeit (mert pl. csak egy objektumod lenne), akkor nincs sok értelme a ++-nak.

Az pedig messzemenően nem igaz, hogy C-ben ne lehetne átlátható, szép kódot írni.

2015. szept. 7. 11:09
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:

Nem, nem lesz lassabb a C++ kód, de még nagyobb sem sokkal.

Sima C -vel két string összefűzése is körülményes.

2015. szept. 7. 12:06
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:

"Egy nagyon fontos dolog: Minden C kód egyben C++ is."


Nem mert vannak kulcsszavak amit C-ben lehet használni pl. függvénynévként c++-ban meg nem.


De a C++-ban az absztrakció (virtuális függvények, template) minimális terhet jelent és csak ha használod! A C egy kisebb és ezért jobban érthető nyelv. Nincsen benne annyi minden (pl. hat féle öröklődés), ezért nem szeretik egyesek a C++-t mert komplexebb. Végül az objektum orientáltság a c++-ban nem kötelező, és akkor is lehet előnye ha nem tisztán objektum orientált az egész program.

2015. szept. 7. 19:39
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:
Nem, a template sem lassít semmit, mert fordítási időben történik a mágia. Szokásos példa a qsort / std::sort, ugyan azzal az algoritmussal rendez, mégis 2-10 szer gyorsabb.
2015. szept. 7. 23:35
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!