De evolutie van het Jupyter Notebook

Project Jupyter bestaat om open-source software, open standaarden en diensten voor interactieve en reproduceerbare computing te ontwikkelen.

Sinds 2011 is de Jupyter Notebook ons vlaggenschipproject voor het maken van reproduceerbare rekenverhalen. De Jupyter Notebook stelt gebruikers in staat om documenten te maken en te delen die live code combineren met verhalende tekst, wiskundige vergelijkingen, visualisaties, interactieve controles en andere rijke output. Het biedt ook bouwstenen voor interactief rekenen met gegevens: een bestandsbrowser, terminals en een teksteditor.

Het Jupyter Notebook is alomtegenwoordig geworden met de snelle opkomst van kenniswetenschap en machinaal leren en daarmee de stijgende populariteit van open-source software in de industrie en de academische wereld:

Vandaag de dag zijn er veel gebruikers van de Jupyter Notebook in vele domeinen, van datawetenschap en machinaal leren tot muziek en onderwijs. Onze internationale gemeenschap komt uit bijna elk land op aarde.¹

De Jupyter Notebook ondersteunt nu meer dan 100 programmeertalen, waarvan de meeste door de gemeenschap zijn ontwikkeld.

Er zijn meer dan 1,7 miljoen openbare Jupyter-notebooks die op GitHub worden gehost. Auteurs publiceren Jupyter-notitieboeken in combinatie met onderzoeksprojecten, academische tijdschriften, datalogistiek, onderwijscursussen en boeken.

Op een gelijkwaardig moment is de gemeenschap geconfronteerd met uitdagingen in het gebruik van verschillende software-workflows met het notebook alleen, zoals het uitvoeren van code van tekstbestanden interactief. De klassieke Jupyter Notebook, gebouwd op webtechnologieën uit 2011, is bovendien moeilijk aan te passen en uit te breiden.

JupyterLab: Klaar voor gebruikers

JupyterLab is een interactieve ontwikkelomgeving voor het werken met notebooks, code en data. Het belangrijkste is dat JupyterLab volledige ondersteuning biedt voor Jupyter notebooks. Daarnaast stelt JupyterLab u in staat om tekstverwerkers, terminals, bestandsviewers en andere aangepaste componenten naast notebooks te gebruiken tijdens een werkgebied met tabbladen.

https://miro.medium.com/max/1320/1*O20XGvUOTLoFKQ9o20usIA.png

JupyterLab biedt een hoge mate van integratie tussen notebooks, documenten en activiteiten:

Slepen en neerzetten om notebookcellen opnieuw te ordenen en te repliceren tussen notebooks.

Voer codeblokken interactief uit van tekstbestanden (.py, .R, .md, .tex, etc.).

Koppel een codeconsole aan een notebook kernel om de code interactief te verkennen zonder de notebook te vertroebelen met tijdelijk kraswerk.

Bewerk populaire bestandsformaten met live-preview, zoals Markdown, JSON, CSV, Vega, VegaLite en meer.

JupyterLab is al meer dan drie jaar in de maak, met meer dan 11.000 commits en een paar.000 releases van npm- en Python-pakketten. Meer dan 100 medewerkers uit de bredere gemeenschap hebben bijgedragen aan het bouwen van JupyterLab als aanvulling op onze kern JupyterLab-ontwikkelaars.

Om te beginnen, zie de JupyterLab documentatie voor installatie-instructies en een walk-through, of probeer JupyterLab met Binder. u zult ook JupyterHub vinden om JupyterLab te gebruiken.

Pas uw JupyterLab-ervaring aan

JupyterLab is gemaakt bovenop een extensiesysteem waarmee u JupyterLab kunt aanpassen en verbeteren door extra extensies te installeren. In feite wordt de ingebouwde functionaliteit van JupyterLab zelf (notebooks, terminals, bestandsbrowser, menusysteem, etc.) geleverd door een groep kernapparaten.

https://miro.medium.com/max/1320/1*OneJZOqKqBZ9oN80kRX7kQ.png

Onder andere kunnen uitbreidingen:

Nieuwe thema’s, bestandsredacteuren en -kijkers of renderers bieden voor rijke uitvoer in notebooks;

Menu-items, sneltoetsen of geavanceerde instellingsopties toevoegen;

Voorzien in een API voor andere extensies om te gebruiken.

De door de gemeenschap ontwikkelde extensies op GitHub zijn getagd met het onderwerp jupyterlab-extensie, en bevatten momenteel bestandsviewers (GeoJSON, FASTA, enz.), Google Drive-integratie, GitHub-browsen, en ipywidgets-ondersteuning.

JupyterLab-extensies ontwikkelen

Terwijl veel JupyterLab-gebruikers extra JupyterLab-extensies zullen installeren, zullen een aantal van u uw eigen extensies willen ontwikkelen. De extensie ontwikkeling API ontwikkelt zich tijdens de beta release serie en kan zich stabiliseren in JupyterLab 1.0. om te beginnen met het ontwikkelen van een JupyterLab extensie, zie de JupyterLab Extension Developer Guide en dus de TypeScript of JavaScript extensie sjablonen.

JupyterLab zelf is mede ontwikkeld bovenop PhosphorJS, een vervangende Javascript bibliotheek voor het bouwen van uitbreidbare, high-performance, desktop-stijl webapplicaties. We gebruiken moderne JavaScript-technologieën zoals TypeScript, React, Lerna, Yarn en webpack. Unittests, documentatie, consistente coderingsstandaarden en gebruikerservaringsonderzoek helpen ons om een hoogwaardige applicatie te onderhouden.

JupyterLab 1.0 en Beyond

We besluiten JupyterLab 1.0 later in 2018 vrij te geven. De beta-releases tot 1.0 zullen zich specialiseren in het stabiliseren van de extensie-ontwikkelings-API, interfaceverbeteringen en extra kernfuncties. Alle releases binnen de beta-serie zullen stabiel genoeg zijn voor dagelijks gebruik.

JupyterLab 1.0 zal uiteindelijk de klassieke Jupyter Notebook vervangen. Gedurende deze overgang zal een gelijkwaardig notebook documentformaat worden ondersteund door zowel de klassieke Notebook als JupyterLab.