Gå til innhold

[nub] Hvilket språk bør jeg velge?


Anbefalte innlegg

Har spurt litt rundt på et par andre fora, og så langt har jeg blitt anbefalt å velge enten Python eller Perl fordi de skal være greie å starte med; C++ og C# fordi de er mye brukt og fordi de gir gode forutsetninger for å kunne lære Java, Perl og php.

 

På grunn av at de anbefalingene jeg har fått spriker mellom alle disse er jeg veldig usikker på hva jeg skal velge. Grunnen til at jeg vil lære meg et språk og begynne å programmere er hovedsakelig for å kunne lage nyttige programmer (hva slags det programmer skulle være finner jeg vel ut etter hvert), kanskje mods til noen enkle spill, og fordi jeg synes det virker morsomt.

 

Jeg kjører foreløpig Windows 2000, men har tenkt til å konvertere til en enkel Linuxvariant i løpet av et par måneder (men kommer til å kjøre windows ved siden av).

 

BTW: Mattekunnskapene mine er minimale, og jeg vet ikke hvor mye det har å si i programmering. Forhåpentligvis lite ...

Lenke til kommentar
Videoannonse
Annonse
Python

 

C++ er så lite aktuellt at jeg kan ikke få sagt det :roll: ...

 

her er noe jeg skrev i en tidligere post

c er lite, ryddig, raskt og forsøker å være en portabel assembler; noe den lykkes forholdsvis bra med .. c++ er rotete, stort og prøver å være flere språk (edit: eller dekke flere konsepter?) på en gang; noe som ikke fungerer særlig bra når det samtidig har som mål å være bakoverkompatibel med C

 

gjør det som er lurt; bruk en stor gressklipper (python, lisp, ruby og andre høynivåspråk) på fotballbanen .. og gå over til neilklipper når du trenger nøyaktighet og maskinvaremessig hastighet i kantene .. det er ikke noe problem å kombinere høynivåspråkene med C - dermed får du alt i pose-å-sekk

 

om jeg var deg (ikke fordi du er nybegynner, men fordi det er lurest) ville jeg satset på høynivåspråk først (python, ruby .. eller kanskje lisp e.l.) .. og tatt C litt siden .. c++ ville jeg holdt meg unna så langt det er mulig

Lenke til kommentar

Har lastet ned Python og fiklet litt med en tutorial, og hittil virker det ganske morsomt. Lastet ned en compiler (borland eller noe) til C++, men siden jeg ikke fikk den til å funke dropper fortsetter jeg med Python inntil videre.

 

Noen som kan si noe om Perl vs. Python forresten?

Lenke til kommentar
Noen som kan si noe om Perl vs. Python forresten?

5964242[/snapback]

 

..velg et av dem ut i fra kontekst? - se på det som to forskjellige verktøy; da gir ikke spørsmålet mening i det hele tatt uten en kontekst

 

jeg bruker Lisp og C .. og koder ikke enten -bare- Lisp eller -bare- C; jeg bruker det som passer når det passer best ... hvert prosjekt består altså av både C- og Lisp-kode blandet om hverandre alt ettersom ..

 

det å blande språk slik tar litt tid å komme inn i, derfor hopper man i stedet på det som er det beste kjøretøyet for å nå målet sitt akkurat nå.. målet i ditt tilfelle er det å kunne programmere, og til akkurat det (og som en bonus; en hel masse annet!) har jeg inntrykk av at Python passer bra ..

 

jeg kjenner ikke så mye til Perl, så derfor lar jeg være å nevne noe til eller fra akkurat der samme hvilken kontekst; selv det å lære seg og programmere ..

 

blir du god i Python, det vil si programmering, er det ikke noe problem å hoppe mellom språk uansett!

Endret av dayslepr
Lenke til kommentar

Kontekst ja, hvilket språk til hvilket formål. Bestemte meg for å begynne med Python, og regner med at det ikke nytter å sitte å gruble på hvilket språk som er "best", siden (som du sier dayslepr) hvert språk har forskjellige kvaliteter for forskjellige formål.

 

Vil takke alle for informative og gode svar :)

Da kan denne tråden sikkert stenges, så kommer jeg sikkert til å starte å plage de som leser Pythonforumet :p

Lenke til kommentar
c er lite, ryddig, raskt og forsøker å være en portabel assembler; noe den lykkes forholdsvis bra med .. c++ er rotete, stort og prøver å være flere språk (edit: eller dekke flere konsepter?) på en gang; noe som ikke fungerer særlig bra når det samtidig har som mål å være bakoverkompatibel med C

 

