Login
Login-Name Passwort


 
Newsletter
Werbung

Di, 25. Februar 2014, 14:12

Software::Entwicklung

Neovim will Vim renovieren

Der vi-kompatible Editor Vim hat nach Ansicht einiger Entwickler eine gründliche Überarbeitung nötig. Das Projekt Neovim will daher »Vim ins 21. Jahrhundert« bringen.

Vim 7.4

Mirko Lindner

Vim 7.4

Vim ist ein leistungsfähiger Texteditor, der den traditionellen Editor vi neu implementierte und zahllose neue Funktionen hinzufügte. Für die meisten Anwender dürfte der seit 20 Jahren entwickelte Vim die Referenz unter den vi-kompatiblen Editoren darstellen. Immer noch werden stetig neue Erweiterungen geschrieben, was dank der eingebauten Skriptsprache Vimscript und der unterstützten weiteren Skriptsprachen recht einfach ist.

Doch Wachstum führt in jedem Software-Projekt dazu, dass der Code immer unübersichtlicher und schwerer zu ändern wird. So auch in Vim, der nach Angaben des jungen Entwicklers Thiago de Arruda Padilha auf über 300.000 Zeilen C-Code angewachsen ist, den man sich kaum zu ändern traut, weil die Auswirkungen auf das Gesamtprogramm kaum noch zu verstehen sind.

Aus diesem Grund hat de Arruda Padilha das Projekt Neovim gegründet, das sich nicht weniger als die vollständige Refaktorisierung von Vim auf die Fahnen geschrieben hat. Kaum dass der erste Code auf Github platziert war, legte der Initiator bereits eine Crowdfunding-Initiative auf Bountysource auf.

Auf das neue Projekt aufmerksam gemacht, äußerten sich Vim-Initiator und Hauptentwickler Bram Moolenaar und einige andere Entwickler skeptisch zu der Idee. »Es wird eine ungeheure Arbeit sein«, meint Moolenaar und stellt die Frage: »Was bringt es den Benutzern?« Moolenaar befürchtet, dass die neue Version weniger Plattformen unterstützt und viele neue Fehler verursacht. Statt einer radikalen Refaktorisierung solle Vim schrittweise verbessert werden, wobei auch kleinere Refaktorisierungen möglich seien. Möglicherweise sehen es die Entwickler auch als dreist an, dass jemand quasi eine Abspaltung von Vim vornimmt und damit auch noch Spendengelder einwerben will. Auch Vim sammelt Spenden, die jedoch komplett an humanitäre Projekte in Uganda fließen.

Doch vielleicht ist die Skepsis nicht angebracht. Der Brasilianer Thiago de Arruda Padilha hat nicht nur zu Vim, sondern auch zu einigen anderen freien Projekten bereits beigetragen und kennt sich wohl bestens in Vim aus. Das Publikum sieht es wohl ähnlich und hat dafür gesorgt, dass das Spendenziel von 10.000 US-Dollar bereits nach zwei Tagen erreicht war. Für diese 10.000 US-Dollar versprechen de Arruda Padilha und seine Mitstreiter einiges. Zunächst soll die Last auf mehr Entwickler verteilt werden, da Bram Moolenaar in ihren Augen einen Engpass darstellt. Der Schwenk zu einer Git-basierten Entwicklung ist Teil dieser Änderung. Der Quellcode des Kerns von Vim soll kaum verändert, das ganze Umfeld jedoch modernisiert werden. Das bisherige Generiersystem soll durch cmake ersetzt werden. Plattformspezifischer Code soll durch libuv ersetzt werden. Eine neue Plugin-Architektur soll entstehen, die die Skripte durch »echte« Plugins ersetzt, die in beliebigen Sprachen geschrieben sein können. Auch die verschiedenen Variationen der GUI von Vim sollen mit Plugins realisiert werden.

Der große Erfolg der Spendenkampagne, die noch 26 Tage lang offen ist, hat dazu geführt, dass de Arruda Padilha erweiterte Ziele definieren musste. Falls 20.000 USD erreicht werden, soll Vimscript als Sprache neu implementiert werden, die nach Lua compiliert wird. Für diesen Zweck wäre ein JIT-Compiler wie Luajit geeignet, wodurch Vimscript wesentlich schneller würde. Mit 30.000 USD wollen die Entwickler den Editor zu einer Bibliothek machen, was wesentliche Änderungen bei der Behandlung von Ein- und Ausgaben erfordern würde. 40.000 US-Dollar würden zur Abschaffung aller globalen Variablen führen. Damit könnten dann mehrere unabhängige Instanzen des Editors in einem einzelnen Prozess laufen. Das zusätzliche Ziel bei 50.000 US-Dollar lautet Refaktorisierung der Systemaufrufe in eine Abstraktionsschicht, die wahlweise in Javascript (asm.js) compiliert werden kann. Damit wäre neovim nativ in Webbrowsern ausführbar.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung