Kezdőoldal » Számítástechnika » Programozás » Mi a különbség vagy az azonoss...

Mi a különbség vagy az azonosság a C, C# és a C++ programozási nyelvek között és manapság melyiknek van nagyobb jelentősége?

Figyelt kérdés

2021. aug. 2. 21:21
1 2 3
 21/25 anonim ***** válasza:
100%

18. "Aki a wikipédia nevetséges, botcsinálta szócikkeit citálja, azokra hivatkozik, az elmehet a 'csába, veled együtt, kisbarát."


Erről csak annyit, hogy [link]


=> Röviden: vannak elfogult cikkek a Wikipedián, hiszen cégek, politikai alakulatok stb. is szerkesztik. Azonban a Wikipedia nagyvonalakban mégis egy használható tájékozódási pont, és ekkorát nem téved, hogy direkt nemlétező fogalmakat vezetne be... Nem mellesleg egyetemi tanszékek is fejlesztik a wikipediát, többek között a miénk is, és a mi cikkeinket a téma hazai kutató szaktekintélyei ellenőrzik tételesen... De nem csak wikipedia cikket hoztam, hanem másokat is, valamint a kezdők rendelkezésére mindig ott van a Google.


És: még soha nem tett embert kicsinyebbé az, ha beismerte, hogy tévedett. Te se félj ettől.

2021. aug. 3. 13:20
Hasznos számodra ez a válasz?
 22/25 anonim ***** válasza:
72%

Komolyan ennyi "k*én" válaszadót.


De tényleg bármelyikőtök látott már operációs rendszert közelről? Most itt nem arra gondolok, hogy fel tud telepíteni egy debian klón linuxot a next-next-OK-next-OK gombok nyomogatásával, utána valamelyik grafikus csomagkezelőben össze tud kattogtatni pár csomagot, hogy még tegyen fel, hogy kb. bármire is lehessen használni a gépet?


Egyáltalán tisztában vagytok az operációs rendszer fogalmával? Mire jó, mire nem, mire szolgál? Ilyen fogalmak megvannak, hogy kernel, driver, daemon (vagy más néven más rendszerekben nevezték ezeket még service, facility, stb. neveken is), utility (segédprogram), shell, GUI stb., és hogy ezek miként és hogyan viszonyulnak egymáshoz?

A rendszer különböző részeit mindig is más-más programnyeveleken készítették, egészen más követelmények vannak egy shell-el szemben mint pl. egy real-time ütemezett kernel-driverrel szemben. Az, hogy a unixnál kitalálták, hogy minden (is) legyen C az akkor egy "jó ötletnek tűnt", ma egyre többen akik ezzel foglalkoznak ezt vitatják, hogy mennyire volt végülis ez jó vagy rossz ötlet.

Szintén hányan ismeritek azt, hogy pontosan(!) mi történik egy adott programnyelven egy függvény (vagy majd később objektum) hívásakor? Milyen utasítások futnak le a procin? Hogyan történik meg pl. egy cím szerinti, érték szerinti, változó szerinti stb. paraméter átadás? Hogyan keletkezik a visszatérési érték? Erre milyen módszerek léteznek (nem csak a stack-et lehet erre a célra használni, és látja-e valaki mi az előnye/hátránya a stack használatának? Mi volt /van/ a 2000-es évek elején a híres stack overflow sebezhetőségek oka és magyarázata? És ebben miért első sorban a Unix és a Unixjellegű rendszerek voltak/vannak/ érintve?).

Nem látom úgy, hogy a mai oktatásban ezek úgy komolyabban elhangzanának. Találkoztam friss diplomás programozóval akinek fogalma nem volt mi a különbség a Neumann és a Harvard architektúra között. Szintén fogalma nem volt mit jelent az, hogy teljes utasítás dekóderű és mit jelent mikroprogramozott CPU mi a különbség köztük (igen ez érinti a biztonságot is sok esetben).

Az meg, hogy éppen egy adott korban mi a "divat" nyelv az meg sok mindentől függ. Mára eljutottunk oda (ez még akár 20 éve is másképpen volt, 25-30 éve meg még inkább), hogy a PC kategóriás számítógépek ára a TCO modellben gyakorlatilag (közelítően) 0 lett, ugyanígy szinte 0 a villamosenergia költsége, és a hardver üzemeltetés költsége is 0 USD (HUF, EUR, ki miben számol). Gyakorlatilag ma az ember megvesz egy kb. 1000-1500 EUR-ért egy középkategóriás asztali gépet és ez 6-8 évre kiszolgálja /most ne a játék ipart nézzük az más tészta egészen/, innen kezdve nincs vele hardver fentartási költség. Ha azt veszem, hogy évi kb. 200 munkanap dolgozik valaki (53 hét, heti 5 nap, de van szabadság, ünnepnap, betegség) 200 nap/év x 7 év x 8 óra/mnap=112000 móra; egy órára vetített hardver ár: kb. 14 EUR cent. A villamosenergia igény átlagosan olyan 150-200W körül mozog (megint nem játék, és nem bitcoin bánya, általános cél), 0,2 kWh/móra fogyasztással (1 kWh lakossági villamosenergia most kb. 37 Ft, kb. 10 EUR cent). Így az, hogy van egy ember asztalán egy PC kategóriás gép és tud vele dolgozni óránként kb. 24 EUR cent. Ez gyakorilatag az összes többi költséghez képest elenyésző (most a programok árát, a dolgozó munkabérét direkt nem számoltam bele). Ha meg kicsit jobban "figyel" az ember egy ilyen használatú gép akár 10-12 évig is üzemképes lehet, és akkor az ár még alacsonyabb lesz.


