webForumDet fria alternativet

c++ vs c#

18 svar · 726 visningar · startad av Qimen

QimenMedlem sedan juni 20015 009 inlägg
#1

Har börjat titta en del på c# men tycker inte det verkar finnas "information" om hur man lär sig och går vidare med det. Har även tittat en del på c++ och har märkt att det finns mängder med böcker och material till det.

Vilket språk är populärast?
Vilket kommer överleva bäst i framtiden?
Vilket språk är "lättast" samt mest kraftfullt?

Vill gärna veta lite allmänt om de båda språken. Har förstått att c# är mer inriktagt på windows medans c++ är platformsoberoende, stämmer detta?

Hittils har jag även märkt att det är lättare att få hjälp med c++. Har letat efter en del tutorialer till c# men de enda jag hittar är de som baseras på den som följer med vs.net

Berätta gärna om era erfarenheter gällande dessa språk.

SPiNMedlem sedan mars 20007 896 inlägg
#2

En liten och enkel tutorial för C# finns på: http://samples.gotdotnet.com/quickstart/

"Vilket språk är populärast?"
-- C++ har ju många fler år på nacken, så att det språket har fler användare är inte så konstigt. Men C#-anhängarna växer ständigt.

"Vilket språk kommer att överleva bäst i framtiden?"
-- Svårt att säga, det beror på hur Microsoft utvecklar C#. C++ kommer att finnas kvar länge, länge känns det som.

"Vilket språk är lättast samt mest kraftfullt?"
-- Lättast är C#, vilket har en enklare syntax och som inte innehåller lika mycket som C++. ( T.ex. pekare, m.m. som uppfattas av många som svårt ). C++ är däremot kraftfullare, som tillsammans med C blir ett hårdvarunära språk vilket inte C# är.

C# och hela .NET är sagt att det ska portas till andra OS än Microsofts, men än så finns ingenting stabilt släppt, och det som är på väg för andra OS är det inte Microsoft som har utvecklat. C++ & plattformsoberoende är väl sisådär. Visst kan man programmera plattformsoberoende, men det är krångligt om man kommer igång med fönsterhantering och lågnivåprogrammering. Man blir i så fall tvungen att skriva feta wrapperklasser, vilket inte är det lättaste - och man måste skriva olika för varje OS som sin applikation ska portas till.

Det hela beror ju egentligen på vad du ska programmera för applikationer. Det finns en mängd med olika programmeringsspråk som lämpar sig bäst för olika saker. Att välja ett språk efter hur många tutorials på nätet det finns känns lite skumt. :)

Så, vad vill du åstadkomma med din programmering?

QimenMedlem sedan juni 20015 009 inlägg
#3

Tack för ditt svar SPiN, det hjälpte en del.
Klart man inte väljer språk efter tutorialer det finns men det underlättar ju en hel del om man är nybörjare.
Vet inte exakt vad jag vill nå just nu men vill ju ha ngt som jag kan ha användning av senare. Även om jag antagligen bara kommer utveckla för windows så kaske man inte ska begränsa sig helt till det iaf windows skulle dö ut :l
Hmm säg till om jag säger något som är fel för jag kan inte alls exakt hur detta är.

Men så som du förklarar så tycker jag det verkar som c+ är min smak. Är man ny på c++ så finns det en hel del men för c# finns inte särskillt mycket tycker jag. Allt jag kollat på är baserad på den som följer med vs.net. Förutom den har jag inte hittat någon annan. :r
Är det stora skillnader i syntaxen?

Inom vilka område kan man använda de olika språken till? Tänkte om man kanske kan jobba mot webben och även med windowsprogrammering om man lär sig det.

renholmMedlem sedan apr. 20012 266 inlägg
#4

Vet inte riktigt för C++ men C# är fult kapabelt till att användas tillsammans med ASP.NET samt skall även fungera fint ett göra windowsapplikationer med, har dock inte arbetat så mycket med winapps.

QimenMedlem sedan juni 20015 009 inlägg
#5

Usch detta var svårt ju :p
För 10 minuter sedan blev jag övertygad om att jag nog skulle ta c++ men destu mer jag tänker på c# så går det åt det hållet.

Följer det med tutorialer och material med msdn?

SPiNMedlem sedan mars 20007 896 inlägg
#6

Det är ju inte jättestor skillnad i syntaxen, men den finns där. Vill du syssla med programmering för windows till att börja med, så är C++ det du ska använda - enligt mig. Att sedan ta steget och utveckla för andra plattformar blir ju inte svårt, eftersom att du då hanterar syntaxen och hur språket fungerar. Du får använda andra bibliotek bara.

C# är väl det språk som lämpar sig bäst om du vill syssla med webprogrammering samt windowsprogrammering parallellt med samma språk. Däremot kan du ju använda C++ vid webprogrammering också, i CGI t.ex. Gammalt? Ja. Föråldrat? Nej. Användbart? Absolut. :)

