Forskel på c++ og c#

Tags:    c++

<< < 12 > >>
Hej.

Jeg ville lige høre om der var nogle der kunne fortælle mig hvad forskellen er på c++ og c#?





Hvis du vil holde dig til Windows, så vælg C# eller java.

Hvis du vil lave programmer til flere forskellige platforme (Win, mac, Linx osv...) kan du vælge java, C++ eller måske c. Java kører på alle platforme som har en JVM, man skal passe lidt på med C++, men der findes en del libraries som hjælper dig godt på vej som: Qt, gtkmm. WxWidgets osv.

Hvis du vælger udelukende Linux/Unix ville jeg anbefale dig at bruge C/C++.

Du kan måske starte med at lære C# og når du har styr på det, kan du bevæge dig ud i C++. C++ kan være lidt svært at lære, men det belønner sig ;)



Hvis du vil holde dig til Windows, så vælg C# eller java.

Hvis du vil lave programmer til flere forskellige platforme (Win, mac, Linx osv...) kan du vælge java, C++ eller måske c. Java kører på alle platforme som har en JVM, man skal passe lidt på med C++, men der findes en del libraries som hjælper dig godt på vej som: Qt, gtkmm. WxWidgets osv.

Hvis du vælger udelukende Linux/Unix ville jeg anbefale dig at bruge C/C++.

Du kan måske starte med at lære C# og når du har styr på det, kan du bevæge dig ud i C++. C++ kan være lidt svært at lære, men det belønner sig ;)


okay, kan allerede lidt c++, da jeg har brugt det i skolen. men tror jeg vil gå videre med c# i stedet for. hva gør man egentlig med grafik? hvordan kan jeg f.eks lave et simpelt program hvor man skal indtaste nogle oplysninger og så giver den et svar retur? har styr på hvor jeg skal lave selv koden til dette eksempel men ved ikke hvordan jeg kan ligge grafik ind over så det kommer til at se ordenligt ud.



Det handler ikke om, hvorvidt det ene er hurtigere end det andet. Det hele handler om compileren.

Eksempelvis finder jeg Visual Studio's C++-compiler bedre end den compiler, Dev-C++ bruger (mingW mener jeg den hedder), og det skyldes, at Visual Studio genererer bedre assembly end MingW.

Det samme gør sig gældende med .NET sprog. Hvad er hurtigst, C#, J#, Visual Basic eller C++/CLI? Ingen af dem, for de oversættes alle til MSIL eller CIL som det hedder hedder nu om dage. Hvis man skal sammenligne C++ med et .NET-sprog, fx C#, skal man derfor sammenligne assembly med CIL.

Jeg kan dog rigtig godt lide Ossis analogi; den er både humoristisk og sandfærdig. Selv udvikler jeg mest mine programmer med C++ og Win32 API'et, hvilket få herinde gør (og det er lidt trist, synes jeg), og jeg har før sammenlignet et Win32-API program med et .NET Windows Forms-program, hvor begge kunne nøjagtig det samme. Der var ingen tvivl; .NET vandt stort, men det skyldes ikke, at C# er hurtigere. Det skyldes for det første compileren, og for det andet de involverede biblioteker. Når du udvikler Windows GUI-programmer i .NET bruger du ikke Win32-API'et, og det er lidt af en fordel, da det ikke er verdens hurtigste API (det har en smule overhead, men det er også gammelt.)

Men summa summarum: hvis du vil sammenligne C++ med C#, så skriv C++ prorammet i Assembly (fx Masm32) og C#-programmet i MSIL.



Hvorfor genoplive en fire år gammel tråd???

Hvis man skal sammenligne C++ med et .NET-sprog, fx C#, skal man derfor sammenligne assembly med CIL.

Sludder. Din CPU kan ikke eksekvere CIL, så du skal sammenligne den JIT compilerede maskinkode med den maskinkode som C++ compileren genererer.

Og selv dét vil være forkert, for som du også selv siger, findes der flere compilere, og de virker forskelligt. Derudover bliver CIL koden oversat på runtime, så det skal man også lige tage med i beregningerne.

Hvordan koden kører på en maskine har intet med selve sproget at gøre. Det er altsammen op til oversættelsen, og til nogle opgaver er JIT compilet kode langt bedre end maskinnær C/C++ kode. Det giver derfor mere mening at sammenligne sprogenes struktur samt hvor nemt det er at overskue og debugge store projekter skrevet i sproget.

hvis du vil sammenligne C++ med C#, så skriv C++ prorammet i Assembly (fx Masm32) og C#-programmet i MSIL.


Nonsens!



Indlæg senest redigeret d. 27.05.2013 10:51 af Bruger #2695
Leve Sharp!



<< < 12 > >>
t