A C# a C++ továbbfejlesztetett változata, akkor miért szükséges mind a 2-t külön ismerni, miért nem elég csak a C#?
A C# a C++ továbbfejlesztetett változata, akkor miért szükséges mind a 2-t külön ismerni, miért nem elég csak a C#?
Hiszen mind a 2 objektumorientált nyelv.
A C-nek a C++ a továbbfejlesztett változata, de a C++-nak a C# nem!
A C# egy teljesen különálló nyelv.
A C++ pedig nem kizárólag objektumorientált, hanem csak támogatja azt IS, ellenben a C# már tisztán OO.
a C# az olyan Java szerű
a C++ az meg olyan C szerű, objektumokkal :D
Ezek nem leszármazások. A C++ és a C# is C alapokra épült, tehát max testvérek lehetnek, de inkább csak féltestvérek. A C# egy menedzselt nyelv, a C++ pedig nem az, ahogy fentebb mondták a C# OO, a C++ pedig nem. Más célra fejlesztették ki a két nyelvet, a C++ akkor jön be a képbe, ha valamilyen erőforrásból megszorítások vannak, például 3D grafikánál a CPU/GPU erőforrások, fizikai számításoknál szintén, kisebb programoknál nem árt, ha nem zabál több mega memóriát feleslegesen és nem kell fellőni hozzá egy egész keretrendszert.
Szóval egészen más a két nyelv célja, így más a filozófiájuk is.
Amúgy C# fut Linuxon is, hülyeség amit az első mondott. A Mono projekt kicsit lemaradva ugyan, de követi a Windowsos .NET-et.
"Amúgy C# fut Linuxon is, hülyeség amit az első mondott. A Mono projekt kicsit lemaradva ugyan, de követi a Windowsos .NET-et."
Nem akkora hülyeség. Ez kb. olyan, mint hogy windows programok is futtathatók linuxon, mert van wine, de azért a kettő nem ugyanaz, és ettől nem mondjuk, hogy a windows programok kompatibilisek lennének a linuxszal. Emellett nem csak windows és linux van a világon. A C# felhasználási területe bizony nagyon szűk.
A desktop gépek 99%-a Windowst futtat. A szerverek jó része Windowst futtat (nem, nem (csak) a webszerverekről beszélek). Szerintem annyira nem szűk.
Másrészről pedig a Mono nem Wine. A Wine, nevével ellentétben egy emulátor, próbál windowsos környezetet biztosítani. A Mono nem ezt teszi, a Mono a NYÍLT .NET szabványt implementálja Linux alá. Pont, mint ahogy Python interpreter is van több platformra.
A C#-nak és C++nak max. annyi közük van egymáshoz, hogy mindkettő C betűvel kezdődik.. :D És persze C szintaktikára épülnek, de ezen kívül semmi.
"C++ akkor jön be a képbe, ha valamilyen erőforrásból megszorítások vannak, például 3D grafikánál a CPU/GPU erőforrások, fizikai számításoknál szintén"
Ez igaz, bár azt hozzá kell tennem, hogy egy jól megírt C# program alig valamivel marad el a C++ mögött performanciában. Ami problémás, és ami tényleg lassítja, az a managed/unmanaged boundary-k közötti átjárás.
"Kisebb programoknál nem árt, ha nem zabál több mega memóriát feleslegesen és nem kell fellőni hozzá egy egész keretrendszert."
Manapság, amikor már a leggagyibb konfigokban is min. 3 Giga memória van, nem hiszem, hogy szempont, hogy egy kis program 3 vagy 10 Mb memóriát eszik. A .net keretrendszer meg Vista-tól kezdve része az oprendszernek, így nem kell installálgatni :)
"C# felhasználási területe bizony nagyon szűk."
Aham, szűk.. végülis csak laza 71%-os market share-je van a Windows oprendszereknek:
"Aham, szűk.. végülis csak laza 71%-os market share-je van a Windows oprendszereknek: "
Most szándékosan kiforgatod, amit írok? Ki beszélt a windows rendszerek elterjedtségéről? A C# felhasználási területeiről volt szó. Próbálj mondjuk drivert írni vele, vagy oprendszert. Vagy komoly 3D játékot úgy, hogy rendes teljesítménnyel fusson. Szük felhasználás: relatíve egyszerű windows programok.
Egyébként fogadok, hogy a (71-x)%-ból (ami XP és régebbi) egy csomón nincs is .NET telepítve. Ezek lehetnek céges gépek, de például a minap ezen az oldalon is felbukkant valaki vanilla XP-vel, és csodálkozott, hogy XY program nem akar futni. Szóval azért túlzás, hogy ha egy gépen windows fut, akkor oda már ideális a C#.
Ez a C# nem marad el a C++-tól pont olyan mítosz, minthogy a Java nem marad el. A natív, fossá optimalizált kódot egyelőre semmilyen menedzselt, bytekódos nyelv nem tudja utólérni. Ez tény, valós környezetben ez a tapasztalat és a mérés.
A kis programok memóriafogyasztása pedig azért problémás, mert ezekből mondjuk futhat több száz egyszerre.
A .NET felhúzásáról pedig nem installálás értelemben írtam, hanem "el kell indítani", de lehet hülyeséget beszélek, nem vagyok otthon ennyire ebben a témában. Mindenesetre a JVM-et el kell indítani, ennek a mintájára gondoltam.
lehet írni 2D, 3D játékokat C# nyelven, sőt, írnak is, erre lett kitalálva (többek közt) az XNA Framework
operációs rendszert is lehet írni C# nyelven, az más kérdés, hogy felveszi-e a versenyt a Windows operációs rendszerekkel, de szerintem nem is ez a cél :D:D
( [link] )
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!