Здравствуйте, s22, Вы писали:
s22>собственно как я понял разработка фактически заморожена?
Согласен с предыдущим оратором. Уж извините, что не пиарюсь. Но пашим по тихоничку.
Почти закончил плагин к VS с клиент-серверной архитектурой (т.е. движок работает на сервере, а идее легкий универсальный плагин общающийся с сервером сообщениями).
К сожалению, в последнее время я работаю над проектом один и не на 100% времени. По этому идет медленнее. Но Сама Nitra работает. Закончу с плагином можно будет заняться расширяемым языком.
В ближайшее время буду пытаться найти спонсоров/инвесторов. Если кто-то хочет помочь проекту — милости просим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Почти закончил плагин к VS с клиент-серверной архитектурой
Влад, привет!
Меня с самого начала терзали смутные сомнения, что клиент-сервер для ИДЕ — это слишком медленно. Как твои ощущения? Есть ли ощутимая задержка?
Я как-то не могу себе представить, как можно набирая примерно 3 символа/сек успевать это сериализовать, передать на сервер (пусь локальный, но TCP же!), там процессинг, дорога назад.... не дофига ли?
А ещё принципиальный вопрос по Немерле: раз уж там накосячили с архитектурой, может проще было начать её заново, но именно как Немерле-2, а не "всемогутер для всех языков"? Запилить каркас, наделать точек расширения, базовый язык, а дальше всё как в родном Немерле! Мне кажется, это было бы куда проще, чем Нитра. Ну и быстрее в реализации.
Здравствуйте, Kolesiki, Вы писали:
K>Меня с самого начала терзали смутные сомнения, что клиент-сервер для ИДЕ — это слишком медленно. Как твои ощущения? Есть ли ощутимая задержка?
Ну, фирма веников не вяжет. Заметных на глаз задержек конечно же нет.
1. Межпроцесное взаимодействие не такая уж медленная вещь. Мы выбрали именованные каналы (Named pipes), которые в Windows являются самым быстрым интерфейсом.
2. Взаимодействие ведется сериализуемыми сообщениями. Мы написали макросы которые очень эффективно сериализуют сообщения и посылают все их данные за одно обращение к каналу.
3. Взаимодействие с сервером ведется не на каждый чих, а крупными транзакциями. Скажем, если нужно найти ссылки на символ, то на сервер посылается одно сообщение. Сервер отдает все результаты тоже одним сообщением.
4. Большинство операций ведется асинхронно. Так при редактировании на сервер асинхронно шлются сообщения содержащие информацию о изменениях в тексте документа, сервер (в теневом потоке) производит парсинг файлов и асинхронно (через отдельный канал) отправляет вычисляемую информацию (о подсветке, о свертке код и т.п.) клиенту. Клиент получая информацию передает управление GUI-потоку, в котором эта информация подменяет старую и производится перересовка. Так что задержек при вводе нет.
5. Используется кэширование данных. Например, между изменением файла и моментом кода с сервера приедут данные о подсветки используется старая информация о подствеке, которая ремапится на измененный буфер. В студии очень удобная версионная система для текста. С ее помощью такой ремапинг делается относительно просто. Так что не верно подсвечиваться может только введенный текст и очень не продолжительное время.
Ну, и мы не первые кто использует клиент-сервер. MS и ReSharper так нещадно тратят память, что они тоже были вынуждены переходить на клиент-сервер. У JetBrains есть такая IDE — Rider. По сути это IDEA с вынесенным в отдельные процесс движком ReSharper. Там сделать инпроцесс было трудно, просто потому, что IDEA — это Java-приложение, а ReSharper — дотенетное (точнее Mono).
K>Я как-то не могу себе представить, как можно набирая примерно 3 символа/сек успевать это сериализовать, передать на сервер (пусь локальный, но TCP же!), там процессинг, дорога назад.... не дофига ли?
Вот гифка (4 метра) демонстрирующая производительность (причем это дебажная версия выводящая в консоль тучу разной фигни):
Я выбрал не TCP, а именованные каналы из-за того, что они по шустрее при межпроцессном взаимодействии. Но думаю, что все будет приемлемо пахать и по TCP и даже по сетке. При тормозах сети будут некоторые задержки отрисовки, но не более того. Задержки до секунды будут вполне себе приемлемы. А найти латентность больше секунды сегодня не так то просто.
K>А ещё принципиальный вопрос по Немерле: раз уж там накосячили с архитектурой, может проще было начать её заново, но именно как Немерле-2, а не "всемогутер для всех языков"?
Теперь уже думать поздно. Nitra есть и она работает. На ней делать Nemerle значительно проще.
Конечно создать просто вторую версию Nemerle было бы проще. Но проблема ведь не только в том, чтобы написать код, а еще и в том, чтобы удержать проект в рамках приемлемой сложности. И вот тут ручная реализация дает очень плохие результаты. Для этого нужны намного большие ресурсы. Например, Kotlin в JetBrains пишет не маленькая команда уже много лет. А язык сильно проще Nemerle. Даже когда мы были в JetBrains нам такие ресурсы были недоступны. А сейчас и подавно.
Потом одна из самых больших проблем Nemerle была в том, что мало кто мог написать сложный макрос. В Nitra мы постарались эти вопросы упростить.
K>Запилить каркас, наделать точек расширения, базовый язык, а дальше всё как в родном Немерле! Мне кажется, это было бы куда проще, чем Нитра. Ну и быстрее в реализации.
Проблема в том, что все пришлось бы реализовать большую часть того что мы сделали в Nitra. Nitra — это эдакий бескомпромиссный и универсальный каркас.
Собственно сегодняшних возможностей Nitra на создание Nemerle 2 уже достаточно. Я хочу в ближайшее время закончить плагин к Студии и преступить к этому. Так что кто-то хочет примкнуть к этому процессу, то самое время это сделать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Kolesiki, Вы писали:
K>Я как-то не могу себе представить, как можно набирая примерно 3 символа/сек успевать это сериализовать, передать на сервер (пусь локальный, но TCP же!), там процессинг, дорога назад.... не дофига ли?
Вот гифка на 60 кадрах в секунду. В ней я жму Redo (Ctrl+Y) Undo (Ctrl+Z) несколько раз. Ксожалению и 60 fps не хватает, но все же оценить скорость можно:
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Kolesiki, Вы писали:
K>А ещё принципиальный вопрос по Немерле: раз уж там накосячили с архитектурой, может проще было начать её заново, но именно как Немерле-2, а не "всемогутер для всех языков"? Запилить каркас, наделать точек расширения, базовый язык, а дальше всё как в родном Немерле! Мне кажется, это было бы куда проще, чем Нитра. Ну и быстрее в реализации.
Нитра была по большому счету единственная живая альтернатива доработки Немерли. У Нитры есть своя звездочка. Проблема в том, что нитру никто не использует, нет фидбека.
Команда развалилась, но это было и понятно, Брейну этот проект не нужен, разве что микрософт зарежет решарпер(просто убрав интерфейс расширений или определенным образом его ограничив 10мс на вызов).
Есть разработки языком внутри контор, но там я не слышал о платформе нет. Джава и LLVM.
Нитре нужен проект где она сможет получить деньги и людские ресурсы.
Это во много раз важнее чем скорость работы и т д.
Здравствуйте, s22, Вы писали:
s22>Здравствуйте, Kolesiki, Вы писали:
K>>А ещё принципиальный вопрос по Немерле: раз уж там накосячили с архитектурой, может проще было начать её заново, но именно как Немерле-2, а не "всемогутер для всех языков"? Запилить каркас, наделать точек расширения, базовый язык, а дальше всё как в родном Немерле! Мне кажется, это было бы куда проще, чем Нитра. Ну и быстрее в реализации.
s22> Проблема в том, что нитру никто не использует, нет фидбека.
Я на ней пишу достаточно крупный проект. Скоро анонс.
Здравствуйте, ionoy, Вы писали:
s22>> Проблема в том, что нитру никто не использует, нет фидбека.
I>Я на ней пишу достаточно крупный проект. Скоро анонс.
Спасибо. Только плз не такую лажу как нетфреймворк для немерли.
Здравствуйте, s22, Вы писали:
s22>Здравствуйте, ionoy, Вы писали:
s22>>> Проблема в том, что нитру никто не использует, нет фидбека.
I>>Я на ней пишу достаточно крупный проект. Скоро анонс.
s22>Спасибо. Только плз не такую лажу как нетфреймворк для немерли.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, s22, Вы писали:
s22>>Только плз не такую лажу как нетфреймворк для немерли.
VD>Что за чудо такое этот "нетфреймворк для немерли"?
VD>ЗЫ
VD>Узнаю Матумбу.
Фи. Я на сайте немерли более 5 лет. Ник не менял. Под другими не заходил.
"нетфреймворк для немерли" www.nemerleweb.com — прегадкая вещь. Не всмысле в ней что-то плохо, в ней нет ничего хорошего. Не хватило запала, людских ресурсов и идей.
Использование прослоек и перекомпиляция из IL это г. хотя простое и реализуемое.
Идея нитры крута и неплохо реализована, но Влад (как единственный человек которому нитра ДОРОГА за что ему респект) занимался ей, а не продвижением использования.
Даже если вы сделаете с# 7.0 на нитре, если напишите супер пупер язык на нет Немерли 3.0 и т д это не решит вопрос ресурсов.
В качестве здравой идеи.... Сделайте на Нитре Котлин. Это не юмор, это путь к ресурсам.
Здравствуйте, s22, Вы писали:
s22>Фи. Я на сайте немерли более 5 лет. Ник не менял. Под другими не заходил.
Но на Матумбу очень похоже.
s22>"нетфреймворк для немерли" www.nemerleweb.com — прегадкая вещь.
Назвать это "нетфреймворко" — это 5 балов!
s22>Не всмысле в ней что-то плохо, в ней нет ничего хорошего. Не хватило запала, людских ресурсов и идей.
Все там отлично с идеей. Проблема скорее в тех кто эти идеи должен понимать.
s22>Использование прослоек и перекомпиляция из IL это г. хотя простое и реализуемое.
Ты себе что-то там навыдумывал и критикуешь свои выдумки. Нет там никаких перекомпиляций из IL. Там фремворк для создания веб-приложений на сабсете немерла. Аналог АнгулярЖС, только с типизированным языком.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, s22, Вы писали:
s22>>Фи. Я на сайте немерли более 5 лет. Ник не менял. Под другими не заходил. VD>Но на Матумбу очень похоже.
Совсем нет.
s22>>"нетфреймворк для немерли" www.nemerleweb.com — прегадкая вещь. VD>Назвать это "нетфреймворко" — это 5 балов!
нет это не .net, а инет.
s22>>Не всмысле в ней что-то плохо, в ней нет ничего хорошего. Не хватило запала, людских ресурсов и идей. VD>Все там отлично с идеей. Проблема скорее в тех кто эти идеи должен понимать.
ну я его использовал. транспорт переменных есть, но не понятно как с безопасностью, нет встроенной поддержки БД. а предложения использовать любой конектор какой мне нравится.. не комильфо,
s22>>Использование прослоек и перекомпиляция из IL это г. хотя простое и реализуемое. VD>Ты себе что-то там навыдумывал и критикуешь свои выдумки. Нет там никаких перекомпиляций из IL. Там фремворк для создания веб-приложений на сабсете немерла. Аналог АнгулярЖС, только с типизированным языком.
Как там делается трансляция из немерли в джавускрипт? Вроде я ничего не напутал.
Здравствуйте, ionoy, Вы писали:
s22>>>> Проблема в том, что нитру никто не использует, нет фидбека. I>>>Я на ней пишу достаточно крупный проект. Скоро анонс. s22>>Спасибо. Только плз не такую лажу как нетфреймворк для немерли. I>Не, в этот раз я решил уйти от нонконформизма
VD>Ты себе что-то там навыдумывал и критикуешь свои выдумки. Нет там никаких перекомпиляций из IL. Там фремворк для создания веб-приложений на сабсете немерла. Аналог АнгулярЖС, только с типизированным языком.
Кстати как тебе Ангулар 2. Там и типизированный TS
и солнце б утром не вставало, когда бы не было меня