gjør det som er lurt; bruk en stor gressklipper (python, lisp, ruby og andre høynivåspråk) på fotballbanen .. og gå over til neilklipper når du trenger nøyaktighet og maskinvaremessig hastighet i kantene .. det er ikke noe problem å kombinere høynivåspråkene med C - dermed får du alt i pose-å-sekk

 

om jeg var deg (ikke fordi du er nybegynner, men fordi det er lurest) ville jeg satset på høynivåspråk først (python, ruby .. eller kanskje lisp e.l.) .. og tatt C litt siden .. c++ ville jeg holdt meg unna så langt det er mulig

 

Å kalle C en portabel assembler er omstridt og henger ikke på greip etter min mening. Det som typisk kjennetegner assembler er at en assembler-instruksjon tilsvarer en hardwareinstruksjon. Selv om du sikkert kan få til dette med C er det ikke hva C prøver å være. 99,9999999% prosent av C-koden som eksisterer oppfyller heller ikke dette kriteriet. Dessuten vil jo det bety at også C prøver å være flere ting som du brukte som argument mot C++.

 

Men jeg har ikke noe mot C og har kodet og koder fortsatt en del C. Men jeg kjøper heller ikke argumentene du har mot C++. C++ har sine svakheter og mangler som alle andre språk. Men jeg er ikke enig i at det er rotete. Ja, det er stort. Men du trenger ikke å beherske hele standardbiblioteket for å kode C++. Selve språket uten standardbiblioteket er ikke stort og komplisert. Det introduserer noen objektorienterte prinsipper og kraftige mekanismer som majoriteten av C-kodere likevel emulerer med ofte ikke-feilfri egenprodusert kode.

 

Men alt til sitt bruk. C har fremdeles sine bruksområder. Men de har blitt færre med årene. Det jeg personlig bruker C til i dag er primært å lage bindinger mellom forskjellige språk. Det har også sin plass på platformer hvor det ikke finnes stort utvalg av kompilatorer. C++ derimot har fremdeles en stor plass siden det er det ledende objektorienterte språket som ikke avhengig av en VM.

 

Men dette til side. Hvilket språk skal en nybegynner velge? Det viktigste er at språket ligger nært C-syntaks. Dette ellimenerer Python etter min mening. Dessuten er Python et scriptspråk som primært blir brukt som et vertkøy av og for programmerere (og fungerer utmerket som det).

 

Jeg ville valgt en av disse: C++, C# eller Java. C er ikke for nybegynnere pga. sitt begrensede bruksområde. Hvilket av disse du velger tror jeg ikke har så mye og si. Du vil uansett starte med å lage konsollprogrammer. Men hvis du ønsker å lage små nytteprogrammer, gjerne med GUI til Windows vil jeg anbefale C#. C# kan også med noen begrensinger kompileres og kjøres på Linux. Ellers er Java et alternativ. De er ikke så veldig ulike, selv om jeg selv og stadig flere foretrekker førstnevnte.

 

Hvis du ønsker å modde spill som du sier er C++ det eneste riktige. Men vær oppmerksom på at dette ikke er noe du lærer på noen uker eller måneder for den saks skyld. Programmering handler om erfaring og du kommer garantert til å beherske flere forskjellige språk før du kommer så langt som å lage mod til et spill.

 

Men alle språkene er en bra start.

Endret av kjetil7
Lenke til kommentar
Å kalle C en portabel assembler er omstridt og henger ikke på greip etter min mening. Det som typisk kjennetegner assembler er at en assembler-instruksjon tilsvarer en hardwareinstruksjon.

det er nært nok IMHO .. altså man kan nesten forutse hva ASM-koden blir når man koder C

 

eller; bytt ut argumentet mitt med det faktum at man v.h.a. C har "direkte tilgang til OS og maskinvare" .. altså, siden OS og drivere (til maskinvare, ikkesannt) er skrevet i C ..

 

så kan man selv vurdere hva som er mest relevannt av argumentene

 

*snip* masse om C++ som vi åpenbart er uenige i; synd for deg :p *snip*

Men dette til side. Hvilket språk skal en nybegynner velge? Det viktigste er at språket ligger nært C-syntaks. Dette ellimenerer Python etter min mening. Dessuten er Python et scriptspråk som primært blir brukt som et vertkøy av og for programmerere (og fungerer utmerket som det).

 

