C++ vs. Managed C++

poruka: 20
|
čitano: 4.311
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
C++ vs. Managed C++
pitanje

Vidim da nema teme koja konkretno raspravlja o ova dva načina programiranja u C++-u, pa sam je odlučio pokrenuti.

Koliko sam saznao običan C++ spada u native coding, a to nudi brže izvođenje programa, ali nemože na sve platforme i teži je.

Dok Managed C++ spada u managed coding koji je sporiji, ali ide na sve platforme koje sadrže CLR, a i lakši je za pisati.

 

Ono što me zanima je kako to sve izgleda u praksi i šta kažu iskusni programeri na izbor između te dvije vrste programiranja?

 

Zatim, jeli teško prijeći sa običnog na ovaj za .NET framework.

 

Koja od ove dvije vrste ima svjetljiju budućnost (naravno u profesionalnoj primjeni). Moram napomenut da me proizvodi poput XNA game studija mame na ovu .NET framework stranu, a što opet otvara pitanje DirectX ili Managed DirectX (ali necemo sad off-topic).

 

Što se tiče ove jednostavnosti programiranja u visual c++ .NET, ako ne postoji kompajler koji ima form designer za obican c++ (neki MFC), a da ne govorimo o garbage collection, onda je managed c++ daleko jednostavniji, brži i lakši.

 
0 1 hvala 0
16 godina
neaktivan
offline
RE: C++ vs. Managed C++
prihvaćeno rješenje
kung-fu kaže...

Koliko sam saznao običan C++ spada u native coding, a to nudi brže izvođenje programa, ali nemože na sve platforme i teži je.

Dok Managed C++ spada u managed coding koji je sporiji, ali ide na sve platforme koje sadrže CLR, a i lakši je za pisati.

Običan C++ je najbrži, i može na skoro sve platforme (ako ne i na sve). U svakom slučaju, može na više njih od C++ .NETa.
Managed kod je kod koji se ne izvršava izravno, tj. ne kompajla se u binaran kod, nego u poseban jezik koji onda raznim tehnikama izvršava virtualna mašina. CLR postoji za manje platforma... ugl. za sve platforme za koje postoji CLR postoji i C++ kompajler. Obrnuto ne vrijedi.

Koliko je lakši je vrlo subjektivna stvar. Nisam ga koristio pa ni neću komentirati, ali sumnjam da su velike razlike.

kung-fu kaže...

Zatim, jeli teško prijeći sa običnog na ovaj za .NET framework.

.NET nije novi jezik, samo framework. Dakle, sve što si naučio i dalje vrijedi, samo što sada imaš dostupno više funkcionalnosti.
kung-fu kaže...

Koja od ove dvije vrste ima svjetljiju budućnost (naravno u profesionalnoj primjeni). Moram napomenut da me proizvodi poput XNA game studija mame na ovu .NET framework stranu, a što opet otvara pitanje DirectX ili Managed DirectX (ali necemo sad off-topic).

Ako ćeš koristiti XNA, najbolje ti je koristiti C#. XNA je svakim svojim dijelom orijentiran na upotrebu sa C#om. Isto tako, ako ćeš koristiti XNA, ne moraš se brinuti od DX-u jer ti neće trebati (explicitno, u projektu se nigdje ne spominje DX. U "unutrašnjosti", XNA je ustvari DX sa drugačijim nazivima funkcija, klasa i ostaloga)
15 godina
neaktivan
offline
RE: C++ vs. Managed C++

Ako češ koristiti .Net Framework onda svakako C#. C++ managed je dobar ali prilagođen .net framework okruženju a sintaksa mu je slična C#.
razlikuje se od C++-a jer ima razlika kad se stavraju klase i u načinu čiščenja memorije.To je u biti C++/CLI standard.

Private
16 godina
offline
C++ vs. Managed C++

