Stanford dropper Java som eneste introduktionssprog

programmering udvikling koder programmør udvikler kodning
Det hidtil populære programmeringssprog viser tegn på alderdom, mener en af universitetets professorer.

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.

Læs også: Programmering for skolebørn: Næste skridt efter Scratch er svært

»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.

Læs også: Kvinder kan have gode grunde til at fravælge IT-uddannelser

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.

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.

Læs også: Derfor kan Kotlin blive Java-folkets darling

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.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk

Følg forløbet

Kommentarer (15)

Kommentarer (15)
Andreas Korsgaard

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.

Cristian Ambæk

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.

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.

Andreas Korsgaard

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.

Jesper Louis Andersen

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.

Baldur Norddahl

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.

Magnus Jørgensen

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.

Torben Mogensen Blogger

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.

Jesper Dahlkild

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.

Log ind eller opret en konto for at skrive kommentarer

Pressemeddelelser

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 10:29

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017

Affecto has the solution and the tools you need

According to GDPR, you are required to be in control of all of your personally identifiable and sensitive data. There are only a few software tools on the market to support this requirement today.
13. sep 2017