Jag har en kompis som vill lära sig att programmera, men han har lite svårt att bestämma sig vad han ska satsa på, VB(6 eller .NET) eller någon form av C.
Han har hållit på lite med VB förut men inte så mycket.
Så nu några frågor:
1. Vilket är bäst att satsa på om man vill kunna göra både spel och vanliga program för Windows?
2. Om man ska satsa på t.ex VB, är det bäst att köra med VB6 eller VB.NET, eller kan man börja med VB6 och sedan "uppgradera" till VB.NET?
3. Är det någon som vet någon/några bra böcker till ett ganska billigt pris?
Jag ser ingen anledning till att lära sig VB6 och sedan gå över till VB.NET. Därför tycker jag att din kompis skall lära sig VB.NET direkt. Sedan om han tycker att det "ser roligare ut" med C# så kan han ju köra det istället.
Men det här med spelprogrammeringen har jag inte så bra koll på hur det ligger till.
1. C++
2. av de val du skriver absolut VB.NET. Annars så finns ju C# som har ett mer "standardiserat" sätt att skriva kod (hukar mig för alla VB-fans kommentarer på det ;)), funktionellt sätt så är det likt VB.NET
3. Nope sorry
Viktigt också att programmering inte bara är att man kan ett språk... Kan man tex objektorienterad programmering ordentligt så ska språket inte vara det största hindret...
Jag föredrar också C# :), men min gissning är ändå att det finns fler som använder VB.Net än C#. Mycket eftersom många som kommer från VBScript/ASP går till VB.Net.
Ska programmen kunna köras på vilka datorer som helst med Windows, så är nog C++ eller VB6 som gäller.
Program gjorda med .Net, kräver antingen att .Net teknologin är installerad (inte standard på något Windows system än) eller att man distribuerar med de filer som krävs för att köra .Net program i installationsprogrammet (många MB)
Som nybörjare, och kanske vill visa kompisar eller köra programmet enkelt på andra datorer, så blir det mycket extra arbete.
(Samma problem med Java, väldigt få personer har Java installerat, nästan bara utvecklare)
Det är ett hinder om man måste installera en massa för att bara köra ett "Hello World" program
Om han vill göra spel: satsa på matte! och gå sedan en riktig programmeringsutbildning på universitetsnivå! då har du tillräckligt bra kompetens för att kunna jobba som professionell spelprogrammerare! ...och du lär dig inte bara ett språk utan flera, eller rättare sagt du lär dig inte ett språk, du lär dig programmera med hjälp av ett antal språk!
Om han vill göra spel: satsa på matte! och gå sedan en riktig programmeringsutbildning på universitetsnivå! då har du tillräckligt bra kompetens för att kunna jobba som professionell spelprogrammerare! ...och du lär dig inte bara ett språk utan flera, eller rättare sagt du lär dig inte ett språk, du lär dig programmera med hjälp av ett antal språk!
Mycket bra kommentar! Det finns inte en chans att lyckas som spelprogrammerare utan gedigna kunskaper i matte. Vilka språk man behärskar är bara verktyg när man väl förstår matte och olika algoritmer.
Men för att komma igång ö.h.t med programmering och då med inriktning mot spelprogrammering finns det (som jag ser det) bara en väg att gå -> C
Hur har du kommit fram till denna slutsats, egen erfarenhet eller? Inget illa menat, men eftersom du skriver att det bara finns en väg att gå så har du kanske några bra skäl.
Hur har du kommit fram till denna slutsats, egen erfarenhet eller?
Ja.
C är snabbt, effektivt (hårdvarunära) och lätt att implementera.
Har visserligen en hög relativ inlärningströskel, men med en grund i C är det lätt att ta till sig syntax i övriga språk. För spelprogrammering vimlar det av tutorials och exempel i C. Majoriteten av API:er finns till C.
C++ är inte rätt språk att börja med, möjligt att Java är det - fast det lämpar sig inte för spelprogrammering och alltför många "lär" sig programmera i OOP-språk utan att lära sig OOP.
Det talar ytterligare för C för nybörjare, eftersom det är lätt att bygga algoritmer och det finns massor av exempel. I vissa avseenden kan det vara bättre att peta ihop ett eget litet sökträd ist för att använda STL-containers.. etc etc har man ingen grund i t.ex C blir det lätt "tyngre" implementationer än vad som behövs för uppgiften.
So my conclusion is:... C och sen "klättra uppåt" beroende på vad som ska göras. Det viktiga är inte språket utan att välja rätt algoritmer och rätt implementation.
Nåja... det är mina åsikter och inget vedertaget fakta. Take it or leave it :)
C är snabbt, effektivt (hårdvarunära) och lätt att implementera.
Har visserligen en hög relativ inlärningströskel, men med en grund i C är det lätt att ta till sig syntax i övriga språk. För spelprogrammering vimlar det av tutorials och exempel i C. Majoriteten av API:er finns till C.
DirectX t ex är baserat på COM och då spelar det ju inte så jättestor roll om man kodar i Delphi, VB eller C++ direkt. Man får ju ändå så mycket stöd i DirectX så de få algorimer man behöver skriva själv spelar ju inte så jättestor roll om dom är skrivna i Delphi eller C++. Det stora tunga i spel är ju dock grafiken och där får man väldigt mycket hjälp av DirectX. Kollisionsdetektering och anna logik är relativt "lätta" algoritmer jämfört med grafik.
DirectX t ex är baserat på COM och då spelar det ju inte så jättestor roll om man kodar i Delphi, VB eller C++ direkt. Man får ju ändå så mycket stöd i DirectX så de få algorimer man behöver skriva själv spelar ju inte så jättestor roll om dom är skrivna i Delphi eller C++.
Visst... om man endast tänkt att nöta i win32 med "modul"-programmering, utan att sätta sig allt för djupt in i systemanrop, paletter m.m.. så ;)
Visst kan man gå den enklare vägen via VB eller Delphi för att komma igång snabbt. Det jobbiga blir väl den dagen man verkligen behöver C... :e
Så jag rekommenderar ändå C som utgångspunkt :birp
Om man vill lära sig programmera så tror jag det bästa är att bara börja oavsett språk ska man bli duktigt gäller det att man tycker det är kul. Efter ett tag så kan man själv bedöma vilket språk som passar, de flesta verkar aldrig komma förbi stadiet börja. Att det bara finns en väg för att nå ett mål tror jag är XXXXX, men påståendet blir intressantare med argument.
PeW skrev:
Nåja... det är mina åsikter och inget vedertaget fakta.
Vilken tur, trodde ett tag att jag var undantaget som bekräftade regeln :-).
Fågan va ju vad man skulle satsa på om man skulle göra program och spel för Windows. Även om man måste lära sig nått annat om man inte ska göra spel för Windows så har man ändå igen det att välja DirectX. Grafik, ljud, input och nät i ett och samma paket.
Eller också lär man sig OpenGL och OpenAL för ljud och grafik, dom två tunga bitarna. Båda är oberoende av plattform och fungerar typ överallt. Det är dumt att snöa in sig på en enda plattform.
Eller också lär man sig OpenGL och OpenAL för ljud och grafik, dom två tunga bitarna. Båda är oberoende av plattform och fungerar typ överallt. Det är dumt att snöa in sig på en enda plattform.
Det känns mer som att man väljer DirectX om man vill hålla på med spel. Det är inte så värst många spel idag som utvecklas för OpenGL skulle jag tro. Jag känner i alla fall inte till nått.