Vad ni pratar om är att lösa specifika problem. PHP och Perl är jättebra för den typen av problem. Men skolspråk? Nej. Varför?
Några lösryckta problem med det:
- Hur lära ut vad en datatyp är och innebär när man kan göra saker som '$x="1"; $y=1+$x'
- Hur lära ut vad skillnaden mellan syntaktiskt fel, körfel eller tolka felmeddelanden när man får resultatet "Internal Server Error" som ända ledtråd (innan man vet var man skall kika då)
- Hur lära ut vad skillnaden mellan HTML och PHP går, när man kan blanda dem friskt i koden. PHP genererar HTML och är grymt på att autoatisera array och stränghantering eftersom det är vad man som mest behöver göra när man genererar HTML.
- Hur lära ut datatyper och strukturer när man aldrig behöver deklarera några eller knappt ta hänsyn till dem.
- Hur lära ut arv när objektorienteringsbiten i PHP helt kan ignoreras. Det känns som mer av en kul grej de pitchade in för att det är poppis med OOP.
Jag räknade till 7 klick/tryck för att skriva, kompilera och exekvera Hello World som en "fullt fungerande" Windows applikation, efter att Visual Studio startats. Exklusive att skriva texten Hello. World. Kan inte se hur en IDE ställer till det?
Återigen, allt handlar om vad man vill göra. Och framför allt hur man definierar "att lära sig programmera". Jag har väl en lite mer "old school" inställning där. Samtidigt ganska pragmatisk. Om man har en Raspberry P och vill leka med den, kan PHP eller Perl kanske vara perfekta val för att göra det man vill med sin dator. Och givet att man har koll på hur man får igång Raspberryn och hanterar den biten, behöver stegen till att lösa sina första problem i PHP eller Perl inte vara överdrivet många. Men har man lärt sig att programmera på det? Inte om ni frågar mig. Löst problem, lärt sig saker. Ja. Programmerat? Ja, absolut. Men lärt sig programmera? Nej. Typ
Kan man programmera utan att lära sig att programmera? Hmm.
Det finns för och nackdelar med att integrera språk och utvecklingsmiljö. Jag har jobbat med båda varianterna. En integrerad miljö kan göra saker åt dig - till priset att du kanske inte förstår allt som sker. Samtidigt tar det fokus bort från det som inte har att göra med den problemlösning du skall göra. Exempel: det tog mig många timmar när jag lärde mig PHP att få till ett bra arbetsflöde för att förstå, hitta och åtgärda fel när jag programmerade. Tid som jag t.ex. Visual Studio inte behövt lägga, då felmeddelandet hade tryckts upp i fejset på mig.
Jag lärde mig programmera två gånger. Först själv sen på universitetet. Själv använde jag IDE (Turbo Pascal någon?) och på universitetet genom tolkat språk (SML), och sedan genom att själv kompilera och länka. Nu jobbar jag med att använda en IDE som är oerhört komplicerad (Visual Studio och Eclipse). Det är svårt att rekommendera något utan att veta vad den som vill lära sig något faktiskt vill göra och åstakomma. Valen är så många!