Stanford dropper Java som eneste introduktionssprog

15 kommentarer.  Hop til debatten
Stanford dropper Java som eneste introduktionssprog
Illustration: REDPIXEL.PL/Shutterstock Inc..
Det hidtil populære programmeringssprog viser tegn på alderdom, mener en af universitetets professorer.
21. juli 2017 kl. 08:50
errorÆldre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Det er slut med at skulle lære Java som introduktionssprog på det prestigiøse Stanford University. I stedet kan de første sprog, de studerende møder være Python og Javascript.

»Mange universiteter går bort fra Java som introduktionssprog. Det er 2017, og Java viser tegn på alderdom,« siger Eric Roberts til The Standford Daily.

Sproget bruges stadig i andre dele af undervisningen, men indtil nu var sproget det eneste, man underviste i.

Stanford udbyder kurset CS106A, som er et populært kursus, fordi det er en introduktion til programmering, og hidtil har det været baseret på Java. Kurset udbydes hvert kvartal, i alt fire gange om året, men nu har det fået følgeskab af to varianter, så der er kommet yderligere to kursusafviklinger til baseret på Python og nu CS106J baseret på Javascript.

Artiklen fortsætter efter annoncen

Tilbage i 2005 brugte 60 procent af alle amerikanske universiteter Java som introduktionssprog, men siden da er flere og flere gået over til hovedsagelig Python, der er kendt for en syntaks, der ligger tættere på naturlig, engelsk syntaks. Det skriver Digi.

Og det er ikke kun universiteterne, der vender Java ryggen. Ifølge det såkaldte TIOBE-indeks rasler Javas popularitet også nedad. Her kan Java kun bryste sig med 13,5 procent af alle søgninger mod 21 procent sidste år.

15 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
15
31. juli 2017 kl. 13:28

Standard ML blev brugt på KU ikke alene af de grunde, som Baldur skriver, men også fordi det havde både en REPL og statiske typer. Nu er vi dog skiftet til F#, fordi vi gerne ville bruge samme sprog til at undervise imperativ, funktionel og objektorienteret programmering, og stadig gerne vil have både en REPL og statiske typer.

Så må vi håbe, at DIKU revyen kan få lavet en ny sang om F# :-)DIKUrevy 2007: Jeg kender et sprog

Da jeg startede på Datamatiker uddannelsen tilbage i 97 var intro faget C++. Jeg kan stadig huske, at frafaldsprocenten var på 85 - det hjalp heller ikke at det var en skriftelig eksamen på 3 timer med egne notater og lærebogen.

Det jeg var mest glad for på DIKU, var brugen af Python og C++. Selvom jeg ikke bruger C++ mere i mit daglige arbejde, så synes jeg, at der var en masse historiske begreber, som faldt på plads. Du kan se mange ligheder imellem Java, C++ og senere C#. Jeg kunne godt lide Universitetets brug af Linux og brugen af open source. I den kontekst nu hvor .NET også er oepn source, giver det god mening at bruge F#. Når jeg tænker tilbage på min tid på DIKU, så synes jeg ikke SML gav mig den viden, som jeg kunne bringe videre i min uddannelse. Hvis du som mig studere videre på det naturvidenskabelige falkutet, så var det mere Mathlab, Scilab, R, Python og C++, som blev brugt af underviserne.

14
24. juli 2017 kl. 10:01

Java har det problem som begyndersprog (som Jesper siger), at der skal læres en masse OO-begreber (klasser, objekter, metoder), før man overhovedet kan gå i gang. Der er Python nemmere at gå til. Endvidere har Python en read-eval-print loop (REPL), som jeg mener er vigtig for begyndere.

Python har til gengæld dynamiske typer, hvilket betyder, at der skal mere afprøvning til for at fange fejl. Specielt er det godt for begyndere, at man allerede inden programmet kører får at vide, at man forsøger at lægge et tal sammen med en string, og at det nok ikke var det, man mente.

Standard ML blev brugt på KU ikke alene af de grunde, som Baldur skriver, men også fordi det havde både en REPL og statiske typer. Nu er vi dog skiftet til F#, fordi vi gerne ville bruge samme sprog til at undervise imperativ, funktionel og objektorienteret programmering, og stadig gerne vil have både en REPL og statiske typer.

F# er et udmærket sprog, men det mangler en del af den elegance, der er i Standard ML. og F# er visse steder lidt inkonsekvent i sine designvalg. Men givet de forudsatte krav (REPL, statiske typer, imperativt, funktionelt og objektorienteret), så er det nok ikke det værste valg. Og en fordel frem for Standard ML er, at F# har meget omfattende biblioteker.

13
23. juli 2017 kl. 19:20

Jeg vil mene at er programmerings sprog først er forældet når det ikke længere kan udnytte den underliggende hardware. Man kan kalde er sprog gammelt, men det betyder ikke at det er dårligt. Fortran er feks. temmelig gammelt, men det betyder jo ikke at det er forældet. Sproget er jo også blevet moderniseret igennem tiden. At kalde Java et forældet programmerings sprog er lidt i overkanten efter min mening.

Jeg kan godt se ideen med SML men det gør det bare ret svært at lære ved udførsel.

12
22. juli 2017 kl. 19:18

Da jeg studerede datalogi var det første sprog Standard ML. Argumentet var at man ville fokusere på at lære at programmere generelt modsat at lære et specifikt værktøj.

Det blev også sagt at det var for at stille dem der ikke kunne programmere lige med dem der kunne noget i forvejen. Det er de færreste der kommer ind til studiet som hajer i SML.

Det virkede til at være godt både til nybegynderen og til dem der kunne en lille smule. Det gav mulighed for at lære uden at hænge fast i nogle dårlige selvlærte ting. Andre blev til gengæld mindre motiveret af at det ikke var noget man direkte kunne bruge i en større sammenhæng.

Os der kunne en hel masse blev dog ikke med et trylleslag lige med nybegyndere. Jeg kan guderne vide hvor mange sprog, og selvom der var nogle nye spændende koncepter, så var det ikke nogen udfordring at lære. Det er også det man ønsker de studerende skal opnå i stedet for at blive bundne til et eller to specifikke sprog.

11
22. juli 2017 kl. 15:12

Hvorfor står påstanden om Javas alderdom så alene? Hvorfor er der ikke bare ét punkt der understøtter denne påstand om Java; eller i det mindste en definition af, hvad der menes med "alderdom"?

Java var allerede forældet da det kom ud, sprogligt set. Det har ikke nogen reelt nye ideer i sig. Men det formåede at få garbage collection gjort standard og det er noget jeg synes man skal holde fanen højt for. Det var rigtigt godt at dette skete.

Det er lidt svært at snakke om at sprog er forældede. De er ofte remixes af ældre ideer på en ny måde, og de lever ikke i isolation fra deres community eller anvendelse. Go synes jeg er et meget bedre sprog end Java, men det har markant færre features og ideerne fra sproget er også ældre end mange af dem Java slog sig frem på (navnlig en variant af Objekt-orientering som tog kraftig inspiration i den stil C++ lagde for dagen).

Problemet, som er årsagen til at Stanford laver et søsterkursus, er at der findes mange problemer hvor Java ikke er værktøjet. Webudvikling er bundet til Javascript (som er et markant ringere sprog end Java). Og python er ekstremt godt som "limsprog" til databehandling, statistik og numeriske beregninger. Desuden er Python godt til småtilrettelse i data, akkurat et problem som mange studerende sidder med i deres fag. Jeg er dog også af den overbevisning at større systemer er nemmere at skrive i Java end Python fordi Java tvinger dit program til at have mere struktur.

Man kan desuden argumentere for at Java ikke er et godt begyndersprog fordi man fra dag 1 er nødt til at introducere en masse OO-struktur ... "public static void main..." osv.

10
22. juli 2017 kl. 10:40

Hvorfor står påstanden om Javas alderdom så alene? Hvorfor er der ikke bare ét punkt der understøtter denne påstand om Java; eller i det mindste en definition af, hvad der menes med "alderdom"?

9
21. juli 2017 kl. 21:15

På universitetet er et kvartal et halvt semester, dermed er der 4 på et studieår, som bekendt mangler 2 måneder ifht et almindeligt menneskeår pga sommerferien :-)

8
21. juli 2017 kl. 16:11

Måske "prestigefyldte" er en mere korrekt oversættelse?

7
21. juli 2017 kl. 14:44

Fordi det er blevet moderne at hade Java. Om 6-7 år så er det moderne at hade Python.</p>
<p>Nogle udviklere vil have det nye bare fordi det er nyt.

Java er fra 1995.

Python er fra 1991.

6
21. juli 2017 kl. 14:31

"Kurset udbydes hvert kvartal, i alt fire gange om året" i modsætning til her i Europa hvor der går 5 kvartaler på et år?

5
21. juli 2017 kl. 14:13

Jeg tror du misforstår Helge, Christian.

Artiklen siger at java er blevet droppet.

Jeg siger at artiklen tager fejl.

Helge siger at min "downvote" sikkert skyldes en person der hader java og som vil have at artiklen har ret. En person der derfor ikke kan lide min rettelse.

4
21. juli 2017 kl. 14:03

Fordi det er blevet moderne at hade Java. Om 6-7 år så er det moderne at hade Python.</p>
<p>Nogle udviklere vil have det nye bare fordi det er nyt.

Men kommentaren handler jo ikke engang direkte om Java, det er en rettelse til artiklen omkring kurser der tilbydes.

Personligt så syntes jeg at Java er et super sprog.

3
21. juli 2017 kl. 12:41

Fordi det er blevet moderne at hade Java. Om 6-7 år så er det moderne at hade Python.

Nogle udviklere vil have det nye bare fordi det er nyt.

2
21. juli 2017 kl. 12:30

Hvorfor er det lige at der bliver givet negativ feedback på dette indlæg?

1
21. juli 2017 kl. 10:26

Java er stadig det primære sprog i introduktionskurset CS106, som er basis for de fleste undergrads.

Det der sker nu er at der tilbydes et alternativt kursus (CS106J), som har fokus på webdev og prøver at tilbyde den samme undervisning, bare med fokus på javascript.

Java er ikke droppet.