Självklart kan du ju efter att du har kommit igång med ett av språken, och känner att du behärskar det hyfsat, ta steget vidare och gå till nästa.

QimenMedlem sedan juni 20015 009 inlägg
#7

Då får det bli c++, känns mer som det är det rätta. Jag vill gärna ha en hel del exempel och material att ta en titt på. Visst det finns en del böcker för c# men tycker inte det var ngt vidare att komma med. :)

PeWMedlem sedan juni 200010 432 inlägg
#8

Är väl inget som hindrar att du börjar med C++ och sen känner efter om C# passar dina behov bättre. Om du lär dig C++ och OOP ordentligt är det inte så svårt att ta till andra språk, det finns mer likheter än skillnader - om man säger så :)

Angående pekare så är de en välsignelse från ovan - när man lärt sig dem och vad de står för. Men i C++ kommer man långt utan pekare (finns istället referenser (&)) så för den sakens skull behöver inte pekarnas vara eller icke vara nödvändigtvis bli ett hinder för att komma igång. Jag tror dock att det är lättare att gå från C++ till C#, men det är bara en åsikt... ;)

LaspMedlem sedan juli 200012 980 inlägg
#9

Visst är det så att C++ är det mer förankrade språket.
Jag tror att jag måste bena upp detta för Qimen när han kommer över för att kolla mina böcker. Oavsett språk vill man ju göra något i det.
Om syftet är att skriva användbara applikationer kan C# vara en snabb väg.
Men som i vanliga språk är grammatik och satsbyggnad viktiga grundstenar och där finns mer i C++. Jag har iof bara gått en kurs hos någon dansk som heter Bjarne, men uppbyggnad förståelse för programkonstruktion måste man ha i alla fall. Men vem lär ut sådant?

PeWMedlem sedan juni 200010 432 inlägg
#10

Lasp skrev:

...men uppbyggnad förståelse för programkonstruktion måste man ha i alla fall. Men vem lär ut sådant?

Väljer man att inte gå kurser i ämnet på exempelvis universitet eller högskola, kan man ändå använda samma litteratur och annan information som används där. Det verkar tyvärr florera en massa myter om att man själv är bästa smed och även om det kanske stämmer på en del, så lär det vara en senväg med enbart 'learning by doing' och absolut inte fungerande på alla individer. Varför begå alla tänkbara misstag som andra redan gjort, när den rätta (och snabbare) vägen redan finns dokumenterad och utstakad?

Tittar man i en del s.k 'bestsellers' i bokhandeln blir man lätt mörkrädd då författaren drar till med rena skräckexemplen i kodväg... tydliga exempel på måhända bra kunskaper om vad som finns att tillgå i ett språk, men tyvärr helt missvisande vad det gäller just programmeringsteknik.

Så mitt råd är ivf att hålla sig i linje med det som lärs ut inom de högre utbildningarna (Böcker, slides, labbar, tentor m.m).

QimenMedlem sedan juni 20015 009 inlägg
#11

PeW skrev:

Så mitt råd är ivf att hålla sig i linje med det som lärs ut inom de högre utbildningarna (Böcker, slides, labbar, tentor m.m).

Kan du rekommendera någon bok eller annat material som är bra då? :)

PeWMedlem sedan juni 200010 432 inlägg
#12

Om vi ska hålla oss till C++:

C++ Direkt av J.Skanskholm eller C++ Programmering av S.Prata samt att du kan söka på olika universitet / högskolor efter deras kurser i programmering med C++.

Om vi ska vara generella och språkoberoende så är det bara att kolla in ett datavetenskapligt program på universitet eller högskola efter deras kurser och i vilken ordning de går dessa. Programmeringsteknik och datastrukturer är s.a.s bara början...

QimenMedlem sedan juni 20015 009 inlägg
#13

Okej, får kolla med Lasp om han har något av de :e
Kan ev. prata med en kusin som går på lth, får se hur det går :)

developerMedlem sedan aug. 2001458 inlägg
#14

SPiN skrev:

"Vilket språk kommer att överleva bäst i framtiden?"
-- Svårt att säga, det beror på hur Microsoft utvecklar C#. C++ kommer att finnas kvar länge, länge känns det som.

Färre och färre applikationer (klienter såväl som services) utvecklas i C++ till förmån för framför allt C#, VB.Net och Java. Jag tror trenden kommer fortsätta starkt. Jag vet inget företag som skulle börja utveckla en webtjänst eller en serverplattform i C++, eftersom utvecklingstiden väsentligt längre än i C#, VB.Net eller Java. Tidigare har prestanda varit ett problem, men den tiden är förbi.

Inbyggda system utvecklas till stor del fortfarande i C eller C++, men med tanke på att vanliga mobiltelefoner nu kan köra Java eller C# kan man väl ana vart utvecklingen kommer gå. Även inbyggda system kommer troligen gå samma väg. Dock tror jag det kommer ta längre tid.
Operativsystem är väl där man ser starkaste anledningarna att fortfarande använda C/C++, men hur många av dina potentiella arbetsgivare håller på med sådant? Jämfört med sådana där du har nytta av C#.

SPiN skrev:

C++ är däremot kraftfullare, som tillsammans med C blir ett hårdvarunära språk vilket inte C# är.

Jag håller med om att C/C++ är mer hårdvarunära, men tycker att C# är mycket kraftfullare språk än C++. C#, tillsammans med .Net klassbiblioteket (BCL - Base Class Library) har stöd för så otroligt mycket som saknas i C++, typsäkerhet, 100-tals färdiga klasser som är lättanvända (betydligt lättare att lära sig än STL, och innehåller dessutom betydligt mer), delegates, stöd för asynkron programmering, möjlighet att dela kod med andra MSIL-språk (exempelvis VB.Net), bättre guidelines, lättare att göra användargränssnitt mm. Listan kan göras hur lång som helst.

Jag har hållt på med C++ sedan länge och C# sedan tidiga betorna kom. Nu när jag sätter mig med C++, vilket fortfarande händer ibland, sjunker min produktivitet rejält. Med C# eller Java koncentrerar jag mig 100% på problemet som ska lösas, men i C++ finns det alltid fällor och länkfel som tar fokus från de egentliga uppgifterna.

SPiN skrev:

Det hela beror ju egentligen på vad du ska programmera för applikationer. Det finns en mängd med olika programmeringsspråk som lämpar sig bäst för olika saker. Att välja ett språk efter hur många tutorials på nätet det finns känns lite skumt. :)

Så, vad vill du åstadkomma med din programmering?

Instämmer helt.

Vidare håller jag med PeW om att man ska lära av andra. Läs inte bara språk, utan även systemdesign och design patterns.
Alla bra programmerare jag känner utom 1 är högskoleutbildade och de "programmerare" jag stött på som är självlärda har föga imponerat på mig. Alltså håller jag helt med PeW om att learning by doing inte är det bästa sättet.

QimenMedlem sedan juni 20015 009 inlägg
#15

Nu när jag var helt säker på att jag skulle börja filura på c++ så
kommer detta mastodont inlägg och får en att vackla direkt. :o

Man kanske inte kan fråga så men jag gör det ändå, vad kan man göra i c# som inte går i c++ och tvärtom?
Om man vill jobba med windowsprogrammering, är det c# som gäller då?

SPiNMedlem sedan mars 20007 896 inlägg
#16

Mycket bra och informativt inlägg av developer, som vanligt. :)

developer skrev:

Jag håller med om att C/C++ är mer hårdvarunära, men tycker att C# är mycket kraftfullare språk än C++.

Hm, visst är det så. Det jag menade med kraftfullare var ju att man i stort sett kan göra "allt" ( Speciellt hårdvarunära programmering ) med C/C++. Men ser man på de stora klassbiblioteken, osv. som skeppas med C# så blir det på så sätt kraftfullare.

Qimen> Skulle jag lära mig ett språk för windowsprogrammering i dagsläget skulle jag titta mer på C# och .NET. Det är nytt och fräsch, och kommer att utvecklas ( Förhoppningsvis ) i många år framåt. Har du däremot chansen att följa PeW's goda råd, gör då det. :)

Aleph_OneMedlem sedan juni 2003372 inlägg
#17

Många visa ord av developer mfl.

Vad jag har märkt så är C/C++ programmerare mindre efterfrågade nu än för 3-4 år sedan (vilket kanske inte är så konstigt med tanke på alternativen som finns nu).
Utvecklar man i Java eller .NET (och då gärna C# med sin sköna syntax ;)) så kan man fokusera annorlunda. Minnesläckor är inget man (direkt) behöver oroa sig för. Precis som developer skriver, det finns stora och bra bibliotek man kan använda sig av.
Utveckla GUI i C# är ordentligt smidigt, även grafik som GDI+ är smidigt att jobba med.
På ett ställe (där allt för många svenskar har aktier ;)) så har dom börjat gå över från C++ till Java och C# tex.

C/C++ kommer självklart att användas (och behövas) länge till, men jag tror att det minskar för varje år som går.

Det viktigaste som jag ser det är att lära sig objektorientering ordentligt och allt vad det innebär. Kan du redan det så tycker jag du ska prova på _både_ C/C++ och C# så märker du vad som passar dig och det du ska ha det till bäst :)

QimenMedlem sedan juni 20015 009 inlägg
#18

Satt och jämförde lite synat mellan c++ och c# och faktum är att c# känns skönare. Det fanns även mer böcker om c# än vad jag föreställt mig så jag funderar lite till och kommer inget annat mastodont inlägg som bevisar något annat så får det bli c#. :)

QimenMedlem sedan juni 20015 009 inlägg
#19

Lasp skrev:

Jag har iof bara gått en kurs hos någon dansk som heter Bjarne

... Skaparen av c++ bara... :e

140 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)