Ez nem mindig volt így. És ez az ami nagyban meghatározta, hogy mi volt, milyen nyelvekkel, milyen kihívásokkal kellett számolni. Amikor volt olyan időszak, hogy a memória 1USD/bit /bitenként!!! nem byte, meg kilobyte hanem egy darab bit ára volt ennyi, OK, hogy a 60-as évek végére, 70-es évek elejére ez lement 0,05USD/bit-re de azért az is elképesztő ár a maihoz képest! A helyigényről és a fentartási költségekről ne is beszéljünk. Emlékszem még egyetemre jártam ott volt egy külön csapat csak a gépek hardverével foglalkozott!/ áron volt hozzáférhető (és akkor egy gép max. 5-6 évet szolgált ki).

Ha valaki azon vitatkozik, hogy mi volt a múltban és ki mikor mit mondott ezeket a nem kicsit mellékes körülményeket nem szabad elfelejteni. Azok a fogalmak amikkel itt dobáloztók "rendszerprogramozáshoz kitalált nyelv" és társai ebből a korszakból maradt ránk. Ebben a korszakban született a C. Szintén nem szabad elfelejteni, hogy előtte kb. az ALGOL60 és az Assembly volt olyan nyelv amiben meg lehetett próbálkozni valamilyen rendszer közli dolgot írni. Én már ALGOL60-at nem láttam, de Assemblyt még igen. Hát ahhoz képest a maga idején tényleg egy "csoda" lehetett C-ben kernelt írni. (bizonyos részekben meg C utasításokkal leírni az assembly rutint... de ez csak a rosszindulatú megjegyzésem, érdemes belenézni a Linux kernelbe, több helyen látszik, hogy kvázi assembly kód van leírva C utasításokkal...). A C++ már egy érdekesebb kérdés, és nem véletlen, hogy csak a 90-es évek második felében, de inkább 2000 körül kezdett terjedni, mert egyszerűen egy komolyabb C++ programhoz a föld összes RAM-ja kevés lett volna, ma már ez nincs így, amikor egy átlagos irodai PC-ben is ott ketyeg 32-64GB RAM pont nem érdekel senkit, hogy mennyi helyet foglal az OS és a GUI, és mennyi adat mozog /látszólag feleslegesen.../ a két eljárás között a stacken (vagy common memoryblockon).

2021. aug. 3. 16:13
Hasznos számodra ez a válasz?
 23/25 anonim ***** válasza:
66%
Bocs itt elírtam: "Így az, hogy van egy ember asztalán egy PC kategóriás gép és tud vele dolgozni óránként kb. 24 EUR cent." Ez helyesen 14 EUR cent, csak véletlenül 2-et írtam az 1-es helyett.
2021. aug. 3. 16:21
Hasznos számodra ez a válasz?
 24/25 anonim ***** válasza:
100%

Mi lenne, ha értelmes választ is kaphatna a kérdező?


_Nálunk_, ahol főleg backend szoftvereket fejlesztünk (háttérfolyamatok, adatfeldolgozás, továbbítás, stb) C-vel kezdtük. Ez a nyelv valóban erősen fapados, cserébe nagyon tömör és gyors lesz a lefordított program. Pont emiatt a tömörség miatt beágyazott rendszerekben még mindig nagyon is él a C (bár a C++ itt is megjelent). A "rendszerprogramozási nyelv" vagy sem kérdésbe én nem mennék bele, de az tény, hogy pl. a Linux kernelt C-ben írták és írják máig (már csak ezért is vicces azt mondani, hogy a C nyelv kihalóban van)


Amikor egyre komplexebb rendszereket kezdtünk fejleszteni, akkor áttértünk C++-ra, ami bár a C alapjaira épül, alapvetően egy teljesen más nyelv, sokkal összetettebb nyelvi elemekkel és emiatt rengeteg hibalehetőséggel, amibe a kezdő programozó rendre bele is esik. Jó nyelv, de évek, mire valaki erős közepes szintre feljön benne.


Pont fentiek miatt hozták létre a Rust nyelvet, ami a C++ előnyeit megtartja, de kiküszöböl rengeteg hibalehetőséget. Valószínűleg erre fogunk továbblépni, egyelőre kisebb projekteken teszteljük, nagyon bíztató.


Kezdőként a C alapjait elég hamar meg lehet ismerni, talán nem is teljesen haszontalan. De a C++-t én már kihagynám, inkább Rust felé mennék tovább, ha ez a vonal érdekel.

2021. aug. 3. 22:56
Hasznos számodra ez a válasz?
 25/25 anonim ***** válasza:
34%
Kérnék részletes indoklást a lepontozásokra köszönöm. A válaszok nagy része itt hasznos és igaz.
2021. aug. 3. 23:58
Hasznos számodra ez a válasz?
1 2 3

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!