Programmerings språk!
> Men va drar man för nytta.
Vem är "man" ?
Microsoft drar nog störst nytta, genom fler gemensamma delar
för de olika "språken".
> Är det så att man kan köra på någon annan plattform.
> Och i så fall vilka?
Kolla på MONO. Men det har inget med Microsoft att göra.
Och det är inget jag skulle bygga en karriär/framtid på...
> Fördelen med det är att du kan blanda kod från olika programmeringsspråk
Ja, i fallet med .NET.
Men det går naturligtsvis att uppnå även utan att ha en .NET liknande
runtime-miljö. Att "blanda" språk är äldre än Microsoft självt...
Vem är "man" ?

Microsoft drar nog störst nytta, genom fler gemensamma delar
för de olika "språken".
> Är det så att man kan köra på någon annan plattform.
> Och i så fall vilka?
Kolla på MONO. Men det har inget med Microsoft att göra.
Och det är inget jag skulle bygga en karriär/framtid på...

> Fördelen med det är att du kan blanda kod från olika programmeringsspråk
Ja, i fallet med .NET.
Men det går naturligtsvis att uppnå även utan att ha en .NET liknande
runtime-miljö. Att "blanda" språk är äldre än Microsoft självt...
Om kravet är att det MÅSTE kunna köra på flera plattformar så är nog inte .NET det bästa.
Men om du vill ha bästa möjliga utvecklingsmöjligheter för Windows så tycker jag iaf att .NET är det rätta.
Att man kan blanda kod från olika programmeringsspråk i .NET är något man får på köpet. Enda riktiga nyttan man har är nog om man skall vidareutveckla "Gamla" applikationer. Jag har dock aldrig utnyttjat den möjligheten i verkligheten.
MONO finns ju och det fungerar någorlunda, men jag skulle inte använda det till något för betalande kunder.
Men om du vill ha bästa möjliga utvecklingsmöjligheter för Windows så tycker jag iaf att .NET är det rätta.
Att man kan blanda kod från olika programmeringsspråk i .NET är något man får på köpet. Enda riktiga nyttan man har är nog om man skall vidareutveckla "Gamla" applikationer. Jag har dock aldrig utnyttjat den möjligheten i verkligheten.
MONO finns ju och det fungerar någorlunda, men jag skulle inte använda det till något för betalande kunder.
Vet inte om jag har uttrykt mig otydligt eller om det är jag som inte förstår.
Men jag försöker igen!
Tillämpningar skrivna i C# körs liksom javaprogram i en virtuell maskin vilket bl a innebär att programmet kompileras just innan det körs (se JIT-kompilering) Det blir väl MSIL-kod som sen varje gång man kör ett program kompileras till maskinkod.
Vad drar man för nytta av detta. Det kan väl inte ha med att man kan blanda olika språk som några av svaren är.
Men jag försöker igen!
Tillämpningar skrivna i C# körs liksom javaprogram i en virtuell maskin vilket bl a innebär att programmet kompileras just innan det körs (se JIT-kompilering) Det blir väl MSIL-kod som sen varje gång man kör ett program kompileras till maskinkod.
Vad drar man för nytta av detta. Det kan väl inte ha med att man kan blanda olika språk som några av svaren är.
Om vi pratar frameworks som exempelvis .NET och MONO så skulle jag villja slå ett slag för Qt. http://www.trolltech.com. Ett i mitt tycke mycket bra framwork för att uveckla för flera plattformar. Bland annat Adobe använder den.
Jag slår ett slag för Python som alternativ. En interpreterande språk, men som "förkompileras" (alternativt JIT) och kan gå riktigt snabbt och är helt plattformsoberoende. T.ex. så lyckas en webbserver skriven i Python (Spawning) ge mer prestanda än Apache + mod_python.
Jag skulle verkligen rekommendera C# till en nybörjare av den anlednignen att det går väldigt snabbt att få resultat av vad man lärt sig. Att smälla ihop något enkelt program med System.Windows.Forms lär man sig på en dag, till skillnad från när man skulle lära sig C++, då man efter en veckas slit lyckades göra ett konsollbaserat 4-i-rad. Vill man instället göra Windows Presentation Foundation gränssnitt så är inlärningströskeln lite högre, men å andra sidan kan du göra ganska häftiga 3D-accelererade gränssnitt.
Det är givetvis en nackdel att det är plattformsberoende, men som tidigare sagts är det inte svårt att lära sig ett nytt språk när man redan kan programmera.
Vill du göra ditt C#-program plattformsoberoende så kan du använda mono, men ännu hellre kanske göra det till en webbsida. Med ASP.NET (programmerat i C# då) och AJAX kan du göra den nästan lika interaktiv som ett vanligt desktop program.
Ytterligare en sak som talar för .NET är Visual Studio 2008 som är den överlägset bästa utvecklingsmiljö som jag jobbat i. Gratisversionen som heter express har inga begränsningar du kommer märka av om du sysslar med programmering på hobbynivå, ska du sedan arbeta med det så har nog din arbetsplats råd att köpa en fullversion. Fördelen är att det är väldigt lätt att gå från expressvarianten till ett stort Team Foundation system där massor av utvecklare arbetar tillsammans.
Vad gäller prestanda så har jag aldrig märkt av några problem med .NET-program, en fördel som inte tidigare nämnts med att .NET inte kompileras till maskinkod är att koden optimeras inte bara av kompilatorn utan under tiden du kör ditt program. Dessutom har du en Garbage Collector som rensar upp bland dina variabler du inte använder och du får inte samma problem med minnesläckor som kan finnas med C++ till exempel. Vilket kan vara väldigt skönt som nybörjare.
Stöter du på några problem så brukar det inte heller vara några problem att få hjälp då det finns väldigt mycket folk som använder just .NET
Det är givetvis en nackdel att det är plattformsberoende, men som tidigare sagts är det inte svårt att lära sig ett nytt språk när man redan kan programmera.
Vill du göra ditt C#-program plattformsoberoende så kan du använda mono, men ännu hellre kanske göra det till en webbsida. Med ASP.NET (programmerat i C# då) och AJAX kan du göra den nästan lika interaktiv som ett vanligt desktop program.
Ytterligare en sak som talar för .NET är Visual Studio 2008 som är den överlägset bästa utvecklingsmiljö som jag jobbat i. Gratisversionen som heter express har inga begränsningar du kommer märka av om du sysslar med programmering på hobbynivå, ska du sedan arbeta med det så har nog din arbetsplats råd att köpa en fullversion. Fördelen är att det är väldigt lätt att gå från expressvarianten till ett stort Team Foundation system där massor av utvecklare arbetar tillsammans.
Vad gäller prestanda så har jag aldrig märkt av några problem med .NET-program, en fördel som inte tidigare nämnts med att .NET inte kompileras till maskinkod är att koden optimeras inte bara av kompilatorn utan under tiden du kör ditt program. Dessutom har du en Garbage Collector som rensar upp bland dina variabler du inte använder och du får inte samma problem med minnesläckor som kan finnas med C++ till exempel. Vilket kan vara väldigt skönt som nybörjare.
Stöter du på några problem så brukar det inte heller vara några problem att få hjälp då det finns väldigt mycket folk som använder just .NET
Nu vill jag inte förvandla detta till ett flamewar/fanboykrig, men jag känner mig skyldig att försöka svara på LHelge's argument
Att göra GUI-program i C++ är inte så svårt som du försöker få det se ut, jag skapade ett hello-world program med Windows-APIn i C på 10 minuter. Och det du säger om att skapa ett 4-i-rad program tar en veckas slit om man gör det med C++, på en vecka lärde jag mig hantera C genom att skriva ett tic-tac-toe med en halvdassig AI. Och det är själva AI-programmerandet som tar tid, att göra själva UI't för att flytta markeringar, kontroll om någon vummit etc. tog ett par timmar.
Och att .NET-kod inte kompileras till maskinkod är ju en del av problemet, jag säger inte att interpeterad kod måste vara långsam, men detta är oftast fallet. Det är svårt att kunna göra program som inte är i mskinkod prestandaeffektiva, eftersom du måste ha ett extra lager som ska bolla runt med allt och översätta till maskinkod on-the-fly.
Att göra GUI-program i C++ är inte så svårt som du försöker få det se ut, jag skapade ett hello-world program med Windows-APIn i C på 10 minuter. Och det du säger om att skapa ett 4-i-rad program tar en veckas slit om man gör det med C++, på en vecka lärde jag mig hantera C genom att skriva ett tic-tac-toe med en halvdassig AI. Och det är själva AI-programmerandet som tar tid, att göra själva UI't för att flytta markeringar, kontroll om någon vummit etc. tog ett par timmar.
Och att .NET-kod inte kompileras till maskinkod är ju en del av problemet, jag säger inte att interpeterad kod måste vara långsam, men detta är oftast fallet. Det är svårt att kunna göra program som inte är i mskinkod prestandaeffektiva, eftersom du måste ha ett extra lager som ska bolla runt med allt och översätta till maskinkod on-the-fly.
Kan väl hålla med om att mitt inlägg var något vinklat, kanske bör tillägga att min första dejt med c++ var i gymnasiet med en lärare som enbart kunde programmera pascal, och en kursbok som enbart behandlade konsollprogram. Det som gör det enkelt att komma igång med C# är ju faktist Visual Studio och där kan man för all del lika gärna progga C++ eller VB.
Sen vet jag inte om jag håller med om att .NET är interpreterande, vilket jag kan hålla med om är mycket långsammare än kompilerad kod. Interpreterande kod är vad jag vet scriptspråk som PHP, VBScript osv. .NET-kod kompileras till MSIL som påminner en hel del om assembler-kod, denna körs sedan i en runtime.
<flamewar>
Vad gäller prestandan så tror jag inte att man i en normalstor nybörjarapplikation får bättre prestanda i C++ än i .NET den första tiden som utvecklare, inte märkbart på en modern dator iaf.
Första träffen på google "performance C# vs c++" kan inte säga hur opartiskt det är däremot:
http://www.nuclex.org/pages/csharp-vs-cxx-performance
Sammafattar väl ungefär min uppfattning också.
</flamewar>[/url]
Sen vet jag inte om jag håller med om att .NET är interpreterande, vilket jag kan hålla med om är mycket långsammare än kompilerad kod. Interpreterande kod är vad jag vet scriptspråk som PHP, VBScript osv. .NET-kod kompileras till MSIL som påminner en hel del om assembler-kod, denna körs sedan i en runtime.
<flamewar>
Vad gäller prestandan så tror jag inte att man i en normalstor nybörjarapplikation får bättre prestanda i C++ än i .NET den första tiden som utvecklare, inte märkbart på en modern dator iaf.
Första träffen på google "performance C# vs c++" kan inte säga hur opartiskt det är däremot:
http://www.nuclex.org/pages/csharp-vs-cxx-performance
Sammafattar väl ungefär min uppfattning också.
</flamewar>[/url]
Ang. enkeltheten i att komma igång och få nåt gjort.....
Under 15 å har jag kodat MFC och C++, och nu på senare år i .NET platformen. Ska du börja med nåt på Windows så är det .NET som gäller. Det är mycket enklare att komma igång med och hundra ggr roligare än MFC.
Nästan all nyutveckling på Windows sker ju i .NET.
Under 15 å har jag kodat MFC och C++, och nu på senare år i .NET platformen. Ska du börja med nåt på Windows så är det .NET som gäller. Det är mycket enklare att komma igång med och hundra ggr roligare än MFC.