Cak zna biti da je managed kod (c# ili c++) cak malo brzi od nativnog, zbog mikrooptimizacija koje kompajler zakljuci tijekom izvrsavanja.

 

Primjer koji sam nedavno procatao:

postoje razliciti addon search enginei na Outlook. Jer nakon 5 godina se zna skupiti po nekoliko Gb mailova i pretrazivanje postaje jako zahtjevan posao. Postoji nekoliko addon rjesenja, uglavnom pisanih u c/c++, ali najbrzi je jedan pisan u c# koji koristi Lucene.NET (isto c#) search engine (open source stvar). Pitali su autora kako je uspio natjerati svoj search da radi tako brzo. On je ispricao da je prvu verziju napravio u c/c++, ali je c/c++ kod jako tesko refactorirati radi tuniranja (presloziti), bas zbog pointera, prckanja po memoriji i slicnih "brzih" stvari, dokle se na c# verziji mogao posvetiti iskljucivo algoritmu za pretrazivanje.

 

Iz mog iskustva bi rekao da managed .net jezici mogu i ne moraju biti brzi, sve ovisi o developeru i njegovom znanju. Cesto sam primjetio da .net developeri neznaju kada i zasto moraju koristiti StringBuilder klasu, sto bi bila neka osnova optimizacije. O razvoju asp.net web stranica da niti ne pricam! Razlike u brzini se tu popnu do cca 50x (doslovno, provjereno!)

"A developer is a machine that converts coffee into code"
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: C++ vs. Managed C++
Private kaže...

Ako češ koristiti .Net Framework onda svakako C#. C++ managed je dobar ali prilagođen .net framework okruženju a sintaksa mu je slična C#.
razlikuje se od C++-a jer ima razlika kad se stavraju klase i u načinu čiščenja memorije.To je u biti C++/CLI standard.

Sintaksa .NETa?
15 godina
offline
RE: C++ vs. Managed C++
itf4n kaže...
Private kaže...

Ako češ koristiti .Net Framework onda svakako C#. C++ managed je dobar ali prilagođen .net framework okruženju a sintaksa mu je slična C#.
razlikuje se od C++-a jer ima razlika kad se stavraju klase i u načinu čiščenja memorije.To je u biti C++/CLI standard.

Sintaksa .NETa?
 Valjda je mislio na sintaksu managed c++ i C#.
"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
15 godina
neaktivan
offline
RE: C++ vs. Managed C++
itf4n kaže...
Private kaže...

Ako češ koristiti .Net Framework onda svakako C#. C++ managed je dobar ali prilagođen .net framework okruženju a sintaksa mu je slična C#.
razlikuje se od C++-a jer ima razlika kad se stavraju klase i u načinu čiščenja memorije.To je u biti C++/CLI standard.

Sintaksa .NETa?
 Malo bolje počitaj što sam napisao .....
Console::
i
Console.
recimo u C++ i C# je slično...ako se tebi mora sve doslovno objasniti i ako ne razumiješ  što želim reći u dvije rečenice
pronađi u sebi problem.
Da li si uopće programirao s managed C++-om.
I preporučujem autoru još jednom ako će u .Net F. raditi  naravno C#.
Ako želiš C++ učiti onda nativ C++.
Ovisi o "ukusu" i tvojoj potrebi s čime češ se baviti .
Private
Poruka je uređivana zadnji put pet 13.2.2009 11:53 (Private).
15 godina
offline
RE: C++ vs. Managed C++
Private kaže...
 Malo bolje počitaj što sam napisao .....
Console::
i
Console.
recimo u C++ i C# je slično...ako se tebi mora sve doslovno objasniti i ako ne razumiješ  što želim reći u dvije rečenice
pronađi u sebi problem.
Da li si uopće programirao s managed C++-om.
Pa ako baš gledaš "vizualno" C++ i C# nisu slični, ali kao sintaksa jesu (za nekog tko programira malo duže je to skoro isto, za početnika baš i ne)...
btw. čovjek (itf4n) se kuži u programiranje (već je malo duže na ovom forumu), tako da ne sumnjam da je probao Managed C++ ili ti ga Visual C++ .NET... Ne se odma ljutitiSmijeh
"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
15 godina
neaktivan
offline
RE: C++ vs. Managed C++

Kao naizgled "sintaksa" recimo na to sam mislio..ako je autor početnik onda se ispričavam na usporedbi.Naravno ,ne mora se na forumu

dugo biti i na taj način "znati" ili kužiti programiranje..a baš zbog toga me uopće iznenadilo pitanje!!!!

Private
Poruka je uređivana zadnji put pet 13.2.2009 11:57 (Private).
15 godina
offline
RE: C++ vs. Managed C++
Private kaže...

Kao naizgled "sintaksa" recimo na to sam mislio..ako je autor početnik onda se ispričavam na usporedbi.Naravno ,ne mora se na forumu

dugo biti i na taj način "znati" ili kužiti programiranje..a baš zbog toga me uopće iznenadilo pitanje!!!!

No onda smo se shvatili Smijeh. Ma ne već malo duže čitam njegove komentare i primjetio sam da čovjek nije pao s Marsa i da se "kuži" u programiranje (kao i ja nešto malo znam Belji se), ali zna nekad biti malo ciničan i oštro direktan, pa ne mu uzeti za zlo takva "cinična" pitanja (još je mlad, pa malo i prepotentan, ali tak i treba biti). Recimo da je već dosta ljudi pomogao na ovom forumu. No dobro dosta sam ga hvalio Smijeh
"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
15 godina
protjeran
offline
RE: C++ vs. Managed C++
Private kaže...
itf4n kaže...
Private kaže...

Ako češ koristiti .Net Framework onda svakako C#. C++ managed je dobar ali prilagođen .net framework okruženju a sintaksa mu je slična C#.
razlikuje se od C++-a jer ima razlika kad se stavraju klase i u načinu čiščenja memorije.To je u biti C++/CLI standard.

Sintaksa .NETa?
 Malo bolje počitaj što sam napisao .....
Console::
i
Console.
recimo u C++ i C# je slično...ako se tebi mora sve doslovno objasniti i ako ne razumiješ  što želim reći u dvije rečenice
pronađi u sebi problem.
Da li si uopće programirao s managed C++-om.
I preporučujem autoru još jednom ako će u .Net F. raditi  naravno C#.
Ako želiš C++ učiti onda nativ C++.
Ovisi o "ukusu" i tvojoj potrebi s čime češ se baviti .
 A tko bi tebe razumio što ti želiš reći? Da si bar jednom u životu razumljiv sigurno ovakvih pitanja ne bilo. Možda bi bilo pametno da ti u sebi nađeš problem pa da se kasnije ne obraćaš u stilu "ja sam mislio" jer nitko ovdje ne čita misli. Također, uspoređujući tebe i njega dečka možeš samo zamoliti da ti drži instrukcije. S obzirom na toliku gomilu gluposti koje dnevno izneseš ovdje na forumu uopće me niti ne čudi tvoj avatar, i prije bi rekao da si ti ovaj na slici desno, nego lijevo.
16 godina
neaktivan
offline
RE: C++ vs. Managed C++
autorov komentar
Private kaže...
I preporučujem autoru još jednom ako će u .Net F. raditi  naravno C#.
Ako želiš C++ učiti onda nativ C++.
Ovisi o "ukusu" i tvojoj potrebi s čime češ se baviti .
 Koliko odgovora -- heeheSmijeh  --- fala!!
Volio bi se baviti prvenstveno grafikom, ali opet nebi volio biti tukac za win aplikacije.
XNA je komad programa za početnike i hobiste (znači za mene), ali što ako ja gledam dugoročnije i planiram ostati u tim vodama kao pro.?
I još nešto: Native code u profesionalnoj primjeni danas i u budučnosti u odnosu na managed. Kako se stvari razvijaju, dali sve više programera prelazi na .NET.
15 godina
protjeran
offline
RE: C++ vs. Managed C++
kung-fu kaže...
Private kaže...
I preporučujem autoru još jednom ako će u .Net F. raditi  naravno C#.
Ako želiš C++ učiti onda nativ C++.
Ovisi o "ukusu" i tvojoj potrebi s čime češ se baviti .
 Koliko odgovora -- heeheSmijeh  --- fala!!
Volio bi se baviti prvenstveno grafikom, ali opet nebi volio biti tukac za win aplikacije.
XNA je komad programa za početnike i hobiste (znači za mene), ali što ako ja gledam dugoročnije i planiram ostati u tim vodama kao pro.?
I još nešto: Native code u profesionalnoj primjeni danas i u budučnosti u odnosu na managed. Kako se stvari razvijaju, dali sve više programera prelazi na .NET.
 Svakako sve više programera prelazi na .NET. Ipak je to novija tehnologija i ima opravdanu popularnost. Ako ćeš na dugoročno onda svakako to.
15 godina
offline
RE: C++ vs. Managed C++
kung-fu kaže...
 Koliko odgovora -- heeheSmijeh  --- fala!!
Volio bi se baviti prvenstveno grafikom, ali opet nebi volio biti tukac za win aplikacije.
XNA je komad programa za početnike i hobiste (znači za mene), ali što ako ja gledam dugoročnije i planiram ostati u tim vodama kao pro.?
I još nešto: Native code u profesionalnoj primjeni danas i u budučnosti u odnosu na managed. Kako se stvari razvijaju, dali sve više programera prelazi na .NET.
Definitivno bi ti preporučao .NET. Osobito ako si još početnik. Kombinacija XNA + C# je super. Ja se malo igram s time i sviđa mi se jako. Iako je to još dosta "mlada" tehnologija (3 godine) i malo ljudi je koristi, mislim da u budućnosti to bude dosta dobar framework za izradu igara (već je sad to)...
"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
16 godina
neaktivan
offline
RE: C++ vs. Managed C++
autorov komentar
Tracer kaže...
 Svakako sve više programera prelazi na .NET. Ipak je to novija tehnologija i ima opravdanu popularnost. Ako ćeš na dugoročno onda svakako to.
 Recimo da sam takvo nešto baš htio čuti, ali ono što sam već rekao u prijašnjoj poruci vezano za grafiku i DirectX 10. Prepostavljam da mi to neće šljakati u .NET programiranju.
E pa koji DirectX API koristim za to ako želim raditi sa managed coding.
Druga stvar: Mislim da je bespotrebno da sad učim C#, ako se jednostavno mogu prebaciti na managed c++, ali to je moje mišljenje.
15 godina
offline
RE: C++ vs. Managed C++
kung-fu kaže...
 Recimo da sam takvo nešto baš htio čuti, ali ono što sam već rekao u prijašnjoj poruci vezano za grafiku i DirectX 10. Prepostavljam da mi to neće šljakati u .NET programiranju.
E pa koji DirectX API koristim za to ako želim raditi sa managed coding.
Druga stvar: Mislim da je bespotrebno da sad učim C#, ako se jednostavno mogu prebaciti na managed c++, ali to je moje mišljenje.
Neznam dal si shavatio što ti ljudi pokušavaju reći. XNA si možeš zamisliti kao managed DirectX programiranje za C#, tj. jednostavno rećeno, ti napišeš nešto u XNA i XNA framework pri izvođenju poziva managed DirectX funkcije... Neznam dal radi sa managed C++ (u teoriji bi trebalo raditi, ali nisam 100% siguran, nisam probao). Znači ako te zanima XNA najbolje bi bilo da naučiš C#, a ako već znaš C++, nebi ti to trebalo biti baš veliki problem.

Evo što sam našao na netu

During the GDC 2006 Microsoft presented the XNA Framework, a new managed version of DirectX (similar but not identical to Managed DirectX) that is intended to assist development of games by making it easier to integrate DirectX, High Level Shader Language (HLSL) and other tools in one package. It also supports the execution of managed code on the Xbox 360. The XNA Game Studio Express RTM was made available on December 11, 2006, as a free download for Windows XP. Unlike the DirectX runtime, Managed DirectX, XNA Framework or the Xbox 360 APIs (XInput, XACT etc) have not shipped as part of Windows. Developers are expected to redistribute the runtime components along with their games or applications.

No Microsoft product including the latest XNA releases provides DirectX 10 support for the .NET Framework.

A ako baš želiš raditi sa Managed DirectX-om onda mislim da je najbolja kombinacija C++ ili Managed C++ u kombinaciji sa Managed Directx

"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
Poruka je uređivana zadnji put pet 13.2.2009 14:05 (dado2202).
16 godina
neaktivan
offline
C++ vs. Managed C++
autorov komentar

A neznam, još ću malo razmisliti o svemu tome.

Fala na odgovorima. Trenutačno nemam pojma sta da radim. Na pocetku je sve bilo tako jednostavno c++ i directx i točka, a sada .. pufff - sve ovo.

Vjerovatno ću početi sa C#.

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ vs. Managed C++

Koliko ja iznesem gluposti toliko ti vidim voliš vrjjeđati...svaka čast !!@Tracer

Private
16 godina
neaktivan
offline
C++ vs. Managed C++
autorov komentar

Još jedna stvar. Prvo sam mislio završiti sa knjigom "Demistificiran C++" i tek onda na C#. Ionako ću u toj knjizi naučiti još dosta o objektnom pristupu.

Sad sam na poglavlju 7. "Strukture i unije".

 

Ako netko misli da bi trebao tu knjigu zadužiti za skupljane prašine i odma nabaviti neku C# knjigu, neka mi slobodno kaže.

 
0 0 hvala 0
15 godina
protjeran
offline
C++ vs. Managed C++

Što bolje poznavanje C++a će ti svakako pomoći pri radu s C#-om.

Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice