The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлен Vim9, форк Vim для экспериментов с оптимизацией скриптов

06.01.2020 22:44

Брам Моленар (Bram Moolenaar), автор текстового редактора Vim, объявил о создании репозитория Vim9, в котором ведётся работа над экспериментальным форком Vim, нацеленным на изучение возможных способов повышения производительности и качества работы языка сценариев Vim.

Основные оптимизации связаны с переработкой методов определения, вызова и выполнения функций, а также c уходом от применения словарей для аргументов и локальных переменных. Начальный прототип новой реализации, в которой функции вначале компилируются в последовательность инструкций, сохраняющих промежуточные результаты и локальные переменные в стеке, продемонстрировал сокращение времени выполнения теста цикличного вызова функции с 5.018541 до 0.073595 секунд, а теста обработки строк с 0.853752 до 0.190276 секунд. В Vim9 также развиваются средства для написания плагинов не только на встроенном языке сценариев, но и на различных языках программирования, включая Python, Go и Java.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Релиз текстового редактора Vim 8.2
  3. OpenNews: Доступен Neovim 0.4, модернизированный вариант редактора Vim
  4. OpenNews: Уязвимость в Vim, приводящая к выполнению кода при открытии вредоносного файла
  5. OpenNews: Выпуск SpaceVim 1.1, дистрибутива редактора Vim
  6. OpenNews: Второй выпуск vis, текстового редактора в стиле vim
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52142-vim
Ключевые слова: vim
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (67) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:53, 06/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Зачем оно нужно, если уже есть neovim?
     
     
  • 2.27, За Навального (?), 08:08, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Зачем это нужно, если есть nano

    У тебя в названии программы были ошибки, поправил тебя.

     
     
  • 3.30, Аноним (-), 10:16, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну и как оно писать код в нано?
     
     
  • 4.31, Аноним (31), 11:27, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как редактор для набора кода примерно сравнимо со встроенным редактором Arduino IDE, котрый не блещет возможностями.
     
  • 2.28, jOKer (ok), 08:31, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разнообразие - всегда хорошо. Так что пусть живет. Он, похоже, и создан-то не без оглядки на neovim, а теперь и команде neovim будет о чем подумать на досуге. В общем, все Ок.
     
  • 2.44, Alexander Komarov (?), 23:19, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем это уныние, когда есть acme?
     
     
  • 3.52, имя (ok), 11:04, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вы на чужие машины 9p-серверы тащите только для того, чтобы завязанным на манипулятор типа «мышь» редактором можно было конфиг поправить?
     
  • 2.56, Аноним (56), 15:44, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем оно нужно, если уже есть

    перфокарты

     
  • 2.63, Аноним (63), 17:39, 09/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем нужен neovim, если главную фичу с асинхронностью запилили в основной ветке?
     
     
  • 3.68, Аноним (68), 19:14, 13/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы не возник Neovim, то этой фичи в основной ветке могло бы не быть ещё очень долго, или не было бы вообще.
     

  • 1.2, Аноним (2), 00:00, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Хорошая новость...правда вимскрипт - самый худший из всех скриптовых языков. Хуже только луа.
     
     
  • 2.10, GentooBoy (ok), 00:53, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Может быть вы посоветуете чем lua заменить?
     
     
  • 3.32, Аноним (31), 11:31, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам Lua не ползовался. Некоторое время назад на этом ресурсе пели похвалы Lua, что так изменило отношение?
     
     
  • 4.51, neAnonim (?), 09:24, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ... разные анонимы и ты в их числе
     
  • 3.33, Аноним (2), 11:35, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Lisp, js(встраиваемый), actionscript, или "c с классами" без возможности работать с уазателями.
     
  • 3.40, фывфыв (?), 18:36, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отсуствие альтернатив, не делает Lua хорошим языком.
     
     
  • 4.65, Аноним (63), 22:46, 09/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как и наличие тупых хейтеров не делает его плохим
     
  • 3.71, Аноним (71), 07:16, 05/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Может быть вы посоветуете чем lua заменить?

    TCL

     
  • 2.16, neAnonim (?), 01:48, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://github.com/martanne/vis
    использует lua вместо vimscript. В том числе из за lpeg для подсветки синтаксиса.
     
     
  • 3.25, qetuo (?), 06:23, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лучший из всех vim-like редакторов. Multiple cursors, multiple selections, structural regex, внятный язык для плагинов, sam'овский синтаксис комманд.
     
     
  • 4.38, macfaq (?), 16:42, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А плагинов под него понаписывали?
    Не то, чтобы сильно нужно было, больше из интереса.
     
     
  • 5.41, qetuo (?), 19:23, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть пачка стандартных, есть несколько кастомных. Не взлетело, параллельно neovim набирал обороты. А жаль. После Sam'а команды и работа с регулярками Vi(m)'а ощущаются жутко неэргономичными.
     
  • 4.66, имя (ok), 00:34, 10/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Multiple cursors, multiple selections

    С https://github.com/mawww/kakoune сравнивать не пробовали?

     
     
  • 5.70, Siborgium (ok), 06:42, 05/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пробовали. kakoune заметно жирнее, после vis выглядит жутко деревянным.
     
  • 2.19, Аноним (19), 03:49, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не, хуже только lisp. lua хотя бы с виду похож на ЯП.
     
     
  • 3.21, Аноним (21), 04:17, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У лиспа хотя бы массивы с 0 начинаются
     
     
  • 4.42, qetuo (?), 19:23, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какая разница?
     
     
  • 5.45, Илья (??), 23:38, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну разницы-то принципиальной нет, только пусть этим пользуются другие
     
     
  • 6.55, Урри (?), 12:15, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разница как раз таки принципиальная.
    Если вы пишете математику и пытаетесь думать как математик, вам нужны массивы начинающиеся с 1. Ибо в математике нету нулевой колонки матрицы, ибо это бред и нонсенс. Есть первая.

    Ну а если вы просто кодер и вам надо побыстрее закодить то, что придумал за вас математик - тут, возможно, с 0 будет действительно удобнее.

     
     
  • 7.60, Аноним (60), 20:52, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    http://bash.org.ru/quote/111111

     
  • 7.61, Илья (??), 23:44, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    я не видел ни одного математика, которого бы беспокоило то, с какого числа начинается список.
     
     
  • 8.64, Аноним (63), 22:43, 09/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вот диванных программистов полно... текст свёрнут, показать
     
  • 2.54, Урри (?), 12:12, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Десятое правило Гринспена:

    Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.

     

  • 1.3, Аноним (3), 00:04, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Java

    Картина Репина, "vim-моська и JVM™©®-СЛОНИЩЕ"

     
     
  • 2.8, rshadow (ok), 00:27, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Жабисты скорее всего будут писать плагины для себя же. Так то все будет норм.
     

  • 1.4, An0n (?), 00:06, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну раз Брэм возглавляет, то вполне реально, что получится толк, а не гироскутер.
     
     
  • 2.62, имя (ok), 17:01, 09/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну раз Брэм возглавляет, то вполне реально, что получится толк, а не
    > гироскутер.

    Вам напомнить, как придуманный им язык Zimbu выглядел?

    http://www.zimbu.org/Home/unix-echo-example

    Да-да, в нём нет открывающих фигурных скобкок, но есть закрывающие.

     

  • 1.5, n1rdeks (ok), 00:09, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Давно пора было развивать дополнения. Как редактор - состоялся, но большинство пишет код с большим количеством плагинов.

    Плюс выбор языков даст "новую кровь".

    Удачи проекту.

     
  • 1.9, твой лучший друг (?), 00:34, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    как питон прицепили, как щас помню, так и сразу автодополнение стало с выпадающим розовым списком и сразу всё начало тормозить. Был у меня тогда  атлон 1500хп, одноядерный, машинку заапгрейдили до чего-то там на селероне, но осадочек остался. до сих пор вырубаю этот розовый списочек.  Но дело в питоне. тут уже реально речь не о алгоритмике, именно о механизме встраивания дополнений  - питон избыточен для решаемых задач по синтаксису.
     
     
  • 2.20, CrazyAlex (?), 04:14, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то расширения могут быть самой разной степени навороченности, и говорить, что нечто  "избыточно по синтаксису" я бы не стал. Может там честный парсер языка или поиск на stackoverflow с фильтрацией или генерация тегов по анализу текста документа... да мало ли под что можно заточить хороший конструктор.
     

  • 1.11, Аноним (11), 01:02, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему нельзя прицепить perl, который специально для текста и создан?
     
     
  • 2.18, Аноним (19), 03:48, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Perl во-первых, мёртв, во-вторых - не смотря на якобы "созданность для текста", ни разу не является сколь либо для этого пригодным.
     
     
  • 3.22, CrazyAlex (?), 04:19, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очень даже пригоден, и не особо мёртв - багфиксы выходят, cpan более-менее.

    Вот что-то большое я на нём писать не стпл бы, и то скорее потому что для "большого" лучше брать нечто с нормальной статической типизацией.

    Имхо, надо бы чтобы любой скриптовый движок более-менее легко прикручивался, а не закладываться на "один правильный".

     
     
  • 4.57, Аноним (57), 17:37, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даже всякие raku выходят.
     
  • 3.67, Аноним (63), 17:19, 10/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >не смотря на якобы "созданность для текста", ни разу не является сколь либо для этого пригодным

    Какой же язык, по-вашему, более пригоден для этой задачи?

     
  • 2.26, Аноним (26), 06:28, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так он вроде никуда и не отцеплялся: https://vimhelp.org/if_perl.txt.html#perl-using
     

  • 1.12, крокодил мимо.. (?), 01:19, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Vim9.. Plan9.. ммм.. таки "да"©™, не все полимеры ещё профуканы.. ждём релиза и всех благ проекту, что характерно..
     
  • 1.13, siu77 (ok), 01:25, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    - Почему мы прячемся от полиции?
    - Потому что мы используем vim, а они - vim9.
    jpg
     
  • 1.14, Ordu (ok), 01:32, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А во что они компилируют? В native-код? Или в vim есть виртуальная машина со своим байткодом?
     
     
  • 2.23, АнонАнон (?), 06:01, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Разве скриптовые языки нужно компилировать?
     
     
  • 3.34, Ordu (ok), 11:41, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Разве скриптовые языки нужно компилировать?

    Честно говоря, я потерял последнее время идею, стоящую за классификацией языков на скриптовые и нескриптовые. Когда-то мне эта классификация казалась очевидной и напрашивающейся, но сейчас я не понимаю её. Компилировать нужно всё. Возможно было бы сделать исключение для коротеньких скриптов, которые однократно выполняются, потому как там компиляция+выполнение будет медленнее чем интерпретация, но в этих случаях скорость явно не важна, и ради минорного ускорения в случае где оно не нужно никому ещё и интерпретатор поддерживать -- это бездарная трата человекочасов.

    Но тут без разницы нужно компилировать или не нужно: в новости написано, что они вызовы функций компилируют в набор инструкций, возникает вопрос в какой набор инструкций они компилируют? В байткод какой-то? Мне было бы любопытно узнать, но, почитав readme на github'е, я не нашёл ответа.

     
     
  • 4.37, llolik (ok), 14:42, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В код углубляться не хочется, но думаю, что в набор инструкций для ДКА, который выполняет команды Vim. Представляется, это быстрей чем лишний раз запускать долгий и тяжёлый парсинг всего скрипта.
     

  • 1.15, Аноним (15), 01:41, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Брам Моленар в отличии от некоторых анонов не пердит с дивана, а взял и начал.
    это сообщение содержит призыв анонов реализовывать свои идеи.
     
     
  • 2.29, siu77 (ok), 09:00, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >этот пердёж с дивана содержит призыв анонов реализовывать свои идеи.

    поправил

     

  • 1.35, Аноним (35), 12:34, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >В Vim9 также развиваются средства для написания плагинов не только на встроенном языке сценариев, но и на различных языках программирования, включая Python, Go и Java.

    Наоборот, дропается встроенная поддержка всех языков кроме VimScript, а кому надо - могут писать внешние тулзы хоть на Java, хоть на Go.

     
  • 1.36, user90 (?), 14:35, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Никогда не юзал. И не тянет, ибо сабж абсолютно непонятен, когда есть Он! ;)
     
     
  • 2.46, Илья (??), 23:40, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сублим?
     
     
  • 3.47, Anonymoustus (ok), 23:46, 07/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сублим?

    notepad.exe

     
     
  • 4.49, user90 (?), 00:19, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Emacs жи, думал это дефолт, который не нужно даже озвучивать.
     
     
  • 5.50, Anonymoustus (ok), 08:40, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Emacs жи, думал это дефолт, который не нужно даже озвучивать.

    Не пищит, не труъ!

     
  • 3.48, user90 (?), 00:17, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это плевок в рожу просто!
     

  • 1.39, А слабо... (?), 16:51, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Имперский марш на Виме набибикать?
     
     
  • 2.58, Одной рукой (?), 18:04, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Набибикал a-moll "Ракоци-марш" Листа
    На Vim9 и не то еще можно)
     
     
  • 3.59, Одной рукой (?), 18:06, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ставьте минусы... неудачники!
     
     
  • 4.69, Аноним (68), 19:23, 13/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Назло тебе поставил плюс.
     

  • 1.43, Аноним (43), 22:16, 07/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тааак, уже 38 комментов и ни слова про столmacs
     
     
  • 2.53, Andrey Mitrofanov_N0 (??), 11:12, 08/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Тааак, уже 38 комментов и ни слова про столmacs

    и про spacemacs.  Дикие люди...

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру