LINUX.ORG.RU
ФорумTalks

Oni 2 — Vim-like редактор на OCaml

 , , oni, ,


2

2

Ъ: https://v2.onivim.io/

Меня даже вчерашний шторм не разбудил, как я случайно наткнулся на факт о том, что Oni, фронтенд для NeoVim на Electron, переписали на OCaml, внезапно выбросив как Vim (почти), так и Electron (полностью). Запилили, кстати, на собственном тулките, использующий GPU для отрисовки.

Теперь это коммерческий проект под EULA и двойной лицензией, выпуск коммитов под MIT будет с задержкой в 18 месяцев.

Обещают совместимость с плагинами и темами VS Code, опциональную поддержку VimL.

Сейчас просят $19 за lifetime-лицензию, дальше — больше (цены на уровне Sublime).

А вы уже сделали предзаказ? Я — да.

★★★★★

переписали на OCaml, внезапно выбросив как Vim (почти), так и Electron (полностью).

Не знаю, что там за вещества, но хочу такие же.

Deleted
()

Никогда не понимал, зачем платить за плохой текстовый редактор, когда есть бесплатные хорошие.

buddhist ★★★★★
()
Ответ на: комментарий от commagray

Очень недальновидно учитывая куда всё идёт.

pon4ik ★★★★★
()
Ответ на: комментарий от Thetan

Ну как бэ я решил, да. Но совсем базовый же, маленький и простенький, подсветочка, атодополнения через dict листы ну и может быть с натяжкой вызов сопрограмм на lua для автоматизации или ещё чего там. Раз уж упомянули, то скажу Oni прикольный, но вдохновляет меня вид редактора godot, он прям няя. Мечтаю повторить внешне его. А настоящий редактор для серьёзной правки лучше вызывать внешний.

Хотя учитывая всё, скорее всего ничего написано мною не буде

LINUX-ORG-RU ★★★★★
()

Oni, фронтенд для NeoVim

Oni 2 — Vim-like редактор

выбросили Vim

Запилили на собственном тулките

Его в терминале или удалённо можно?

Пока на такое планов нет, вроде бы. Сейчас только GUI на GLFW (и уже есть PR с переходом на SDL2).

Обещают совместимость с плагинами и темами VS Code

опциональную поддержку VimL

Каким боком тут Vim, болезный?

Vi-like редакторов куча, чем сабж выделяется (кроме лицензии) среди остальных?

mord0d ★★★★★
()

А вы уже сделали предзаказ?

Зачем мне платить за альфу? У них планы наполеоновские - не осилят.

RazrFalcon ★★★★★
()
Ответ на: комментарий от mord0d

Каким боком тут Vim, болезный?

Самая прямая. Оригинальный проект был для NeoVim, текущий проект использует libvim — форк Vim для управления буферами и модальностью.

commagray ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Ну, там если и упоминается JavaScript, то только в контексте трансляции в.

Весь тулчейн написан на OCaml, JavaScript там в меньшинстве.

commagray ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Но совсем базовый же, маленький и простенький, подсветочка, атодополнения через dict листы ну и может быть с натяжкой вызов сопрограмм на lua для автоматизации или ещё чего там.

Так ведь уже есть Vis.

commagray ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Вчера себе пару панелек для i3 переписал с Python на OCaml.

Позитив: быстро компилируется, никакой клинической зацикленности на ФП ради ФП. Хочешь как холоп писать императивщину и бросать исключения - легко, более того, походу это дефолт. Это такой себе С/Go от ФП, без перегибов. Хочешь стрелять в ногу? Легко - держи зенитный комплекс. Вообще все сигнатуры модулей простые и понятные. Бинарники по эффективности похожи на средненаписаный С/С++ код, никакого внезапного 10-ти кратного оверхеда.

Минусы: часть вышеописанного. В ФП языке стрелять exceptions по дефолту? Отступы насколько я понял имеют смысл. Установка пакетов через opam по две минуты, и я не знаю почему, если язык так быстро компилируется. Я получил пару ошибок «Syntax error» без объяснений указывающих на последний символ файла. Оказывается я в 5ой строчке «in» пропустил.

Вердикт, при нужной сноровке и чуть практике хорошая замена типизированому Python. (Нетипизированый - прошлый век, его с огнем выжгли у себя все корпорации на уровне policy)

Это очень не Haskell. В OCaml ноль академичности, обычная ежедневная практика. Просто Unix язык, как С, может только без проблем с управлением памятью. Со всеми другими косяками если ты хочешь сильных гарантий.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

На Окамле никто ничего не писал, кто с кем сраться будет? Вот если бы его компилятор был фронтендом к LLVM, то я знаю одного парня, который бы нашел, что написать.

Virtuos86 ★★★★★
()
Ответ на: комментарий от commagray

Прикольно, не знал, спасибо, но скорее всего нет, слишком имбово, мне редактор нужен в мой игровой движок, то есть встраиваемый с выводом через OpenGL. База у меня уже есть, осталась наследством от родительского проекта -> Corange мне же осталось доработать всё, минимальное уже работает https://www.youtube.com/watch?v=bnpTFA32vz4&feature=youtu.be, осталось реализовать скрытие текста выходящего за пределы текстового виджета, нормальный скролл, подсветку и самое важное свободное перемещение курсора что в виду архитектурных косяков сейчас невозможно. Ну и всё. Мне боши и не нада =) Всё скромненько ^.^

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от RazrFalcon

