Альтернативы Nitra
От: s22  
Дата: 14.01.17 11:01
Оценка: :))
Грааль и Трюфель (Graal & Truffle)

Как можно разорвать этот порочный цикл? Давайте помечтаем, чего бы нам хотелось.

Нам нужно нечто, специальный инструмент, который позволит сделать следующее:

Способ создать новый язык всего за неделю
И чтобы он автоматически работал так же быстро, как другие языки
Чтобы у него была поддержка качественного отладчика, автоматически (в идеале без замедления работы программы)
Поддержка профилирования, автоматически
Наличие качественного сборщика мусора, автоматически … но только, если он нам понадобится
Чтобы язык мог использовать весь существующий код, независимо от того, на чём он был написан
Чтобы язык поддерживал любой стиль программирования от низкоуровневого C или FORTRAN до Java, Haskell и полностью динамических скриптовых языков, таких как Python и Ruby.
Чтобы поддерживал just-in-time и ahead-of-time компиляцию
И наконец, чтобы поддерживалась горячая замена кода (hotswap) в уже работающей программе.


https://habrahabr.ru/post/319424/
Re: Альтернативы Nitra
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.01.17 12:54
Оценка:
Здравствуйте, s22, Вы писали:

s22>Грааль и Трюфель (Graal & Truffle)


s22>https://habrahabr.ru/post/319424/


Это перевод рекламного трепа. В реальности это проект о супер-компиляции превращающей интерпретатор в компилятор (ну, почти в компилятор). А вот сам язык и его интерпретатор там предлагается писать на Яве.

Я уже отвечал по этому поводу Кочеткову в Гуглплюсе:
https://plus.google.com/u/0/+%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80%D0%9A%D0%BE%D1%87%D0%B5%D1%82%D0%BA%D0%BE%D0%B2/posts/gT43JjuCHhb
Вот мой ответ от туда:

Ты посмотри их туториалы. http://cesquivias.github.io/tags/truffle.html и на их видео https://www.youtube.com/watch?v=FJY96_6Y3a4 (там видно сколько надо писать кода на Яве)
Там какой-то мрачный закат солнца вручную. Судя по всему парсинг предлагается делать вручную или с помощью AntLR. AST писать вручную. Типизацию опять же вручную. И дальше предлагается какое-то решение по суперкомпиляции интерпретаторов превращающая их в почти что компилятор. Но далее приводятся результаты этого подхода из которых следует, что этот метод приводит к дичайшим затратам на "прогрев" кода, и все равно результат получается не таким быстрым и очень прожорливым к памяти.

Меж тем написание интерпретатора мало чем отличается от генерации коды с точки зрения затрат.

Другими словами для прототипирования то там почти ничего и нет. Это ресерч в области суперкомпиляции. С научной точки зрения — это мега-интересно и круто! Но с практической мало что дает.

Тем временем Nitra на практике показывает высокую скорость прототипирования. А вопрос перевода своего языка в скомпилированную форму лучше решать немерловыми средствами — трансляция кода в код с применением паттерн-матчинга.

Вот только после ухода из джетбрэйнса прогресс в разработке Нитры дико замедлился. Стас мне так и не помогает. Вольфхаунд забил на написание кода еще в Джетбрэйнсе. Пишу один попутно переключаясь на заработок денег. За год смог написать только генератор плагинов к студии. Правда, качественный. В клент-серверной архитектуре. Сейчас для релиза еще надо стипизировать Нитру на ее же новой версии. Я просил помочь с этим Стаса еще год назад. Но бес толку.

Подтолкни его и мы выкатим первую версию Нитры уже в этом квартале (а может и через месяц). А там глядишь, я смогу найти спонсоров/инвесторов.

Мы и сейчас опережаем конкурентов на годы, как это не странно. Но работы очень много. И одному это все делать крайне тяжко. А если у меня кончатся средства, то вообще проектом никто заниматься не буду. Тянуть его параллельно с другой серьезной работой не реально. Он на 100 лет растянется. А со средствами становится все хуже и хуже. Мой мелкий бизнес загибается .

По сути, для первого релиза нужно только добить нитровскую типизацию и отладить на ее основе плагины IDE. После этого Нитру можно будет использовать на практике.

Но далее нужно сделать серьезный объем работ.
1. Чтобы поддерживать проекты любых размеров нужно усложнить подсистему вычисления зависимых свойств, чтобы она позволяла вычислять данные в IDE лениво (только требуемые для визуализации в данный момент).
2. Нужно написать и оттестировать расширяемый C# и хотя бы сабсэт Немерла (используемый в нитре). У C# и Немерла будет 80% общего кода. Так что это вполне подъемно.
3. Далее нужно забутстрапить Нитру на нитровском же Немерле и развязаться тем самым со старой тормозной реализацией Немерла. Это само по себе ускорит дальнейшую разработку.
4. Реализовать универсальное квазицитирование любого нитровского языка. У нас был прототип, но мы его отбросили из-за того, что он замедлял сборку вдвое и был не совершенен.

Это все без инвесторов/спонсоров не сделать. Так что сейчас надо выпускать релиз и искать их.

Так, что толкни, плиз, Стаса. С его помощью я сделаю типизацию Нитры значительно быстрее. А это сейчас ключевой момент остался. Я на нее полностью переключаюсь в ближайшее время.

Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 17.01.2017 8:43 VladD2 . Предыдущая версия .
Re[2]: Альтернативы Nitra
От: s22  
Дата: 14.01.17 13:24
Оценка:
спасибо за развернутый ответ.
Re[2]: Альтернативы Nitra
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 14.01.17 23:49
Оценка:
Здравствуйте, VladD2, Вы писали:

Гм, забавно -- о твоём втором ответе я узнал из сообщения здесь (в гугле оповещения не было) Ок, отвечу лучше тут.

VD>Другими словами для прототипирования то там почти ничего и нет. Это ресерч в области суперкомпиляции. С научной точки зрения — это мега-интересно и круто! Но с практической мало что дает.


Да, согласен, не разобрался сразу. Но у меня и "прототипы" такие, что для них и Nemerle.Peg -- уже многовато (обрывки грамматик более серьёзных языков, которые позволяют описывать эксплоиты инъекций в выражения на этих языках). Собственно, Peg пока и использую.

VD>Так, что толкни, плиз, Стаса.


С сентября наши пути немного разошлись -- Стас остался в продуктовой разработке, а я занялся исследованиями (перевёлся в другое подразделение). Так что теперь толкать его не могу, только просить А кроме Стаса кто-либо ещё может закончить типизацию? Или хотя бы описать текущее состояние по этой задаче и что необходимо сделать, чуть более детально?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Альтернативы Nitra
От: Kolesiki  
Дата: 15.01.17 14:40
Оценка:
Здравствуйте, s22, Вы писали:

s22>Грааль и Трюфель (Graal & Truffle)


Ясно. После прочтения, в голове только одно — сорокá Денисампоповым нечем заняться — яиц нет, достижений нет, населена жабофилами.

s22>Как можно разорвать этот порочный цикл?


Лишить таких "Петриков от ИТ" зарплаты?
Re[2]: Альтернативы Nitra
От: s22  
Дата: 16.01.17 11:14
Оценка:
Вообщем рефал рулит и как понимаю в этой отрасли он становиться дефакто стандартом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.