Nyt programmeringssprog fra Red Hat er overflødig 'huleboer-innovation'

Red Hats 'Ceylon Project' skulle være den nye Java-killer i enterprisemiljøet. Men dansk ekspert dumper projektet langt før udgivelsen.

»Han må have boet i en hule de seneste mange år.«

Sådan tænkte it-professor Peter Sestoft, efter at have læst Red Hat-udvikleren Gavin Kings præsentation af et nyt JVM-baseret programmeringssprog, fortæller han til Version2.

Red Hat havde ellers arbejdet på sproget og dets SDK gennem de seneste to år, inden projektet for første gang blev vist frem på QCon messen i Beijing i mandags under navnet 'The Ceylon Project'.

Formålet med projektet har ifølge Gavin King været at lave et sprog og et SDK, der tog ved lære af de fejl og mangler, som Red Hat så i Java-sproget, men som samtidig udnyttede platformens fordele fra JVM-miljøet.

Blandt andet har man videreudviklet syntaksen, så sproget skulle være lettere at læse og skrive, man har tilføjet muligheden for at anvende højordens funktioner og har endelig arbejdet på at skabe et stærkere typesystem.

Men det er langt fra nye toner, som Red Hat lægger for dagen, mener Peter Sestoft.

»Folkene bag Ceylon har åbenbart slet ikke været opmærksomme på de sidste 5-10 års udvikling inden for programmeringssprog. For det her er gjort før,« fastslår Peter Sestoft.

At det er en god ide at modernisere Java-sproget, er Peter Sestoft dog som udgangspunkt helt enig i.

»Der er mange ulemper ved selve Java-sproget, der er sagtnet meget bagud i forhold til for eksempel C#, som ellers er meget beslægtet med Java. Forskellen er, at Javas sprog i dag er på det samme stadie, som det var i 2004, mens sprog som C# har udviklet sig løbende,« siger Peter Sestoft.

Sestoft mener, at selv om Java-sproget kan kritiseres for mange fejl og mangler, så er selve platformen med dets runtimesystem, de virtuelle maskiner og biblioteker, faktisk ret god. Derfor giver det god mening at modernisere sproget og dets syntaks.

»Så målet er fornuftigt nok. Men alt det, de vil, er gjort før i det sprog, der hedder Scala. Det kører på JVM og er meget længere fremme i udviklingen,« siger Peter Sestoft.

Læs også: Scala-opfinder: Parallelisme skal gøre Scala til et hit

Scala, der startede sin udvikling tilbage i 2001, og som også er baseret på JVM, har allerede mange store internationale brugere, der tæller virksomheder som Linkedin, Twitter og avisen The Guardian. Men også andre større virksomheder på dansk grund bruger sproget kommercielt.

Scala-sproget har ifølge Peter Sestoft den fordel i forhold til Java, at det har kombineret muligheden for at bruge funktionel og objektorienteret programmering. Derudover er typesystemet forbedret og syntaksen er med Sestofts ord gjort mindre 'ejendommeligt' end Javas.

Med andre ord minder filosofien bag Scala og Red Hats 'Ceylon' projekt altså meget om hinanden.

»Så det kommer virkelig til at gå op ad bakke for Red Hat med det her,« forudsiger Peter Sestoft.

Som et svar på hvorfor udviklerne ikke bare kan bruge Scala, har Gavin King skrevet, at man før, udviklingen gik i gang, havde kigget på Scala, men at man kom til den konklusion, at særligt typesystemet i Scala var for komplekst i forhold til Red Hats vision.

»Scala er et interessant sprog, og det er et ud af mange sprog, som har haft indflydelse på Ceylon. Vi kiggede nøje på Scala, men vi besluttede i fællesskab, at det ikke var det rigtige for os. Personligt mener jeg, at Scalas typesystem simpelthen er for kompliceret i forhold til, hvad jeg ville have eller havde brug for,« skriver Gavin King.

Læs mere om projektet her.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (16)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Lasse Lindgård

Han har taget stilling, ja, men det vil da være synd at sige at han er særligt specifik.

Hvad er det der er så kompliceret? Vil han skabe noget som kan mindre, men som så er mere enkelt? Eller vil han lave noget som går på kompromis med stærke typer (som groovy). Eller er han så genial at han kan lave noget som kan det samme, men med enklere midler.

Det er et pænt stort projekt at skrive et nyt sprog op fra grunden. Incl. SDK og klassebiblioteker.
Så skal der altså lidt mere på bordet end 'jeg synes'.

Det nærmeste han kommer er når han i artiklen siger:
"As a general rule I would prefer to solve my problems with fewer, more general constructs, than with more, less powerful constructs."

