Dafür wurden umfangreiche Verbesserungen der Performance, Stabilität, Modulariät und bei den Feature-Sets vorgenommen; dazu kommen über 2.000 von der Community entwickelte Packages wie der Linter, autocomplete-plus oder Minimap. In einem Blogpost beschreibt Ben Ogle den Weg zu Atom 1.0.
Das kann Atom 1.0
Innerhalb eines Jahres hat sich Atom zu einem Text-Editor mit umfangreichen Feature-Sets entwickelt, die mittlerweile auch für andere Projekte wie die kürzlich Open Source zur Verfügung gestellte Nuclide-IDE die Basis bilden. Gerade was die Performance angeht, wurden zahlreiche Verbesserungen vorgenommen; zudem ist Atom 1.0 im Vergleich zum ersten Launch dank eines stabileren APIs, eingebautem ECMAScript-6-Support mit Babel oder neuen Themes deutlich modularer.
Ursprünglich wurde bereits 2008 mit einer frühen Version von Atom – damals noch Atomicity genannt – begonnen, die zunächst zugunsten der Arbeit an GitHub ad acta gelegt wurde. Erst als niemand sonst einen auf Web-Technologien basierenden Desktop-Editor veröffentlichte, wurde die Arbeit an Atom wieder aufgenommen. Im Februar 2014 als Public-Beta erschienen und kurze Zeit später Open Source verfügbar gemacht, feiert der Editor nun mit dem Release von Version 1.0 den ersten großen Meilenstein – und will dem noch viele weitere folgen lassen.
Auf der To-Do-Liste steht neben der weiteren Feinarbeit an der Plattform und der Core-User-Experience natürlich die weitere Verbesserung der Performance und der Stabilität, aber auch die Implementierung eines internationalen Supports und noch viel mehr ist bereits geplant. Dazu sagt Ben Ogle:
Until now, work has largely gone into defining the 1.0 foundation. Now that the foundation is stable, we can shift our efforts to reaching the full potential of the platform.
Atom 1.0 steht auf der Projekt-Website zum Download zur Verfügung; dort finden sich zudem auch ausführliche API-Docs sowie Demos und Tutorials zur Nutzung des Text-Editors.
Performance- und Rendering-Verbesserungen in Atom
Die Performance des Text-Editors ist überhaupt ein gutes Stichwort und an deren Verbesserung wurde beim Atom-Entwicklerteam gerade in den letzen Monaten fleißig gearbeitet. Dafür wurden einige neue Techniken eingesetzt, die den Rendering-Prozess deutlich beschleunigen sollen. Dazu gehört, den DOM so klein wie möglich zu halten, indem nur sichtbare Zeilen gerendert werden und absolute Koordinaten für sie zu verwenden.
Um dabei allerdings dabei eine zu große Belastung des GPUs zu verhindern, werden Zeilen in Atom als Tiles anstatt als individuelle Entities angesehen. Dafür werden willkürliche Mengen an Zeilen als Tiles zusammengefasst, jedes Tile in einem seperaten GPU-Layer platziert und jede Zeile mit absoluten Koordinaten im entsprechenden Tile positioniert. Zudem wird das Scrolling simuliert, indem jedes Tile mit transform3d übersetzt wird.
So hat die GPU weniger Last und die Paint-Time verringert sich, wenn neue Tiles auf dem Bildschirm erscheinen. Zudem wird auch die Cleanup-Zeit reduziert, weil ganze Tile-Nodes anstatt nur einzelner Zeilen gelöscht werden. Mehr Informationen dazu finden sich in einem Blogpost, in dem Antonio Scandurra die Verbesserungen der Atom-Rendering-Architektur vorgestellt hat.
Webperformance und Page Speed 2021
mit Sven Wolfermann (maddesigns)
UX Design: Kitsch – du willst es doch auch!
mit Lutz Schmitt (Lutz Schmitt Design & Consulting)
SEO loves PR: Wie zwei Disziplinen gemeinsam erfolgreich sein können
mit Anne Kiefer (sexeedo GmbH)