Недавно стартовавший проект Neovim анонсировал планы по модернизации текстового редактора Vim. Уже за первый день сборов кампания собрала $12 000 из $10 000 необходимых, что подтверждает наличие у текстового редактора своей аудитории, заинтересованной в его улучшении. И хотя вся необходимая сумма уже собрана, люди и сегодня продолжают перечислять средства. На данный момент собрано $13 161.
Vim - мощный текстовый редактор. Поддерживается большим сообществом, численность которого уверенно возрастает. Несмотря на значительный возраст текстового редактора, а это около двух десятилетий, его приверженцы до сих пор настроены на улучшение.
После долгой разработки редактора, Vim состоит примерно из 300 тысяч строк на языке C89. И это при том, что работать с его кодовой базы способны лишь несколько людей на планете.
Еще одна значительная проблема доработки Vim - это наличие только одного человека, ответственного за поддержку редактора. Брэму Монлеару, автору редактора Vim, приходится быть очень осторожным с патчами, поскольку на нем лежит вся ответственность, если что то пойдет не так.
Эти проблемы делают трудным внедрение новых функций и исправление ошибок и текстовый редактор не успевает идти в ногу со временем.
Решение - проект Neovim.
В рамках проекта планируется реорганизация кодовой базы Vim в соответствии с целями:
- Упростить обслуживание для повышения скорости работы;
- Разбиение работы между несколькими разработчиками;
- Внедрение новых современных пользовательских интерфейсов;
- Внедрение поддержки новой архитектуры для плагинов. Плагины могут быть написаны на любом языке программирования без какой либо прямой поддержки со стороны автора.
Важно отметить, что целью проекта Neovim не является тотальное переписывание кодовой базы или написание редактора с нуля. Не планируется и превращать редактор в IDE.
Разработка интерфейса не предполагает изменения кодовой базы и будет производиться в качестве надстройки.
Тем не менее, уже с самого начала работы, основной задачей стало перевод кода при помощи компилятора cmake и борьба с привязкой к старым компиляторам.
Для достижения цели кампания использует проект GitHub.