-- og det er jo netop det grundlæggende pricip bag Scala, selvom han bruger det som argument mod Scala. Det siger bare til mig at han ikke har kigget ordenligt efter.

Peter Sestoft

Jovist ville det have været dumt af mig at påstå at Ceylon-folkene ikke er opmærksomme på Scala, hvis jeg havde haft den mindste evidens for at de faktisk var opmærksomme på sproget. Men deres præsentation fra Beijing forleden nævner ikke Scala med et ord, og det gør heller ingen af de kilder som journalist Lasse Hedegaard Poulsen præsenterede mig for i går. Det forhold at journalisten ved at fremdrage et citat af Gavin King (tilsyneladende fremkommet efter Beijing-præsentationen) kan få mig til at fremstå som tåbe, er vel blot et udtryk for det man i medieverdenen kalder for "spidsvinkling". Vi andre kunne nok finde på mere bramfrie betegnelser. Jeg vil overlade til redaktionen og læserne at placere det på en presseetisk skala fra -3 til 12.

Men i øvrigt står jeg naturligvis ved alt jeg er citeret for. Det sprog er overflødigt og kommer ingen steder.

Anders Norgaard

Jeg synes ikke at det er nødvendigt at sammenligne det med Scala. Jeg synes mere at sproget ligner andre "mindre anderledes" forsøg på at fixe Java som Groovy eller Fan (nu http://fantom.org/ )

Jeg glæder mig meget til at prøve det. De issues med Java som Gavin King nævner på slides 6-8 er præcis de ting som også irriterer mig ved Java. Så hvis han kan lave et sprog som minder meget om Java men fixer de ting der irriterer mig, så er jeg helt klar til at skifte sprog. Og Ceylon ser virkelig lovende ud - mere end Fan gjorde.

Nu venter jeg bare på hvad deres web-framework skal hedde: Ceylon on Sails?

Nikolaj Brinch Jørgensen

Gavin har til dels ret. Selvom Scala har type inferens og det er lækkert, gør Scalas type system også samtidigt at sproget ikke er specielt smidigt at udvikle i.
At udvikle i Scala bliver hurtigt en slåskamp med type systemet, og det er simpelthen enormt typetungt at arbejde med.
Til det skal der også tilføjes at vi så kan starten religionskrigen mellem ikke typede og stærkt typede sprog tilhængerne.
Jeg kan rigtigt godt lide Scala, men der er også en del udviklere som finder det meget vanskeligt at udvikle i.

Ceylon har den fordel at det har Hibernate og alt muligt andet fra Red Hat til at bakke det op. Scala har ikke rigtigt noget, måske Lift, men det vil aldrig nå på højde med f.eks. Grails.

Desuden må vel se historisk på at Scala med 10 år på bagen ikke rigtigt har fået den udbredelse det bliver udråbt til at skulle have haft, så måske er det fornuftigt nok at noget andet forsøges, specielt bakket op af verdens største OSS virksomhed. Det var måske netop det Scala manglede, en seriøs teknologivirksomhed med et markedsføringsbudget i ryggen.

Casper Bang

Jeg synes heller ikke det er særlig relevant at sammenligne med Scala, men det viser måske bare tidens tendens med at opløfte Scala ukritisk i forhold til dét simple general-purpose sprog det bygger på. (Måske forventeligt fra en professor der vel har sin vante gang i monads, folds, actors osv.)

Hvis det minder om noget så er det da Fantom, især taget i betragtning at man også kan skrive UI'er mv. deklerativt grundet Fantoms træ-baserede serialiseringsmekanisme.

Og Gavin King er da absolut ikke nogen huleboer, der er vist ikke mange i Java verdenen der ikke har arbejdet med især hans ORM frameworks som f.eks. Hibernate og Criteria API'et.

Netop disse ting i hans fortid, får personligt mig til at tro, at Gavin er ude på at generalisere type-sikre AST'er i sproget der kan instantieres lazily, a la hvad Microsoft kan med LINQ.

Det der kan undre mest er at der ikke engang er en prototype af sproget endnu, det er ikke imponerende hvis man sammenligner med lignende projekter. Derfor tror jeg ikke rigtig på Ceylon, så er det mere realistisk at Fantom får fuld generics og kan trække folk til. Der er i alt fald ingen tvivl om, at vi mangler et next-gen Java og at Scala ikke er en sådan.

Casper Bang

En anden sjov detalje, der vidner lidt om Gavin's baggrund, er hvorledes der ikke er Enums i sproget.

Det har ellers stort set alle andre sprog, nogle bedre implementeret end andre (Java's er næsten perfekt, men det tog desværre også 10+ år før vi fik den).

Enum's kan dog være besværlige at have med at gøre i et ORM scenarie, hvor du skal mappe dynamiske ordinals fra en tabel på runtime, til statiske enum værdier i en type på compile-time.

Lasse Lindgård

Jeg tror at Scalas manglende succes hidtil har skyldtes noget så kedeligt som tooling.

IDE understøttelsen har være forfærdelig, men det er heldigvis blevet meget bedre:
http://download.scala-ide.org/
(tag den version i toppen)

Det kan godt være at nogle at de mere eksotiske features i Scala er komplekse, men de er så også lavet for at løse komplekse opgaver. Simple opgaver er heldigvis simple, også simplere end java.

Om ikke andet så har I god tid til at få lært selv de mest obskure hjørner Scala, mens I venter på at Fantom eller Ceylon når version 3.0 og har fornuftig IDE support ;-P

Casper Bang

Man kan jo så sige, tooling supporten for Java var lige så forfærdelig de første mange år!

Fantom har nu ganske udemærked IDE support, både som stand-alone NetBeans RCP udvidelse og som plugin til denne. Jeg tror ikke det er tooling der gør forskellen, for så skulle Ruby, Groovy, Scala etc. jo aldrig været blevet til noget.

I tilfældet med Fantom, er det user-typed generics der får de fleste til at forkaste sproget. Som fan af less-is-more og KISS, synes jeg bedre om Fantom hvor Scala jo prøver at indkapsle hele verden i dets ultra-typede (og komplekse) verdensbillede. Jeg mener, XML literals i selve sproget... need I say more?

Lasse Lindgård

"Man kan jo så sige, tooling supporten for Java var lige så forfærdelig de første mange år!"

Jo, men man sammenligner med samtiden, ikke fortiden. Javas IDE support var rigtig god i 1997, hvor jeg lærte java i VisualAge for Java (dengang var jeg imponeret).

Nu sammenligner med med Eclipse's Java plugin eller intelliJ og så skal der meget til for at blive godkendt.

Vedrørende udbredelse, så kan man argumentere for at hverken Ruby, Groovy eller Scala er blevet til noget, hvis man måler i forhold til antallet af java udviklere. Hvis vi leder efter Javas efterfølger, så er det nogle helt andre tal der skal på bordet. I den målestok er spillet stadig helt åbent.

Nikolaj Brinch Jørgensen

Vedrørende udbredelse, så kan man argumentere for at hverken Ruby, Groovy eller Scala er blevet til noget, hvis man måler i forhold til antallet af java udviklere.

Men hvis man måler i forhold til jobs, må man da sige at Ruby og Groovy er blevet til noget.

http://www.indeed.com/jobtrends?q=java%2C+scala%2C+ruby%2C+groovy%2C+c%2...

Hvis vi leder efter Javas efterfølger, så er det nogle helt andre tal der skal på bordet. I den målestok er spillet stadig helt åbent.

Jeg tror det vil kræve at et sådant sprog skal have opbakning fra den kommercielle side for at blive en succes.
Nogen af os har lavet løsninger for kunder (også offentlige myndigheder) som baserer sig på f.eks. Groovy/Grails, men det skal være store løsninger før det batter.
Det er fint at store in-house udviklingsprojekter (Twitter, Foursquare, The Guardian) bruger Scala, det flytter dog ikke helt vildt meget efter min mening. Men den dag Oracle, IBM, Red Hat m. fl. begynder at bakke op og et alternativ til Java, så de store globale leverandører (CSC, Capgemini m. fl.), begynder at lave løsninger i de sprog, tror jeg at tingene vil begynde at flytte sig. Indtil har jeg svært ved at se, at Java vil blive afløst.

Jeg har dog svært ved at se at Oracle skulle finde på at bakke op om et andet sprog end Java (jeg har også svært ved at se, at de skulle var i stand til at finde på et).

Lasse Lindgård

Men hvis man måler i forhold til jobs, må man da sige at Ruby og Groovy er blevet til noget.

Imponerende. Men dit argument forstummer hvis man trykker på 'Scale: Absolute' ovenfor grafen.

Ellers er jeg fuldstændig enig i det du skriver. Jeg ser i min krystalkugle at Google kommer til at udpege en vinder, men hvornår de gør det er stadig lidt tåget.

Nikolaj Brinch Jørgensen

Imponerende. Men dit argument forstummer hvis man trykker på 'Scale: Absolute' ovenfor grafen.

Øh, nej, tværtimod, hvis man kigger på den rigtige graf.

Jeg undskylder lige for det dårlige arbejde... :-)

Heldigvis, så er stort set samtlige sprog der ikke er Java eller C# designet så de kræver langt mindre tooling end andre.

Tja det giver jeg dig ret i. Men det ændrer jo ikke på at mange af de sprog som har rigtig god tooling også er de mest anvendte (Java, C, C++, C# etc.)

Log ind eller Opret konto for at kommentere