Hva med `forståelse av konsepter > å kunne syntax-detaljer utenat'? Det er da for svingende totalt irrelevannt om språket ligger nær C sin syntax (som du forøvrig mente var et lite aktuellt språk i utgangspunktet). Dette synes jeg er galt, fordi det skal være litt forskjell mellom språkene - hvis ikke er det lite poeng i å lære seg, eller bruke flere!

 

"Scriptespråk" - hva vil det si egentlig? Er det et slags rasistisk argument av noe slag? Ta en titt: http://pythonology.com/success http://en.wikipedia.org/wiki/Python_software

 

Java og C# er jeg forøvrig enig i at er gyldige alternativer, også for en nybegynner (spesiellt siden Mono begynner å komme seg litt på beina - så lenge MS ikke finner ut at de skal trakasere hele Mono-prosjektet nå da).

Endret av dayslepr
Lenke til kommentar
det er nært nok IMHO .. altså man kan nesten forutse hva ASM-koden blir når man koder C

 

eller; bytt ut argumentet mitt med det faktum at man v.h.a. C har "direkte tilgang til OS og maskinvare" .. altså, siden OS og drivere (til maskinvare, ikkesannt) er skrevet i C ..

Ikke nært nok til å kalle det assembler og det er uansett ikke noe argument i forhold til C++ som kan gjøre akkurat det samme. Og det er i hvert fall ikke noe argument for nybegynnere.

 

Hva med `forståelse av konsepter > å kunne syntax-detaljer utenat'? Det er da for svingende totalt irrelevannt om språket ligger nær C sin syntax (som du forøvrig mente var et lite aktuellt språk i utgangspunktet). Dette synes jeg er galt, fordi det skal være litt forskjell mellom språkene - hvis ikke er det lite poeng i å lære seg, eller bruke flere!

 

Grunnen til at du bør velge et språk som er nært knyttet C-syntaks er at de mest populære språkene baserer seg på nettopp C-syntaks. Dette har ikke noe med C og gjøre annet enn at C var opprinnelsen til syntaksen (ja, jeg vet at C også hadde sine forgjengere...) Både C++, Java og C# baserer seg på denne syntaksen.

 

Konseptene er selvfølgelig også viktig og jeg har aldri argumentert mot det. Men jeg mener at ved å velge et C-basert språk har du bedre forutsetninger for å lære konseptene på en enkel måte. Blant annet fordi de har størst brukermasse. C er også lite relevant i forhold til å lære objektorientert programmering som er basis for nesten all kommersiell softwareutvikling i dag.

 

"Scriptespråk" - hva vil det si egentlig? Er det et slags rasistisk argument av noe slag? Ta en titt: http://pythonology.com/success http://en.wikipedia.org/wiki/Python_software

Nå synes jeg du ble useriøs. Men nei, jeg er ikke en rasist. Ikke kan jeg forestille meg at noen kan være det på bakgrunn av at de skulle snakke stygt om et programmeringsspråk heller (noe jeg ikke gjorde). Og når du siterer meg ser jeg helst at du gjør det riktig.

 

Ellers blir Python blir ofte kalt et scriptspråk. Jeg vet utmerket godt hvordan Python fungerer og tror også du også gjør det og vet hva jeg mener når jeg kaller det et scriptspråk. For å sitere kilden du brukte: "Python is sometimes referred to as a "scripting language"." Søk etter "python script" på Google så ser du i hvert fall hva jeg mener.

 

Jeg vet ikke om vi skal dra denne så mye lengre enn at vi blir enige om at vi er uenige. Jeg svarer gjerne, men er redd jeg eventuelt ikke får gjort det før mandag.

 

Ha en fin kveld.

Endret av kjetil7
Lenke til kommentar
det er nært nok IMHO .. altså man kan nesten forutse hva ASM-koden blir når man koder C

 

eller; bytt ut argumentet mitt med det faktum at man v.h.a. C har "direkte tilgang til OS og maskinvare" .. altså, siden OS og drivere (til maskinvare, ikkesannt) er skrevet i C ..

 

Ikke nært nok til å kalle det assembler og det er uansett ikke noe argument i forhold til C++ som kan gjøre akkurat det samme.

 

..så hvorfor ikke hoppe over det unødvendige og forkrøpplede mellomleddet C++ på vei mot et høyre abstraksjonsnivå?

 

Hva med `forståelse av konsepter > å kunne syntax-detaljer utenat'? Det er da for svingende totalt irrelevannt om språket ligger nær C sin syntax (som du forøvrig mente var et lite aktuellt språk i utgangspunktet). Dette synes jeg er galt, fordi det skal være litt forskjell mellom språkene - hvis ikke er det lite poeng i å lære seg, eller bruke flere!

 

Grunnen til at du bør velge et språk som er nært knyttet C-syntaks er at de mest populære språkene baserer seg på nettopp C-syntaks. *snip*

 

Konseptene er selvfølgelig også viktig og jeg har aldri argumentert mot det. Men jeg mener at ved å velge et C-basert språk har du bedre forutsetninger for å lære konseptene på en enkel måte. Blant annet fordi de har størst brukermasse. C er også lite relevant i forhold til å lære objektorientert programmering som er basis for nesten all kommersiell softwareutvikling i dag.

 

..og Microsoft er der pengene sitter? .. ok, vel - seriøst; i dag har man alle muligheter, man trenger ikke lenger å holde seg til "det alle andre bruker" (noe som er sterkt overdrevet IMHO) i redsel for at man blir sittende igjen alene .. Google bruker f.eks. Python - jeg tror ikke de er/var redde for hva "kommersiell programvareutvikling i dag" bruker/brukte .. men for all del, sats på f.eks. Java eller C#; begge er på mange måter bedre enn C++

 

"Scriptespråk" - hva vil det si egentlig? Er det et slags rasistisk argument av noe slag? Ta en titt: http://pythonology.com/success http://en.wikipedia.org/wiki/Python_software

 

Ellers blir Python ofte kalt et scriptspråk. Jeg vet utmerket godt hvordan Python fungerer og tror også du også gjør det og vet hva jeg mener når jeg kaller det et scriptspråk. For å sitere kilden du brukte: "Python is sometimes referred to as a "scripting language"." Søk etter "python script" på Google så ser du i hvert fall hva jeg mener.

 

poenget er: hva så? hvilken betydning har det? ..og er det derfor man bør satse på C++? ..

 

vel, jeg er i såfall totalt uenig; man bør strekke et høynivåspråk så langt det er hensiktsmessig med tanke på hastighet, for så å trekke ut de bitene (tight inner loops o.l. -- ting man finner med en profiler) som trenger optimalisering og skrive disse om i C og bruke dem (kalle dem e.l.) fra høynivåspråket ..

 

ta f.eks. bindinger fra høynivåspråk til GTK som et eksempel på hvordan man kan gjøre det .. programmering av GUI består som regel av håndtering av events .. man kan dele events i to kategorier: events som skjer ofte, og events som skjer sjeldent

 

redraw-events er noe som skjer ofte, men siden man som regel bruker widgets (knapper o.l.) der måten de skal tegnes opp allerede er definert i selve GTK-biblioteket, blir redraw-events håndtert intert i biblioteket .. man merker altså ikke at man bruker GTK fra et høynivåspråk i det hele tatt her

 

så er det events som skjer sjeldenere, f.eks. det at brukeren trykker på en knapp med musa .. i maskinens verden skjer dette så sjeldent at det nærmest er snakk om lysår (hm, tidsmessig da -- ellernoe) .. det er disse eventene som er interesannte for programmereren .. og disse kan man håndtere i høynivåspråket uten at det går ut over hastigheten i det hele tatt

Endret av dayslepr
Lenke til kommentar

Les litt om de forskjellige språkene på wikipedia eller noe, og velg språk utifra det du syns hørtest mest morsomt ut.

 

Jeg valgte C++ siden det rett og slett virkaet interessant, og siden det ikke var "så veldig høynivå." Om du ønsker høy produktivitet burde du kanskje velge et annet språk (litt avhengig av hva du skal lage, selvfølgelig), men hvis du bare vil ha det morro, og kanskje rote litt med "detaljer", vil jeg anbefale C++ på det sterkeste. :)

 

Edit: Bare pass på at du holder deg noenlunde plattformuavhengig. ;)

Endret av zirener
Lenke til kommentar

C# kan også brukes som scriptespråk..

Anywho, koder for tiden i C++ på spillmotoren min, og jeg må si jeg blir bare mer og mer skuffet. 90% av tiden bruker jeg på å løse problemer som omhandler å jobbe seg rundt tungvindte ting i språket, ting som i f.eks Lisp hadde gått flytende.. Dog trenger jeg hastigheten her, så da er vel C++ det nærmeste man kommer noe duganes.. Dog gleder meg til jeg får implementert scripting i den, slik at jeg kan bygge den ut via et skikkelig scriptspråk..

 

 

Uansett hvilket språk man koder i , er jo den største jobben for en nybegynner å komme inn i tankegangen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...