utvikling
Her er Netflix' «Jupyter Notebook-killer»
Jupyters fleksible notebook-verktøy til utvikling, eksperimenter, deling og visualisering blir utfordret av nye konkurrenter som også støtter flere språk enn Python.
Jupyter, som har vokst ut av Python-distribusjonen IPython, har på få år blitt veldig populært innenfor dataanalyse og utvikling av maskinlæringssystemer.
Jupyters formål er å støtte opp under datavitenskap og vitenskapelig programmering med Python og andre språk, som R. Det som trekker utviklerne inn i butikken er de såkalte notatblokkene som kombinerer kode, data, visualisering og tekst i ett dokument.
– Det gjør deg i stand til å dokumentere eksperimentene dine. Man kan si at problemstillingen hittil har vært at når man skal lage dataanalyser, så har du en papirblokk der du skal skrive hva du gjorde ved de forskjellige typene eksperimenter, har Søren Aagaard Mikkelsen, data scientist i konsulentfirmaet Mjølner, tidligere fortalt til det danske nettstedet Version2.
Kritikk av dårlig reproduserbarhet
Men Jupyters notebooks har også vært utsatt for kritikk. En rekke brasilianske og amerikanske forskere har i en artikkel påpekt at det har vært stigende kritikk av at måten notebooks brukes på fører til uventet oppførsel, oppmuntrer til dårlig kodepraksis og resultater som kan være vanskelige å reprodusere.
Forskerne kikket nærmere på 1,4 millioner notebooks fra Github og analyserte de egenskapene som påvirker evnen til å reprodusere resultater.
Nå får Jupyter selskap av nye notebooks. Det dreier seg om Polynote, som i sin logo staves med en fancy lambda fra det greske alfabetet, som i «Polyλote», hvor lambdaen nok skal oppfattes som en hentydning til funksjonelle språk.
Polynote har nemlig et godt øye til JVM-språket Scala, som er et hybrid objektorientert-funksjonelt språk, som har støttet det populære big data-biblioteket Apache Spark. Og det er nettopp dette biblioteket som Polynotes bakmenn – Netflix – nevner først i et blogginnlegg om det nye verktøyet.
Verktøyets oppfinnere nevner spesifikt den manglende integrasjonen med Scala som det frustrerende punktet som fikk utviklerne til å snu ryggen til Jupyter Notebook.
Samtidig kan Polynote – selvfølgelig – integrere med Python og danne bro herfra til Spark.
God evne til å reprodusere resultater
Et sentralt element i verktøyet er en god evne til å reprodusere resultater. Notebooks består som kjent av celler, hvor koden kan kjøres med et tastetrykk. Her tar Polynote cellens rekkefølge i dokumentet med i betraktningen når koden kjøres.
Verktøyet kan også by på funksjonalitet vi kjenner fra dedikerte utviklingsverktøy. Det er kjente ting som automatisk fullføring av kode og tips om parametre, utheving av feil med røde streker i koden, samt formatering med formelspråket Latex. De som står bak verktøyet peker på at mange brukere kopierer kode fra utviklingsverktøy og setter inn i celler i notebooks.
– Selv om det ikke er vårt mål å ha med all funksjonalitet fra et fullverdig moderne integrert utviklingsverktøy, er det et par forbedringer av kvaliteten av brukbarheten, skriver forskerne i blogginnlegget.
Brukergrensesnittet kan også gi et innblikk i kjernen av det som får magien i web-side-dokumentet til å fungere, og vise de oppgavene som utføres for øyeblikket.
– «Poly» i verktøyets navn referer til de mange språkene som det støtter. I første versjon er det – utover Python – Scala og SQL. R og Julia er altså valgt bort, det samme med Java.
Bygger på Java VM
Polynote bygger på en JVM-basert serverapplikasjon som server den web-baserte klienten. Applikasjonen kan lastes ned fra prosjektets hjemmeside.
Inntil videre er Polynote kun testet på Linux og MacOS via en Chrome-nettleser. Utviklere håper på å teste andre plattformer og nettlesere snart. Brukere skal derfor være velkomne til å teste Polynote på egne plattformer og melde tilbake om eventuelle bugs.
Artikkelen fortsetter under.
Polynote er blitt testet i Java 8 og Java 11 med suksess.
Nextjournal
Spillere i den kommersielle enden av spekteret har også kikket på avløsere til Jupyters notebooks. Nextjournal er en tysk hostet konkurrent hvor slagordet er at verktøyet kan kjøre «alt du kan putte i en Docker-konteiner».
Også her er det fokus på reproduserbarhet, blant annet med tanke på vitenskapelig publisering. Den hostede løsningen er integrert med CPU-biblioteker, så brukeren slipper problemer med å få satt det opp.
Nextjournal bygger på en freemium-modell, hvor gratisutgaven tilbyr 4 GB RAM. Notebooks kan leses med offentlig adgang. Modellene «private research» og «enterprise» byr på flere muligheter, mot betaling.
Saken ble først publisert på danske Datatech, og gjøres tilgjengelig på norsk for abonnenter av Digi Ekstra gjennom vår samarbeidsavtale med Teknologiens mediehus/Ingeniøren.