Skillnaden är att det är två helt olika programmeringsspråk med helt olika syntax (ok, det finns likheter mellan dem). C++ finns på princip alla platformat som finns, medans C# är utvecklat för .NET Framework. Finns även en variant av C++ som du kan köra på .NET Framework som kallas "Managed C++". Man kan säga så här: OK... fundera bara på med vilket jag ska börja... antagligen blir det väl C-Sharp efter som det har fönstergrej innan (iaf i ms dev env :D) (har väl inte c++, kommandoprompt? (om man inte lägger till nåt?)) C# har inbyggt stöd för fönsterhantering, ja, såvitt jag förstår. Frågan är om det är ett tillräckligt starkt skäl. <b>utan man har lagt över ansvar till bibliotek, vilket jag anser vara ett bra drag.</b> Jo, det är jag helt medveten om, men som sagt är inget klart än. jag tror inte tanken med c# är att slåut c++. Man får inte heller glömma att denna disskutionen förs inom ett tidsperspektiv som i princip har sina ramar i nutid. Microsoft kommer att väva in .NET i hjärtat av windows (med stora steg i både longhorn och blackcomb) och när (inte om) detta är klart så kommer prestandan att vara helt annorlunda. >c# är tänkt att ersätta vb och inte c++. jo , men om man kollar på vad det används till . >c# är tänkt att ersätta vb och inte c++. Och det kommer återigen tillbaks till det jag alltid säger: VB.NET skulle aldrig ha skapats från första början. >vb6 och c# används till att göra ungefär samma typ av saker..Sv: C# vs. C++
Om du vill ha en "detta kan du göra i A men inte B, och vise versa lista" så skulle den helt enkelt bli för lång för att det skulle vara intressant att skriva och ta del av den =)
---
<b>Andreas Håkansson
Student of Software Engineering</b>Sv: C# vs. C++
Syntaxmässigt är C++ och C# någorlunda lika.
Båda de språken och Java har sitt ursprung i C, där åtminstone jag anser (och nog de flesta med mig) att C++ är det som är mest likt.
Tittar man sen på regellverket, biblioteken, programmeringsstilen och kompileringen så är C# mycket närmare Java än C++. Jag menar därför att C# inte bör/kan jämföras med C++. Om man ska jämföra C# med något (jag tycker aldrig att det är rimligt att jämföra olika programmeringsspråk), så får det bli Java.Sv: C# vs. C++
//Thomas
PS. Tack för svaren :DSv: C# vs. C++
Personligen anser jag C++ överlägset, dels eftersom det är ett väldigt moget språk, dels eftersom det är ett erkänt plattformsoberoende. Det finns heller inte mycket skräp inbyggt i själva språket, utan man har lagt över ansvar till bibliotek, vilket jag anser vara ett bra drag.
Att skapa fönster i C++ behöver inte vara det minsta svårt. Man lär sig ett fristående bibliotek (t.ex. något gratis), och sedan är det förmodligen lika lätt som att använda C#, men man har redan från början en starkt plattformsoberoende. Eller, om man bara är intresserad av windows - så kör man med Borland's, och har ett effektivt RAD-verktyg där man väldigt enkelt kan "rita upp" sina fönster, precis som i VB.
Sen är väl C# fortfarande aningen i nån slags utvecklingsfas?
C++ har varit det i typ 20 år, och har först nu börjat bli riktigt stabilt. Är rädd att C# inte är helt klart än.Sv: C# vs. C++
det är ju samma för c# , alt ligger ju i frameworket/tredjeparts libb.
så det finns ju inget som hindrar att du använder gtk# som fönsterhanterare i c# ,så kan du göra apps för både windows och för linux (www.go-mono.com , även om deras implementering inte är 100% klar)
det som krävs för att c# ska kunna köras på andra plattformar är att det finns ett runtime libb för .net på den plattformen.
på samma sätt som det krävs att det finns en kompilator för en viss plattform för att du ska kunna kompilera och köra c++ på den plattformen.
//RogerSv: C# vs. C++
Sen så är (missade jag det?!) mitt största argument att den stora mängden kod redan skriven för C och C++ inte kommer att kunna portas inom överskådlig framtid, och all den koden är värd mycket.
Att sedan lära sig C# är väl inget fel i, men jag anser att om man tänker på återanvändbarhet så tror jag att det ännu inte är lämpligt att slänga sig in i C#. Och med tanke på att det redan utvecklas en "uppföljare" till C++ (C++0x), så finns det inte heller något som säger att C# skulle "slå ut" C++.Sv: C# vs. C++
c# är tänkt att ersätta vb och inte c++.
c# är trevligt om man gör websidor , backends mot databaser , och rad gui apps.
då är det perfekt.
dock skulle jag ju inte enns försöka skriva 3dstudio max i c#.
(ok jag skulle inte försöka skriva 3dstudio max [punkt] det jag menar är att c# inte lämpar sig för det , oavsett vem som skriver det)
//RogerSv: C# vs. C++
Tar man även Mr T:s ringa ålder på 10-15 i tankarna så är det inte så att han kommmer att sitta på arbetsmarknaden inom snar framtid som utvecklare. Poner att han har mellan 8 (om han är 10) och 3 (om han är 15) år tills det att han är 18 och klar med utbildning på gymnasie nivå. Redan där kommer .NET att ha fått ett starkare fotfästa inom Windows världen (även här ett beslut Mr T måste ta, vilken platform är han intresserad av att utveckla på). Har man sedan i tanke på att idag måste man ha en högskole/universitetsutbildning för att ha lite chans (om han inte blir ruskigt duktig a la guru) på ett IT jobb (visst kan det ha ändras när han är i rätt ålder) så har troligen denna bild ändrats ännu mer eftersom vi snackar ytterligare 3-4½ år in i.
Sen, personligen, tycker jag att disskutionen "platforms oberoende" har fått för stor fokus idag. Visst förekommer det, men det är lång ifrån majoriteten av C++ kod som kan (eller för den delen görs) kompileras rakt av på en anna platform eftersom den har ett helt annar underliggande system för t.ex säkerhet och övrigatjänster.
C# har onekligen en mycket kortare TTM (Time-To-Market) än C++.. det finns massor av punkter som talar både för och emot både språken och jag anser inte att det är så trivialt att C++ är det mer "robusta" alternativet. har utvecklar i C# i ~2år nu och anser att språket som syntax är väldigt genomarbetat.. sen finns det inget mer att säga om C# för det är just vad det är.. en syntax.. restan av magi:n ligger i .NET Framework (och hela .NET Platformen).
---
<b>Andreas Håkansson
Student of Software Engineering</b>Sv: C# vs. C++
Jaså? Om det är något C# är tänkt att "ersätta" så är det väl Java / J++.
MSSv: C# vs. C++
vb6 och c# används till att göra ungefär samma typ av saker..
och om c# är bättre än vb6 , och de används till samma saker , så kommer det väll ersätta vb6 ??
eller?
men visst , den primära anledningen att ms skapade c# var väll att få en konkurent till java...
men om ms var nöjda med vb och inte tänkte ersätta det så förstår jag inte riktigt varför de inte spillde allt krut på vb.net och satsade på att få det till sin javakonkurent...
//RogerSv: C# vs. C++
Då är jag på rätt väg :D :P
Mr T @thomassida.cjb.netSv: C# vs. C++
Att ersätta VB tycker jag är _så_ onödigt. VB fungerade inte smärtfritt, det var inte konsistent, och det hade mycket svagt stöd för oo. Ändå hade det sina grundläggande fördelar; lätt att lära sig, något sorts stöd för det mesta och kort utvecklingstid.
VB var ett lapptäcke, och man kan tycka att det behövde en upprustning.
Sen skapas ett språk som är ganska vettigt, C#. Innehåller inte det jag söker, och ger inte mig några direkta fördelar, men det kan fungera som ett aningen mer svårinlärt substitut för VB. Men i samma veva gör man ett VB.NET, som i stort sett bara har en annan syntax än C#, och en viss virtualisering av en del "tunga" operationer. Detta är ingen upprustning, det är en totalrenovering, och det är för mycket för en van VB-proggare.
Varför gjorde man det?
Folk som kan vb behöver i princip lära sig lika mycket för att ta till sig VB.NET som C#. Folk som inte kan programmera alls lär ha lika lätt för båda
Folk som kan Java lär definitivt föredra C#.Sv: C# vs. C++
Detsamma kan väl sägas om VB.NET i så fall.
>och om c# är bättre än vb6
Det är det inte alla som tycker.
>och de används till samma saker , så kommer det väll ersätta vb6 ??
Av de VB6 användare som flyttar till .NET tror jag majoriteten kommer välja VB.NET framför C#. Sen tror jag VB6 kommer användas i många år till.
>men om ms var nöjda med vb
Det tror jag inte de var, och jag vet bestämt att många användare inte var det. Och de kan inte bara vara nöjda och luta sig tillbaka och rulla tummarna, utan måste fortsätta förbättra produkterna om de ska tjäna pengar.
>så förstår jag inte riktigt varför de inte spillde allt krut på vb.net och satsade på att få det till sin javakonkurent...
VB.NET skulle aldrig kunna bli någon riktig konkurrent till Java. Det finns för många programmerare som måste få sin dagliga dos av krullparenteser. Ett antal tusen av dem jobbar själva hos Microsoft.
MSSv: C# vs. C++
> C# [...] kan fungera som ett aningen mer svårinlärt substitut för VB.
Svårinlärt var ordet, och det duger inte. Du får tänka på att majoriteten av VB användarna är vad som brukar kallas icke-programmerare, alltså folk som egentligen inte kan så mycket om programmering, men ändå har fått för sig att slänga ihop något enkelt program, kanske för att automatisera något i sitt vanliga jobb. Att dessa kunde skapa enkla program i VB utan egentliga programmeringskunskaper är onekligen vad som gjort VB så populärt (läs dragit in pengar till Microsoft), men även vad som gett VB dess dåliga rykte.
Det finns inte en chans att dessa människor ska lära sig C# istället, VB.NET är betydligt enklare att komma igång med. Och det finns folk som hävdar att även VB.NET var för krångligt för många i första versionen, och jag tror Microsoft kommer jobba på att sänka tröskeln ytterligare i kommande versioner.
Skulle inte VB.NET finnas, utan C# var det enda "stora" språket för .NET, skulle nog gamla VB användare så småningom vända sig till VBA eller VBscript istället.
>Varför gjorde man det?
Att inte ha en Basic variant för .NET vore idiotiskt, och Microsoft skulle antagligen tappa massor av kunder på det.
>Folk som kan vb behöver i princip lära sig lika mycket för att ta till sig VB.NET som C#.
Återigen, det här handlar mer om personer som inte kan programmera.
Sen finns det naturligtvis de som är duktiga programmerare och ändå väljer VB.NET (för att det är ett mycket kompetent språk), men jag tror de utgör en mindre del av kundkretsen.
MS