C# eller C++

Tags:    c++

<< < 12 > >>
De ligner hinanden meget. Men hvilke foretrækker I? Begrund og kom med forskelle (fordele og ulemper) mellem de 2 sprog.



De ligner hinanden meget. Men hvilke foretrækker I? Begrund og kom med forskelle (fordele og ulemper) mellem de 2 sprog.


C++ er portabelt mellem platforme.
C# er managed code (stor fordel både sikkerhedsmæssigt og til debugging).
C++ defineres af et åbent udvalg (fordel), C# defineres af Microsoft (ulempe).
C# kan JIT compiles og dermed optimeres direkte til den platform som afvikler programmet (kæmpe fordel).
C# har automatisk styring af hukommelsen.



C# har automatisk styring af hukommelsen.


Bedste grund! :)
C# er desuden let af programmere i hvis man skal oprette windows forms m.v.



Jeg har lidt svært ved at se fordelen i C# i forhold til Java.

Syntaxmæssigt ligner de hinanden næsten til forveksling, men Java er mere åbent og meget platform uafhængigt.



Så i siger at C# er til alle platforme?



Så i siger at C# er til alle platforme?


Hvis man bruger .Net biblioteker så er det kun til de platforme der understøtter .Net runtimen. Det samme gælder selvfølgelig for Java. Men tror Java kører på flere platforme.



Indlæg senest redigeret d. 23.06.2009 14:10 af Bruger #14645
Så i siger at C# er til alle platforme?


Hvis man bruger .Net biblioteker så er det kun til de platforme der understøtter .Net runtimen. Det samme gælder selvfølgelig for Java. Men tror Java kører på flere platforme.


Nemlig. Java er netop lavet til at være platformuafhængigt. Det er C# ikke.



Så i siger at C# er til alle platforme?


I praksis er C# kun til windows platformen.

Jeg ved godt der er noget der hedder Mono, men det ville jeg ikke satse på.



Hvad angår automatisk styring af hukommelse, skal det lige nævnes at der findes biblioteker til C++ (og C) som implementerer dette. En google-søgning med "c++ garbage collection" giver gode resultater.

Hvilket sprog man vælger er oftest underordnet i forhold til det at lære at programmere. Når først man har lært at programmere, vælger man sproget efter hvad ens arbejdsplads/team arbejder med, og hvilken opgave der skal udføres. I det øjemed er der flere virksomheder i Danmark der efterspørger folk med erfaring med .Net-platformen, inklusiv C#-programmering. Til et fritidsprojekt eller platform-uafhængigt projekt ville jeg selv vælge C++, da det er bredt understøttet og meget mere frit.



Indlæg senest redigeret d. 25.06.2009 15:31 af Bruger #14585
Fordi C/C++ har arbtrære pointers og ingen runtime type information, så vil garbage collection til disse sprog altid være konservativ, eller i værste fald vil det collecte ting der stadig lever. Det er således ingen garanti mod memory leaks. C# og Java kan sagtens give denne garanti.

Når det så er sagt, så virker det sikkert glimrende i praksis, men jeg synes det er væsentlig at man ved det.



Ja, man kan bruge "arbtrære" pointere i C++, det er med til at gøre sproget fleksibelt nok til at kunne bruges i praksis. Men ved at bruge stl containere slipper man for langt det meste pointer gymnastik.

Langt de fleste moderne C++ implementationer har run time type information.

Men garbage collection er i bund og grund en uskik i realistiske sprog.



<< < 12 > >>
t