Я не понял пользу от ReasonML. Есть типы и есть императивное программирование с сайд-эффектами. Чем это лучше TypeScript? Тот же ReasonReact не выглядит проще или защищённее от сайд-эффектов чем любая другая вариация.

Например OCaml интересен не ФП, а именно теми бинарями, которые получаются. А тут что?

vertexua ★★★★★
()
Ответ на: комментарий от RazrFalcon

Согласись, бедновато. Короче я не очень понял плюсы ReasonML. Ну кроме того что можно мигрировать с JS плавно. Как и в TypeScript. Но не как в Elm/Dart

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Ещё ReasonML умеет в ADT, в отличии от TypeScript. Последний правда умеет Discriminated Unions, но это треш.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Синтаксис больно инопланетный.

Тебе ж яйцеголовые тоже самое о Rust говорят.

Вопрос просто в уровне нейропластичности

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Я не говорю что он плохой, я говорю что он непривычный для меня.

RazrFalcon ★★★★★
()

Oni, фронтенд для NeoVim на Electron, переписали на OCaml, внезапно выбросив как Vim (почти), так и Electron (полностью). Запилили, кстати, на собственном тулките, использующий GPU для отрисовки.

O_o

mos ★★☆☆☆
()

Кто-то упоролся несвежими смузями.

bread
()
Ответ на: комментарий от vertexua

никакой клинической зацикленности на ФП ради ФП.

Так, какая буква в слове OCaml тебе непонятна. Хинт: это не ирландская фамилия.

bread
()
Ответ на: комментарий от bread

Да он такой objective как у тебя искрометность юмора обычно, я думаю они во время всеобщего хайпа по объектам так назвали

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Его так назвали, потому что он объектно-ориентированный. Тебя просто смущает борщеедский набор фич. Но только вдумайся, там даже рекурсии нет по дефолту. Такое то ФП.

bread
()
Ответ на: комментарий от kawaii_neko

Ну в этом вопросе я не уверен. Ну нет, так нет

vertexua ★★★★★
()
Ответ на: комментарий от th3m3

Тем, что не Sublime, думаю. Мне просто нужен Vim с нормальным GUI и плагинами, и этот проект вполне может стать таким.

commagray ★★★★★
() автор топика
Ответ на: комментарий от kawaii_neko

Тем, что выхлоп получается человекочитаемый.

В смысле? В TS своего синтаксиса мало, в результирующем JS типы вытираются. Ну может чуток приседаний для классов своих, если target старый

vertexua ★★★★★
()
Ответ на: комментарий от commagray

Мне просто нужен Vim с нормальным GUI и плагинами, и этот проект вполне может стать таким.

Sublime умеет в режим Vim.

th3m3 ★★★★★
()
Ответ на: комментарий от kawaii_neko

Очевидно нет (по дефолту). Можешь помедитировать над вопросом почему в якобы хардкорном ФП языке так сделано.

bread
()
Ответ на: комментарий от bread

Вот зачем умничать если не знаешь зачем так сделано?

Без этой аннотации в языке было бы очень легко схлопотать рекурсию, где ты просто хотел сделать shadow предыдущего определения функции с таким же именем. shadow используется часто в разных идиоматических паттернах

Хоть бы на Stack overflow сходил. Я в свое время сходил и не туплю

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

который на reasonml, который на JS

Нет, ризон — всего лишь транслятор синтаксиса. Это даже не компилятор, просто синтаксический сахарок, который переписывает синтаксис. Написан на окамле. К жабоскрипту отношения никакого не имеет, в жабоскрипт можно компилировать уже OCaml с помощью js_of_ocaml или bucklescript. Dune поддерживает ризон, так что в одном проекте можно спокойно создавать ml и re файлы, и все соберется, так как язык один, re — не более, чем синтаксис.

Freyr69 ★★★
()
Последнее исправление: Freyr69 (всего исправлений: 1)
Ответ на: комментарий от vertexua

Отступы насколько я понял имеют смысл.

Не имеют. Нигде.

Freyr69 ★★★
()
Ответ на: комментарий от vertexua

Дядя, не мешай. Лор это место для тупняка и клоунады. «Умничать будете на собеседовании» лол.

bread
()
Ответ на: комментарий от vertexua

Позитив: быстро компилируется, никакой клинической зацикленности на ФП ради ФП. Хочешь как холоп писать императивщину и бросать исключения - легко, более того, походу это дефолт. Это такой себе С/Go от ФП, без перегибов.

В итоге императивным программистам он не нужен, потому что у них есть куда более популярные языки, с большим количеством библиотек, привычным синтаксисом, тысячами вакансий на hh. Функциональным программистам он тоже не нужен, ибо привычных всем фич нет, рантайм для функционального языка чуть менее чем абсолютно непригодный, конкаренси как для функционального ЯП вообще никуда не годится. Вердикт: не нужно.

Nexmean
()
Ответ на: комментарий от Nexmean

Ну наверное так и есть. Ниша не очень ясна.

Когда не было Rust/Go, то ниша была

vertexua ★★★★★
()
Ответ на: комментарий от Freyr69

Для браузера можно сразу Elm где все сразу доступно без приседаний с ReactReason, который пытается быть совместимым с ReactJS и криво натягивает Reason.

Для натива, есть смысл пропустить OCaml и сразу писать на Reason?

Иными словами, это дейсвительно улучшение? Какие недостатки Reason по сравнению с OCaml?

P.S. У меня дико полыхает от цепочек let ... in ...

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.