Vilket programmeringsspråk ska man lära sig?
Publicerat 6 november 2008 av Christian
Ted Valentin fick ett mail med frågan (ungefär) vilket programmeringsspråk en ung, aspirerande webbutvecklare borde lära sig. Ted svarade PHP. Som programmerare sedan dryga 15 år har förstås även jag åsikter om vad man ska satsa på, så här kommer mina tankar:
- Programmeringsspråk är verktyg. Det finns väldigt många, och de kan användas på olika sätt. Du kan skriva samma program med Perl, Python, PHP och de flesta andra språk — men de har olika styrkor och svagheter.
- Ta reda på vilka verktyg som finns tillgängliga. När du hyr plats hos ett webbhotell, får du använda deras verktygslåda, men inga andra verktyg. Vilka programmeringsspråk och andra tekniker stödjer webbhotellen som du har tittat på?
- Lär dig ett verktyg i taget. Börja med ett som kanske en kompis kan, eller som du hittar mycket hjälp om på Internet. Bry dig inte om att det är ”det rätta” verktyget, det finns inget sådant. Du kan alltid lära dig fler verktyg senare.
- Snegla på de andra verktygen och fråga någon vad de används till. Att lära sig nya saker om andra språk gör dig till en bättre programmerare. Läs på om Perl, Python, PHP och Ruby. Vad är skillnaden?
- När du förstår dig på hammaren, lär dig att använda en spikpistol. Du kan göra samma jobb på mycket kortare tid. Jag pratar förstås om ramverk, som hjälper dig att bygga upp dina program eller webbplatser mycket snabbare.
Mer konkret: börja med att lära dig språket PHP. Av dessa anledningar:
- Det finns stöd för PHP på nästan alla webbhotell, både Windows och Linux
- Dokumentationen är omfattande och det finns massor av hjälp att få i olika forum på nätet
- Integrationen med databasservern mySQL är väldigt smidig
- Språket vidareutvecklas fortfarande efter ett drygt decennium och lär inte dö ut på ett tag
(Däremot tycker jag inte att själva språket har några fördelar. Snarare nackdelar; det är inte alls lika flexibelt som Python och Javascript. Men trots detta fortsätter jag att utveckla med PHP för att det har andra, mer mjuka fördelar.)
När du är bekant med PHP, lär dig ramverket Code Igniter. Det är en av PHP:s motsvarigheter till det mytomspunna Ruby on Rails. Det finns fler ramverk för PHP, och jag har provat flera. Jag rekommenderar fortfarande Code Igniter (och jag använder det flitigt själv) av dessa anledningar:
- Det är utvecklat av ett företag för att hjälpa dem själva utveckla nya produkter
- Dokumentationen är omfattande och det finns åtminstone ett bra diskussionsforum
- Det går ganska snabbt att komma igång och är inte alltför komplicerat
- Prestanda är högre än för flera av de andra ramverken
Den första punkten är viktig. Många ramverk kommer från en ensam datanörd som bestämt sig för att göra ett ramverk utan något egentligt mål. Här är det ett företag som faktiskt själva använder sitt ramverk professionellt — precis som Ruby on Rails, som också togs fram för att bygga egna produkter av.
Jag har skrivit mer om PHP-ramverk på min gamla blogg.
(När vi ändå är inne på ramverk: ska du programmera på klientsidan med Javascript, använd då ramverket jQuery. Det är enkelt att använda, väldokumenterat och har högre prestanda än många andra Javascript-ramverk.)




Hej!
Jag har själv en lillebrorsa som är helt grön på webbutveckling och jag har instruerat honom att se över Ruby On Rails eller Django. Php är något jag enbart använder för att pilla i Wordpress med och jag känner att både Rails och Django har mer att erbjuda än många av PHP-ramverken där ute när det gäller att utveckla en webbtjänst. Jag är ingen die hard PHP-programmerare så givetvis bör mina åsikter tas med en viss nypa salt.
Likaså som att det finns en hel del drös med webbhotell som stödjer php finns det en hel drös med webbhotell som har stöd för Rails och Django. Visst, mängden som har PHP-stöd är större, men det finns ändån många alternativ för Rails och Django. Jag tycker dock att om du är webbutvecklare så skall du inte bara kunna (x)html, css, javascript och språket/ramverket i fråga, utan även att kunna drifta ditt projekt på en vps eller på en egen server.
Ha det!
Jag är själv utvecklare sedan åttaårsåldern (är nu 31) och har lite åsikter:
* Ruby är nog ganska bra för många sajter, men den dras onekligen med en stor nackdel – om en sajt verkligen slår så är den inte speciellt skalbar.
* Code Igniter är säkert ett mycket bra verktyg, men själv föredrar jag Zend Framework av en enda anledning: Dess tunga partners. Tunga partners borgar för långsiktighet, och det är mycket viktigt i webbranchen. Det finns otaliga exempel på goda open source-projekt som dör av efter några år och helt enkelt blir omoderna. Och om man då har satsat alltför mycket krut på dem så kommer de hemsidor man skapat i en återvändsgränd.
* Lär dig programmering ordentligt. Programmering är som sagt bara ett verktyg och de flesta språken är väldigt lika. Köp några hardcore-böcker om programmering och plöj igenom dem. Att gå några kurser på universitetet är också bra, då man ofta får en bred grund inom programmering så. Men se till att lära dig programmering ordentligt så att du åtminstonde har skapat ett par miniräknare, ett par binära träd och en binär sökning.
* Mina råd gäller dock bara om du vill ha en större flexibilitet än det en standardsida kräver.
Hej! Håller helt klart med dig. Inget programmeringsspråk är ”bäst”, de är bara olika bra på att få saker genomförda. Att skriva snabba trådade prylar i PHP är bara att glömma, python är bättre här men kanske inte helt optimalt heller för det du ska göra.
Tack för tipsen Christian!
Jag ska läsa på lite om Code Igniter och se vad det är för något. Jag har läst om Ruby on Rails och det verkar riktigt intressant också.
”* Ruby är nog ganska bra för många sajter, men den dras onekligen med en stor nackdel – om en sajt verkligen slår så är den inte speciellt skalbar.”
Och detta uttalande baserar du på?
Om nu inte Ruby/Rails är skalbart, hur kommer det sig att 37 Signals produkter (som bland annat har över 1 miljon användare) har blivit så populära? Eller Twitter för den delen (ja, de har haft problem, men det hänför sig till arkitektur – inte val av språk/ramverk)? Eller att YellowPages.com pushar ut mer än 170 miljoner pageviews i månaden med Rails som ramverk?
Här är lite mer information som bevisar motsatsen:
* http://blogs.zdnet.com/BTL/?p=8878
* http://www.buildingwebapps.com/articles/6419-can-rails-scale-absolutely
* http://www.buildingwebapps.com/articles/6512-the-rebuilding-and-scaling-of-yellowpages-com