[00:21:56] <ada_ru> (I_vlxy_I) Или может лучше ML какой?
[00:42:29] <ada_ru> (drblez) Вот берусь, бывало за како-нибудь тренировчный проект… На Аде берусь. А потом понимаю, что всяких библиотек чудных, да удобных-то и нет… И приходится делать на том, где эти библиотеки есть…
[00:46:04] <ada_ru> (I_vlxy_I) ну, тут вроде либы и не нужны 🙂
[00:48:05] <ada_ru> (drblez) Или чкажем так6 они есть, но что бы их найти надо убиться…
[00:48:46] <ada_ru> (drblez) А хочется gntalibs install libname и всё…
[00:49:40] <ada_ru> (I_vlxy_I) а вроде же делают какой-то пакетный манагер для ады
[00:49:50] <ada_ru> (I_vlxy_I) для плюсов вот conan сделали. правда я не щупал еще
[00:50:10] <ada_ru> (drblez) ну или в гугле набрать ada i2c library и получить вменяемый результат ))
[00:51:47] <ada_ru> (drblez) ну да ладно… размечтался я что-то )))
[00:52:25] <ada_ru> (I_vlxy_I) на самом деле я приноровился на гитхабе искать. там же можно искать по содержимому исходников и поставить фильтр на язык
[00:52:31] <ada_ru> (I_vlxy_I) я так аццкий snmp и нашел
[00:52:36] <ada_ru> (I_vlxy_I) например
[00:57:34] <ada_ru> (drblez) <прислал фото>
[00:59:22] <ada_ru> (I_vlxy_I) а ты в code ткни
[00:59:31] <ada_ru> (I_vlxy_I) не в репозитории, а в код
[00:59:38] <ada_ru> (I_vlxy_I) кажется там может что-то быть 😉
[01:00:59] <ada_ru> (I_vlxy_I) и будет вам не лысый
[01:06:25] <ada_ru> (Oleg) I2C можно и самому быстро написать
[01:06:40] <ada_ru> (Oleg) И положить в репозиторий :-)
[01:07:43] <ada_ru> (drblez) в code там все про железо )) стм32 и тому подобное )))
[01:08:09] <ada_ru> (drblez) А написать-то можно, но придется много чего писать ))))
[01:08:27] <ada_ru> (Oleg) Ну кто-то ж должен :-)))
[01:10:05] <ada_ru> (I_vlxy_I) ну а нужно то где?
[01:10:17] <ada_ru> (I_vlxy_I) i2c так то - вполне себе железная штука
[01:11:48] <ada_ru> (drblez) Нужно на компе, который оборудован и2ц ))
[01:12:15] <ada_ru> (drblez) Типа распбери и иже с ним
[01:13:06] <ada_ru> (I_vlxy_I)  отвечает (drblez) на <Типа распбери и иже …>
Для линуха юзерспаце либу к драйверу?
[01:13:49] <ada_ru> (I_vlxy_I) А оно там не тупо ли в файлик пишет/читает что в /dev ?
[01:15:25] <ada_ru> (drblez) Пишет... Но там есть тонкости
[01:16:04] <ada_ru> (drblez) Ну и2ц я привел для примера ))) и так со многим
[01:52:33] <ada_ru> (I_vlxy_I) А что еще нужно?
[02:38:59] <ada_ru> (I_vlxy_I) драйвер к монге? 😉
[10:47:22] <ada_ru> (drblez) Ну, прям таки и к монге ))
[10:49:39] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <А можно я С++ поруга…>
Будет вреия, посмотри мой https://github.com/lodyagin/types/blob/master/safe_union.h . Это безопасный union на C++
[10:51:48] <ada_ru> (Sergei) Да, потом поищу пример использования. Но там, на самом деле, просто.
[10:52:42] <ada_ru> (Sergei) Я к тому, что реально, используя c++, организовать типобизопасный union в стиле Ada
[11:03:40] <ada_ru> (Sergei) types::safe_union<std::string, int, bool> settings; // объявление union
[11:26:06] <ada_ru> (Sergei) if (settings.code() == type_of<int>::code())
{
   int i = (int) settings;
   ....
  (int&) setting = 3;
  ....
  settings.static_reconstruct<std::string>("3");
 ...
 settings.reconstruct(union2.code(), 0);
}
[11:49:30] <ada_ru> (Sergei) А по поводу автоматов - это достаточно просто программируется. Задача встречается часто, но я последнее время не использую либу для этого. Пара вспомогательных классов макс. на одну страницу и таблица переходов. На Аде даже проще вроде.
[11:51:53] <ada_ru> (Sergei) Хотя, конечно, если у тебя 2^64 состояний и они "рыхлые" (как в случае лекс. разбора unicode) то там нетривиально. Когда-то тоже искал.
[11:53:15] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Будет вреия, посмотр…>
Ну это же std::variant. Выгребать ифами там тоже можно.
[11:53:40] <ada_ru> (Sergei) Не уверен, что это std::variant. Иначе бы не делал. Позже сравню.
[12:04:32] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Не уверен, что это s…>
std::variant появился в c++17, до того был boost::variant ну и вот во всяких либах самописных. если буста не хочется, но хочется вариант, то есть еще вот такое: https://github.com/martinmoene/variant-lite
[12:05:56] <ada_ru> (I_vlxy_I) Собственно в статье критикуется вариант, точнее std::visit не за то, что в вариант сложно что-то положить, и не за то, что оттуда ифом нельзя заглянуть и вытащить что надо, а за то, что это нельзя просто сделать в паттерн-матчинг стиле с проверкой на этапе компиляции, что ты обработал все возможные варианты того, что в варианте может лежать.
[12:07:14] <ada_ru> (I_vlxy_I) Ада вот, говорят, в case проверит что ты все возможные варианты обработал.
[12:07:34] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <Ада вот, говорят, в …>
Совершенно верно
[12:10:07] <ada_ru> (I_vlxy_I) И ровно также проверит и haskell в паттерн матчинге, и ocaml, когда делаешь матчинг для алгебраического типа данных (который в этих языках искаропки), и rust (где это тоже часть языка, а не либы) и много какие еще языки (в Go, кстати, нету).

А в плюсах это делается только через std::visit, и в статье можно глянуть как 🙂 Череззаборногузадерищенко какой-то.
[12:13:01] <ada_ru> (drblez) В го этого нет, и енумов нет... Отчего так? хз. А из-за этого -- страдания!
[12:30:36] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Собственно в статье …>
Это можно сделать на этапе компиляции с помощью техники, которую я использовал в types:templated_switch. Другое дело, что это не очень наглядно и, с первого взгляда, не понятно. templated_switch способ построить case с неизвестным количеством случаев. Но можно обработать все возможные значения типа.
[12:31:29] <ada_ru> (Sergei) То есть, скажем так, чем универсальнее язык, тем больше возможностей, но они менее выразительны.
[12:34:43] <ada_ru> (Sergei) А в остальном, на C++ можно всё и так же безопасно. Основной вопрос - это ясность текста, интуитивная понятность программы на основе её описание.
[12:37:06] <ada_ru> (I_vlxy_I) ну да, std::visit как раз это и делает. но вот код получается, скажем так, не очевидный.
[12:38:39] <ada_ru> (Sergei) Вот пример из кода моего safe_union.h

       // try to cast to some descendant of T.
       // (T is also a descendant of T here)if (union_::cases::cast1<
               typename traits::select_descendants<T, Ts...>::descendants
           > :: do_switch(the_type, u, result))
       {
           return result;
       }
       else
       {
           throw exception<type_error>(
          ...
     }

Это switch по всем наследникам типа T.

Я программировал последний раз под C++11, возможно в последующих стандартах что-то подобное появилось. Неожиданно быстро всё меняется сейчас в мире C++
[12:43:06] <ada_ru> (Sergei) Когда с++ становится не выразительным, на нём пишут Python, Java, Oracle PL/SQL. Я называю это "интерпретационные расширения C++". Они позволяют поднять выразительность, но по-сути все они написаны на C++. Ведь, в частности, структура типов этих языков определена в коде на C++.
[12:43:42] <ada_ru> (Sergei) Можно делать это и в отдельно взятой программе.
[12:44:12] <ada_ru> (Sergei) Создавая своё "интерпретационное расширение"
[12:45:38] <ada_ru> (Sergei) Забавно, нам в институте говорили: иногда вам будут встречаться задачи, для которых иногда проще написать свой небольшой язык ...
[12:46:07] <ada_ru> (I_vlxy_I) в плюсах много чего можно. можно и типы с явным указанием диапазонов, как в Аде сделать.

но речь шла про то, что вот конкретно std::variant удобен для того, чтобы в него класть, а вытаскивание сделано хреновенько. то есть новичку это будет либо не безопасно, либо очень больно.
[12:49:57] <ada_ru> (I_vlxy_I) и так много где в плюсах, кстати. поэтому я регулярно вижу людей которые по какой-либо причине с годик пописали на каком-нибудь другом языке (scala, rust, kotlin, swift и даже c# и java), и обратно на плюсы уже вообще не хотят.
[13:00:46] <ada_ru> (Sergei) Дочитал статью. Знаю, что C++ многие не любят. Да, сложен для изучения многими. Да, встречал достаточно людей, в том числе, вчерашних студентов, для которых не сложен. Попытка сделать язык для "большинства" всегда будет приводить к тому, что меньшинство будет уходит в C++. Не согласен с оценкой языка, базирующемся на мнении "большинства". Для Ады тоже не сработает.
В C++ решены проблемы, о существовании которых, в других языках, даже не подозревают.
Меня удручает другое - формируемое этим большинством мнение, что на C++ писать "долго, сложно и с ошибками" в результате чего мы, специалисты C++ с трудом можем найти работу, кроме диких проектов (leagacy, high performance etc). Благородное это дело - доносить мысль, что C++ таки язык универсальный.
Тоже с Адой.
[13:14:18] <ada_ru> (Sergei) Вообще, это проблема "обеднения середины". Просто сильные программисты далеко не так востребованы, как просто кодеры и кодо-маньяки. Потому и C++ стало определяться положение "для кодо-маньяков". А зря.
[13:19:09] <ada_ru> (Sergei) Кстати, мне кажется, это основная проблема для Ады
[13:39:41] <ada_ru> (I_vlxy_I) Эмм.. В этом мнении таки есть зерно истины. Как думаешь, написать микросервис, который через http получает реквесты в виде json и возвращает json респонз, сходя при этом в базу (например монгу) на чем проще, быстрее и безбажней написать - на с++ или на Го?
[13:40:25] <ada_ru> (I_vlxy_I) А деплоить бинарь потом какой будет проще?
[13:41:51] <ada_ru> (I_vlxy_I) Если посмотреть даже на конференции и митапы, то плюсисты все больше про бирюльки языка на грани извращений (типа эмулятора arm на этапе компиляции), в других языках обычно обсуждают что-то ближе к решению настоящих задач.
[13:41:52] <ada_ru> (Oleg) Проще go но православно на c++
[13:42:15] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Проще go но правосла…>
Православно потому, что у плюсов два креста? :-)
[13:42:19] <ada_ru> (Oleg) 😊
[13:43:01] <ada_ru> (Oleg) Хомяка придется таки использовать
[13:45:20] <ada_ru> (I_vlxy_I) Плюсы настолько странный язык, что на собеседованиях в проект, писанный на плюсах, кандидата в основном спрашивают на тему знания нюансов языка, а не предметки и технологий.
[13:54:01] <ada_ru> (I_vlxy_I) Ну и у плюсистов часто бывает ложное ощущение, что знание плюсов = знание программирования, или даже = умению программировать и решать задачи бизнеса.
[13:55:12] <ada_ru> (I_vlxy_I) Это как анбоксинг, где коробочке уделяется внимания больше чем продукту.
[13:57:26] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Эмм.. В этом мнении …>
Из того, что я знаю, проще на Prolog. Но, в силу того, что за SWI-Prolog (реально самой сильной реализацией на сегодня) не стоит компания, менеджмент никогда не одобрит. Работа с JSON и http запросами там не сложнее, чем арифметика на калькуляторе.
Знаю, прозвучу не модно, но PHP может тоже рассматриваться.
Между Go и C++ выбираю C++
[14:06:49] <ada_ru> (I_vlxy_I) Еще у плюсов нет стандартной системы сборки. Тем более нет системы сборки подтягивающей зависимости. Использовать в плюсах сторонние либы (то есть их собрать, а потом использовать) настолько больно и сложно, что большую популярность получило такое уродство как header only library.
[14:07:42] <ada_ru> (I_vlxy_I) В этом случае достаточно сделать #include "lib.h". Сам по себе с++ ведь про существование либ ничего не знает.
[14:08:35] <ada_ru> (I_vlxy_I) А вот инклюдить - может.
[14:11:33] <ada_ru> (Sergei) Ну да, совершенно верно. Если мне надо написать что-то прикладное или прототип, я чаще беру пролог, который считаю королём прототипов. Можно написать что-то , едя в поезде, прерваться и продолжить с того же места. Удобно, когда сама программа - это база данных с модификацией.
Но если есть доп. час на построения билда, С++ не проблема. У меня многое в спинном мозге уже сидит, делаю интуитивно и очень быстро.
[14:15:33] <ada_ru> (I_vlxy_I) Дык и я :-) С++ - мой основной ЯП. Но у меня была возможность на него посмотреть со стороны.
[14:16:37] <ada_ru> (I_vlxy_I) Если ты га плюсы не потратил лет пять, то он тебе не покажется удобным. Особенно если ты использовал что-то еще.
[14:17:58] <OCTAGRAM> может, через gprbuild собирать C++?
[14:19:21] <ada_ru> (I_vlxy_I) Через cmake в основном собирают
[14:19:36] <ada_ru> (I_vlxy_I) Но это не решает проблемы
[14:25:33] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Если ты га плюсы не …>
Особенно плохо даётся людям, "испорченным" Java. Они начинают выделывать чисто Java вещи и очень не просто объяснить некоторые вещи.
Тут опять же проблема середины. Близкие к железу люди выбирают C. Более абстрактно мыслящие - скалу какую-нибудь. А C++ удел людей, которые не вписываются ни в ту ни в ту группу . Они  идентифицируют себя с обеими но и там и там вроде как чужаки. И ругаются на C++ и с той и с другой стороны.
Я бы не обращал внимание.
[14:26:23] <ada_ru> (Sergei) Это круто, когда в рамках одного языка можно делать так много.
[14:27:31] <ada_ru> (Sergei) Кстати, почему все забывают о C++ интеграции в GNAT, когда говорят о выборе Ada - C++. Я использовал его, без проблем наследоваться от C++ классов.
[14:28:23] <ada_ru> (I_vlxy_I) даже если класс плюсовый сложный и странный? ну, там не знаю, шаблонный класс с множественным, в том числе виртуальным, наследованием от шаблонных классов?
[14:29:53] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <даже если класс плюс…>
У меня не возникало проблем. Возможно, эту интеграцию можно дорабатывать при необходимости. Но нет концептуальных проблем. GNAT интегрируется с C++ by design.
[14:31:26] <ada_ru> (I_vlxy_I) ну в принципе gcc да, может из хедеров спеки делать для ады. это круто.
[14:32:46] <ada_ru> (Sergei) Главное, у них есть мост между C++ классами и т
[14:33:13] <ada_ru> (I_vlxy_I) в принципе, видимо, с созданием биндингов к сишным либам вообще проблем быть не должно.
[14:33:22] <ada_ru> (Sergei) Возможно, можно добавить generic. В любом случае, эта интеграция - не часть стандарта, можно давать волю фантазии
[14:33:44] <ada_ru> (I_vlxy_I) (я вообще случайно на это наткнулся, когда по работе лепил precompiled headers для рабочего плюсового проекта)
[14:34:16] <ada_ru> (Sergei) Здорово. Я давно использовал.
[14:34:37] <ada_ru> (Sergei) То есть, думаю, не проблема смешать c++ и ada
[14:34:57] <ada_ru> (I_vlxy_I) Полагаю вот @Satyri0n как раз и смешивает в своем проекте.
[14:35:17] <ada_ru> (Sergei) За счёт дополнительного промежуточного уровня.
[14:35:37] <ada_ru> (Sergei) Это хорошо для M to N, но не так эффективно для 1 to 1
[14:36:08] <ada_ru> (Sergei) А, нет, я об OCTAGRAM
[14:36:18] <ada_ru> (Sergei) Про @Satyri0n ничего не знаю
[14:43:07] <ada_ru> (Satyri0n)  отвечает (I_vlxy_I) на <Полагаю вот @Satyri0…>
Нет, в проекте все яп в разных исполнимых файлах/модулях. Взаимодействие осуществляется через сокеты
[14:43:23] <ada_ru> (I_vlxy_I) а, ну тоже норм. одобряю. люблю такое.
[14:46:00] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <А есть предположения…>
Таки не созрели ни у кого предположения о типах приложений?
[14:48:41] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Таки не созрели ни у…>
В тех, где хард хорошо поддерживается компилятором. Например, где можно поставить прагмы на ada tasks и распределить их по разным корам/ процам.
Это теоретически. Практически GNAT это GCC надстройка и не знаю, насколько он позволяет использовать чисто адовский контекст исполнения
[14:49:33] <ada_ru> (Sergei) А там где есть поддержка хитрого харда, я бы смотрел на роботов и умные дома
[14:50:06] <ada_ru> (Sergei) даже есть понятие "единица исполнения". Ведь в Аде оно может на разных боксах одна программа исполняться, по стандарту
[14:50:18] <ada_ru> (Sergei) даже не на процах
[14:51:02] <ada_ru> (Sergei) всякая программа на аде есть распределённая на сеть программа, но, чаще всего, использующая одну ноду только
[14:51:53] <ada_ru> (Sergei) Вот, когда-то давно, помню, помог чем-то ребятам, которые футбольную команду роботов программировали на Аде
[14:53:43] <ada_ru> (drblez) Думаю, что Ада хороша там, где надо получить машинный код, который будет ТОЧНО делать то, что написано в исходниках.
[14:55:17] <ada_ru> (Sergei)  отвечает (drblez) на <Думаю, что Ада хорош…>
Без исследования результата компиляции на ассемблере никогда нельзя сказать, например, как будет, в машинном коде выглядеть рандеву, например
[14:55:45] <ada_ru> (Sergei) C гораздо более предсказуем в этом смысле.
[14:56:05] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <В тех, где хард хоро…>
ну а в плане не железа, а программиста?
[14:56:14] <ada_ru> (I_vlxy_I) да, С++ из конкурентов тут исключаем, если что.
[14:59:34] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <ну а в плане не желе…>
Я хочу побаловаться с доказательством правильности, мне интересна Ада. У Виктора Олеговича был интересный анализатор сложности для Ады, которым он отслеживал некоторые закономерности развития кода учебных проектов. Вообще, статический анализ. Но это очень мало востребовано программистами, если не спущено свыше, обычно, согласен.

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

Спрашиваю себя про другие аспекты - получаю 0 на выходе.
[15:00:38] <ada_ru> (I_vlxy_I) я собственно, хочу провести эксперимент вот с этим https://github.com/ssloy/tinyrenderer/wiki
[15:03:33] <ada_ru> (Максим) Почитал я про ваш std:visit, стал относиться к выражению "Ада язык сложный" еще более скептически 😊
[15:03:43] <ada_ru> (drblez)  отвечает (Sergei) на <Без исследования рез…>
Я имел в виду, что в моем "мире" Ада более строгий язык+компилятор, нежели другие...
[15:04:52] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Почитал я про ваш st…>
Ада - язык скорее большой, чем сложный. По ощущениям.
[15:05:10] <ada_ru> (drblez) Ну, т.е. лично я больше доверяю программе написаной на Аде, чем программе написаной на другом языке.
[15:07:21] <ada_ru> (I_vlxy_I) так измеримый эффект то на персоналке можно получить? 😊 пишем некое приложение на Аде и на языке X, при условии, что программист одинаково знает/не знает оба этих языка. При этом по итогам приложение на Аде либо безбажней, либо написано быстрее (меньше потрачено усилий).
[15:08:27] <ada_ru> (drblez) маньше багов -- да, быстрее -- нет... это если оба языка не знает
[15:08:36] <ada_ru> (Максим) Как неумеющий писать программист может с первой попытки написать безбажную программу быстро. Какая-то нереальная задача
[15:09:03] <ada_ru> (I_vlxy_I) умеющий писать (он же программист), но не на Аде.
[15:09:06] <ada_ru> (Максим) Вон Sergei выше писал, что на С++ надо 5 лет писать пока привыкнешь
[15:09:11] <ada_ru> (drblez) не, не знает -- подразумевается в программировании опыт есть, но конкретный язык надо изучать
[15:09:21] <ada_ru> (Denis) http://ray-tracing.ru/articles229.html
На тему рендеринга и Ады. Там правда ray tracing.
[15:10:01] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Вон Sergei выше писа…>
это я писал 😊
[15:10:03] <ada_ru> (Максим) я на Аде как на Си писал по началу и не понимал, почему всё так не удобно
[15:10:21] <ada_ru> (Максим) ок
[15:10:50] <OCTAGRAM> I_vlxy_I, так, может, gprbuild получше-то CMake справится, если CMake не решает проблемы?
[15:10:58] <ada_ru> (Sergei)  отвечает (drblez) на <Ну, т.е. лично я бол…>
Даже если она скомпилирована GNAT FSF?
[15:11:01] <ada_ru> (I_vlxy_I) ну, то есть я правильно понимаю, что берем программистов в новый проект на Аде, обучаем и тренеруем их 5 лет, и уже потом только можно приступать к проекту? 😊
[15:11:50] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <ну, то есть я правил…>
В наше время много балованных программистов. Они почему-то хотят писать на тех языках, на которых хотят, а не на тех, что надо
[15:12:04] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) I_vlxy_I,…>
любая еще одна система сборки не решит проблему отсутствия стандартной системы сборки и понятия "компоновщик" на уровне языка.
[15:12:06] <ada_ru> (drblez)  отвечает (Sergei) на <Даже если она скомпи…>
Аххаххах))) Я не знаю про этот компилятор ничего ))
[15:12:13] <ada_ru> (Sergei) Взял человека, две недеди и вперёд в бой
[15:12:19] <ada_ru> (Sergei) какие 5 лет
[15:12:29] <ada_ru> (drblez)  отвечает (Sergei) на <Взял человека, две н…>
+1
[15:13:11] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Взял человека, две н…>
ну вот! значит эксперимент будет нормальный и честный!
[15:13:19] <ada_ru> (I_vlxy_I) рассчитан примерно на полтора-два месяца.
[15:13:37] <ada_ru> (I_vlxy_I) (для каждого языка)
[15:14:01] <ada_ru> (drblez) для простоты берем этюд у Уэзерелла )) даем два языка и понеслось...
[15:14:29] <ada_ru> (Максим) Ну напиши затейливый контейнер какой-то
[15:14:40] <ada_ru> (drblez) типа форматтера... там тебе и ввод/вывод и строки
[15:17:04] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Ну напиши затейливый…>
контейнер это ж довольно далеко от того, что люди хотят от программиста 😊

вот штука с минималистичной реализации упрощенного opengl - похоже на что-то полезное, кажется. 😊 отдаленно.

из используемого - математика, беготня по двумерным массивам, работа с (бинарными) файлами. основные конструкции языка.
[15:17:31] <ada_ru> (I_vlxy_I)  отвечает (drblez) на <типа форматтера... т…>
а тут аду какой-нибудь перл не побьет? 😊
[15:18:43] <ada_ru> (drblez) дело не в побитии, а в том, как это написано будет на двух незнакомых языках )) быстро ли, удобно ли, безбажно ли
[15:19:24] <ada_ru> (Sergei) Если хотите честный бой, думаю, проект, не опирающийся на библиотеки - самое оно. Ну там, у кого-то лучше http ввод-вывод, у кого-то хуже. Сама постановка даёт фору некоторым языкам.
И потом, что есть задача - сравнить язык, язык + библиотеки (доступные), + компилятор. Если язык, то внешних либ - минимум наверное.
[15:20:11] <ada_ru> (Sergei) http и json - только если ограничить библиотеки, например - только сокеты, а дальше сам. Но не интересно будет.
[15:20:12] <ada_ru> (Максим) Да не сравните вы языки так. Скорее простоту обучения языку
[15:21:46] <ada_ru> (Sergei) Можно полистать wizard book для источника примеров. Там нет внешних либ вообще никаких. "Структура и интерпретация компьютерных программ" Сассмана и др.
[15:22:04] <ada_ru> (Sergei) Текст в сободном доступе
[15:24:04] <ada_ru> (Sergei) Потому как мы наблюдаем смену концепций обучения программированию. Раньше учили писать самостоятельно, сейчас - использовать сторонние либы и интегрировать уже написанное. Можно хорошо владеть вторым, но не владеть первым, даже на уровне алгоритмов.
[15:24:16] <ada_ru> (Sergei) Ада сильна покажет в первом
[15:24:27] <ada_ru> (Sergei) Перл - во втором
[15:25:08] <ada_ru> (Sergei) http/json - это как раз на исп. готового
[15:25:29] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Да не сравните вы яз…>
тоже хорошая метрика.
[15:26:24] <ada_ru> (I_vlxy_I) иногда очень значимая метрика. при выборе языка. типа "haskell хорош, но мы умрем искать хаскелистов на проект, или обучать хаскелю нанятых плюсистов/питонистов"
[15:27:24] <ada_ru> (I_vlxy_I) слышал и обратное: "делаем проект на erlang'e потому, что он отлично подходит под проект и любой программист с нуля за неделю обучается ему настолько, что начинает писать продакшн код"
[15:28:44] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <иногда очень значима…>
Это мнение ошибочно. Не умрём. Было проверено. Максимум могут потребоваться анальгетики и антиспазматичесие средства первые 2 недели, а дальше - только вдохновение от всего нового.
[15:29:24] <ada_ru> (drblez) А как по мне, так вообще пох на каком языке писать. Если для задачи подходит какой-то язык, то надо на нем и писать... На каком языке есть подходящий инструментарий, тот и надо выбрать для реализации
[15:29:46] <ada_ru> (drblez) Сейчас надо быстро делать... Но не в ущерб качеству ))
[15:30:08] <ada_ru> (Максим) Как по мне, писать надо на АДе, пох какая задача 😄
[15:30:23] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Как по мне, писать н…>
О! Значит выбранная задачка подходит? 😉
[15:30:42] <ada_ru> (drblez) Мне нужен был язык на котором я могу кросплатформенное ПО сделать, и разрабатывать на разных платформах и получать "гарантированно" одинаковый результат -- выбрал голанг. не жалею
[15:30:55] <ada_ru> (drblez) При том, что никогда никто не писал на нем ранее
[15:31:00] <ada_ru> (I_vlxy_I)  отвечает (drblez) на <Мне нужен был язык н…>
++
[15:31:07] <ada_ru> (Sergei)  отвечает (Максим) на <Как по мне, писать н…>
Уважаю это мнение. Оно правильно высказано. Не придерёшься ни к чему.
[15:31:51] <ada_ru> (Sergei) Когда начинают все эти "там хорошо, там плохо". Везде хорошо, где много времени и умный заказчик, везде плохо, когда плохо.
[15:33:42] <ada_ru> (Sergei) Взял человека, дал инструмент, сказал "надо". Поехали. С адой на перевес.
[15:34:44] <ada_ru> (Sergei) Что значит лучше-хуже. Так вопрос даже не стоит обычно.
[15:35:15] <ada_ru> (Sergei) Обычно ставится вопрос "вы мне сделайте небоскрёб по цене хижины. Какой язык предложите".
[15:37:14] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Как по мне, писать н…>
Правда language tools на питоне 😉
[15:41:01] <ada_ru> (I_vlxy_I)  отвечает (drblez) на <При том, что никогда…>
это одно из сильных преимущств Go.
[15:41:38] <ada_ru> (Sergei) Я вот на PL/SQL пишу и ничего, жив пока. Только стал больше пить кофе утром и пива вечером и приобрёл 2 дополнительных хобби.
[15:43:04] <ada_ru> (Sergei) У нас ещё переменные пакетные есть, которыми квери настраиваются. И профайлинг производительности при каждом изменении.
[15:43:36] <ada_ru> (Sergei) А вы какие-то деликатесы сравниваете, и говорите "писать не захотят"
[15:44:35] <ada_ru> (Максим) PL/SQL это почти Ада 😊
[15:44:44] <ada_ru> (I_vlxy_I) и VHDL!
[15:45:31] <ada_ru> (Oleg) Да, я об аде от VHDL узнал 😊
[15:45:35] <ada_ru> (Максим) оракл много ошибок проверяет при компиляции, в отличии от js например
[15:46:32] <ada_ru> (Sergei)  отвечает (Максим) на <PL/SQL это почти Ада…>
Увы. Никакой модульности, всё завязано на глобальные вьюшки, триггеры, таблицы. Постоянный моральный ущерб.
[15:46:41] <ada_ru> (Максим) Я про VHDL узнал из новости про эмулятор VHDL написанный на Аде.
[15:46:57] <ada_ru> (Sergei)  отвечает (Максим) на <Я про VHDL узнал из …>
:)
[15:48:55] <ada_ru> (I_vlxy_I) резюмируя, имеем следующие мнения:
1) сравнения — фигня. ничего не покажет.
2) Ада может быть хороша только на beremetal - только там себя может показать
3) без разницы на каком приложении сравнивать.
[15:50:31] <ada_ru> (Gourytch)  отвечает (I_vlxy_I) на <А есть предположения…>
многозадачность "искаропки". главное не брать X ::= Golang =)
[15:50:53] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <резюмируя, имеем сле…>
Вообще, я считаю, что нельзя подходить к программированию аналитическими методами. Да, люди с аналитическим складом ума любят делать анализы и сравнения. Но программы пишутся другим мозговым участком.
[15:50:54] <ada_ru> (I_vlxy_I)  отвечает (Gourytch) на <многозадачность "иск…>
а в котором языке сейчас этого нету?
[15:51:44] <ada_ru> (Gourytch)  отвечает (I_vlxy_I) на <а в котором языке се…>
в С++ например, решается не через язык, а через библиотеки.
[15:51:50] <ada_ru> (Sergei) Этот участок мозга, вообще, мало контролируется.
[15:52:01] <ada_ru> (I_vlxy_I)  отвечает (Gourytch) на <в С++ например, реша…>
да, но это в С++ сейчас есть. в стандартной библиотеке же всё есть.
[15:52:18] <ada_ru> (Oleg) В C++ используются системные потоки
[15:52:21] <ada_ru> (I_vlxy_I) и вся необходимая поддержка со стороны языка.
[15:52:29] <ada_ru> (Oleg) Это ОС ее реализует
[15:52:33] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <В C++ используются с…>
не обязательно же. на усмотрение реализации.
[15:52:58] <ada_ru> (Oleg) Ну std::thread точно
[15:53:06] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Это ОС ее реализует>
ну, типа Адские таски не будут pthreads в линуксе?
[15:53:14] <ada_ru> (Oleg) Думаю будут
[15:53:20] <ada_ru> (Oleg) А вот в Go - нет
[15:53:37] <ada_ru> (Gourytch) поправьте меня, если я не прав, но ада умеет в многозадачность на однозадачных системах, не?
[15:53:39] <ada_ru> (I_vlxy_I) в Го будут пулы тредов воркеров на которых горутины крутятся.
[15:53:50] <ada_ru> (Oleg) Ну да
[15:54:05] <ada_ru> (I_vlxy_I)  отвечает (Gourytch) на <поправьте меня, если…>
С++ тоже в принципе. в стандарте языка С++ есть многозадачность.
[15:54:34] <ada_ru> (Sergei) 1. Выбрать язык (по совету Максима).
2. Заставить реализовать задачу.
3. Проревьювить, указать ошибки.
4. Попросить сделать то же на "любимом языке".
5. Попросить сравнить.
6. Подраться.
7. Напиться.
8. Выбрать другую задачу, идти в пункт 2.
[15:54:36] <ada_ru> (I_vlxy_I) если ты реализовал, скажем под ДОС стандартный С++, то многопоточка у тебя там есть.
[15:55:30] <ada_ru> (I_vlxy_I) но Аду с С++ я не буду сравнивать 😊
[15:56:22] <ada_ru> (Sergei) Лучше будет всегда на любимом языке, кстати.
[15:57:05] <ada_ru> (I_vlxy_I) вот поэтому любимый язык будет исключен из сравнения 😊 и вообще, не будет знакомых языков на которых что-либо писалось крупнее hello world'a.
[16:00:29] <ada_ru> (Sergei) Боюсь, что выбор "лучший язык" будет обусловлен выбором критериев для сравнения.
[16:01:25] <ada_ru> (Sergei) Подправляя критерии можно получить любой язык, ну кроме, самого отстоя, наверное.
[16:03:02] <ada_ru> (I_vlxy_I) ну, есть же и объективные критерии, типо того, сколько времени было затрачено. и насколько безбажной получился итог.
[16:03:22] <ada_ru> (I_vlxy_I) и там, не знаю, шустро ли работает.
[16:03:45] <ada_ru> (I_vlxy_I) долго ли компиляется 😊
[16:04:19] <ada_ru> (Sergei) Скажи ещё цена компилятора и наличие инструкции на русском языке
[16:04:20] <ada_ru> (I_vlxy_I) можно вообще микрофон повесить и считать метрику WTF per minute.
[16:04:52] <ada_ru> (Максим) Лучше скажите, выдав человеку такую задачу написать что-то на Аде, на каких материалах вы будете его учить Аде?
[16:05:10] <ada_ru> (drblez)  отвечает (Максим) на <Лучше скажите, выдав…>
На русском языке 😉
[16:05:31] <ada_ru> (Sergei) Я когда на маш. коде лабал никогда WTF не говорил, слишком погружён был в расчёты относительного смещения и WTF было и так понятно
[16:06:18] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Лучше скажите, выдав…>
https://www.amazon.com/Programming-Ada-2012-John-Barnes/dp/110742481X
[16:07:41] <ada_ru> (Sergei) А критерии типа "минимальное печатание". Ну там, одно из преимуществ самых больших, по версиям поп статей, Go - отсутствие точки  с запятой в конце строки
[16:08:27] <ada_ru> (Sergei) А формально сравнить = это надо каждому критерию ещё вес присвоить. А как веса распределить
[16:08:32] <ada_ru> (drblez)  отвечает (Sergei) на <А критерии типа "мин…>
Она там есть, кстати )) Просто ее можно опускать, если код соовтетствует неким правилам оформления
[16:08:55] <ada_ru> (I_vlxy_I) у каждого веса свои. поэтому просто результаты можно получить.
[16:09:14] <ada_ru> (Sergei) А в Аде можно включить режим приравнивания стилистических ошибок к программным. Какой вес этому критерию присвоите?
[16:09:34] <ada_ru> (Sergei) Это круто, вообще, сразу на выходе - без стилистических ошибок.
[16:10:00] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Это круто, вообще, с…>
это и в Го так 😊
[16:10:35] <ada_ru> (Sergei) Ну, я к тому, что это будет сравнение вектора с вектором, а не числа с числом. В это упирается вопрос "какой язык лучше".
[16:11:06] <ada_ru> (Sergei) Тут смотря кто какой вес каждому преимуществу или недостатку ставит
[16:11:26] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Тут смотря кто какой…>
именно. но нужно хотя бы эти вектора иметь. сейчас их нет вообще.
[16:11:28] <ada_ru> (drblez)  отвечает (Sergei) на <Тут смотря кто какой…>
Отсутствие комментариев в коде -- расстрел ))
[16:12:51] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <именно. но нужно хот…>
Ну так задачу можно ставить, конечно.  Сравнить только по каждому критерию. Но может быть один минус, который перечеркнёт все плюсы.
[16:13:07] <ada_ru> (Sergei) Типа "отстутсвие версии под макос".
[16:14:27] <ada_ru> (I_vlxy_I) угу. но это уже не является целью эксперимента.
[16:15:04] <ada_ru> (I_vlxy_I) целью является формирование тех самых векторов на базе которых каждый в своем случае сможет принять хоть сколь нибудь обоснованное решение использовать А или Б.
[16:15:39] <ada_ru> (Sergei) Постановка задачи может исключать некоторые свойства. Например - удобство переделывать код. Удобство рефакторинга. Распределённые системы. Реальное время. Надёжность. Изменение стандарта языка через 5 лет.
[16:16:01] <ada_ru> (Sergei) Не одна задача не покроет все измерения.
[16:16:13] <ada_ru> (I_vlxy_I) угу. но лучше иметь что-то чем вообще ничего.
[16:17:37] <ada_ru> (Sergei) Ну, если очень хочется, можно делать. Но Максим уже сказал своё мнение по поводу интерпретации результатов. Интересно будет всё-таки посмотреть, смогут ли пошатнуть объективные данные наши субъективные мнения.
[16:17:49] <ada_ru> (I_vlxy_I) последний раз какие-то адекватные измерения делали в 90х вроде.
[16:18:10] <ada_ru> (I_vlxy_I) я не уверен что у меня получится нечто адекватное, но хотя бы попытаться наверно стоит 😊
[16:19:31] <ada_ru> (Максим) А как заинтересовать испытуемого серьезно подойти к изучению языка?
[16:20:11] <ada_ru> (Максим) Я, например, зная, что это одноразовое мероприятие, сделал бы лишь бы спихнуть и не насиловал бы себе мозг особо
[16:20:38] <OCTAGRAM> >  (Oleg) Ну std::thread точно
Зависит от компилятора. Сейчас просто такого компилятора нет, чтоб в зелёные потоки собрал, но ведь может же быть.
[16:22:59] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Я, например, зная, ч…>
ну вот, значит оба ЯП будут в одинаковых условиях! 😊
[16:25:23] <OCTAGRAM> Сейчас какая-то дебильная ситуация, что на одном языке потоки системные, на другом — зелёные, на одном — разделяемая память и мониторы, на другом — сообщения, в одном — всё нормально, в другом — какая-то дичь

а надо, чтоб одни и те же языки хоть в системные потоки собирались, хоть в зелёные, с такой семантикой, что как будто это процессора с разной архитектурой в одном адресном пространстве работают (не как было в Rust)
[16:25:51] <ada_ru> (I_vlxy_I) например условия уровня "ленивый сотрудник". тоже норм. 😊
[16:26:46] <ada_ru> (I_vlxy_I) корутины еще! без стека!
[16:27:40] <OCTAGRAM> вот код на обычных языках (C и Ada хотя бы) должен иметь возможность трансляции в эти штуки без изменений исходников
[16:27:54] <ada_ru> (I_vlxy_I) в С++? 😊
[16:28:35] <OCTAGRAM> что C++? если кто-то сделает, и его тоже будет можно
[16:28:51] <ada_ru> (Sergei) Чтобы корректо сравнить языки, надо исключить программиста. Случайным образом сцеплять лексемы, отбирать компилируемые программы, запускать, сравнивать результаты.
[16:29:15] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) что C++? …>
корутины без стека же.
[16:29:47] <OCTAGRAM> на нижнем уровне там вместо стека динамическая память, да
[16:29:55] <ada_ru> (Sergei) Победит язык, в котором меньше всего лексем, наверное. Оберон какой-то.
[16:30:11] <OCTAGRAM> BF
[16:30:21] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) на нижнем…>
я не про лямбды, а про пропосал который, вероятно войдет в c++20.
[16:30:55] <OCTAGRAM> а я не про то, что может быть, а про то, что сейчас возможно
[16:31:03] <ada_ru> (Sergei) Случайное сцепление лексем в C++ даст наибольший процент неправильно работающих компилируемых программ.
[16:31:38] <OCTAGRAM> на уровне WebAssembly можно ещё конвертацию подобную делать, и всё, что сейчас можно собрать в WebAssembly, можно озеленить автоматом
[16:32:04] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Случайное сцепление …>
а как же perl?! или какой-нибудь APL? 😉
[16:32:19] <ada_ru> (Sergei) Чтобы приблизиться к идеальному эксперименту, надо взять очень слабых программистов и дать время, едва достаточное, чтобы вообще что-то скомпилировать.
[16:32:27] <OCTAGRAM> чтоб компилятор даже не знал, что потоки будут зелёными
[16:32:40] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <а как же perl?! или …>
Да, не C++
[16:33:22] <ada_ru> (Sergei) Этим способом (метод слабых программистов) можно действительно проверить язык, а не программиста.
[16:33:50] <ada_ru> (Vinpuh) Да  JVM языки с GraalVM победят 😎
[16:33:52] <ada_ru> (Sergei) А ещё лучше взять ещё более слабых, штук 10, и чтобы у одного только успело скомпилироваться.
[16:35:45] <ada_ru> (Sergei) 100% интелли сенс. Ты печатаешь, а язык подсказывает дальше возможные варианты. И какой язык победит.
[16:36:04] <ada_ru> (Sergei) И изучать не надо.
[16:36:14] <ada_ru> (Sergei) должно быть интуитивно
[16:36:36] <ada_ru> (Vinpuh) IDEA здесь зарулит всех в плане подсказок
[16:37:19] <OCTAGRAM> ну можь на LAL ещё накодят похлеще
[16:38:50] <ada_ru> (Sergei) Почему до сих пор не сделали "Hello World" language? Ну, что не пишешь, на выходе он всегда говорит "Hello, World". Очень для новичков подходит.
[16:39:40] <ada_ru> (Sergei) Хотя некоторые языки к нему уже приблизились
[16:43:24] <ada_ru> (Sergei) Вот, многие любят html. Ты пишешь и в 50% случаях получается хоть какая-то веб страница. С Адой тут всё сложнее, её не выбирут веб-программисты.
[16:43:53] <ada_ru> (I_vlxy_I) сейчас бы язык разметки с языком программирования сравнить...
[16:44:28] <ada_ru> (Sergei) Ну, xslt можно взять
[16:44:43] <ada_ru> (Sergei) Всегда что-то получается, можно методом подбора программировать
[16:46:04] <ada_ru> (Sergei) У меня был коллега, который на Perl так программировал. Изменение, запуск, WTF в цикле
[16:46:48] <ada_ru> (I_vlxy_I) поэтому очень важна скорость компиляции! в идеале - убрать компиляцию вообще!
[16:47:52] <ada_ru> (Sergei) Когда я попросил сделать на определённом типе репорте развёрнутую статистику, он аккуратно сделал на основе порядковых номеров репортов на странице.
[16:48:19] <ada_ru> (Sergei) Вот и гадай, какой язык лучше.
[16:54:09] <ada_ru> (Sergei) Да, надо учесть, на C он писал достаточно прилично. Просто к perl относился как к чему-то вроде изоленты.
[16:56:51] <ada_ru> (Максим) о, значит ты имеешь представление, как я плагины к GPS пишу на питоне ;)
[16:57:48] <ada_ru> (I_vlxy_I) Вот поэтому GPS в эксперименте использоваться НЕ БУДЕТ!
[16:58:34] <ada_ru> (Sergei)  отвечает (Максим) на <о, значит ты имеешь …>
Хехе
[16:59:18] <ada_ru> (I_vlxy_I) Я считаю, что должны быть одинаковые условия. Если сравниваем скажем java и ada, то очевидно IDE у них должна быть одинаковая. А поскольку GPS не умеет аду, то можно использовать Idea! Адский плагин для идеи есть.
[16:59:39] <ada_ru> (Sergei) Вот и получится, посади Максима сравнивать Питон с Адой на Idea. Неудачный пример?
[16:59:59] <ada_ru> (Максим) Почему GPS не умеет Аду???
[17:00:41] <ada_ru> (Sergei) Да, интересное мнение, GPS не умеет Аду ... А многие доселе в неведении
[17:01:47] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Почему GPS не умеет …>
Сори, жабу.
[17:01:52] <ada_ru> (I_vlxy_I) Очепятка
[17:05:06] <ada_ru> (I_vlxy_I) Ну, или там если сравнивать typescript vs ada, то надо для обоих языков использовать vscode, чтобы одинаково было!
[17:31:21] <ada_ru> (Vinpuh) Это какой плагин для Ada в IDEA? Какой я знаю он протух, да и то он только подсветку даст. Вы Аду в проигрышное положение поставите.
[17:31:43] <ada_ru> (I_vlxy_I) ну ладно, ладно. тогда возьмем eclipse!
[17:31:54] <ada_ru> (I_vlxy_I) там же даже официальный плагин для Ады есть! вроде бы
[17:31:55] <ada_ru> (I_vlxy_I) или был
[17:32:03] <ada_ru> (Vinpuh) был
[17:32:09] <OCTAGRAM> в GNAT GPL 2014 можно скачать GNATBench
[17:32:13] <ada_ru> (Vinpuh) ключевое слово
[17:32:28] <ada_ru> (drblez) GPS после IDEA немного удручает...
[17:32:55] <OCTAGRAM> а что, там после 2014го года обновления ещё какие-то требуются? нового стандарта официально пока нет
[17:33:24] <ada_ru> (Vinpuh) Главное что дает этот плагин
[17:34:03] <ada_ru> (I_vlxy_I) не, ну блин. если требовать чтобы вообще одинаковые были условия, то это надо на всех ЯП писать в блокноте.
[17:34:09] <ada_ru> (Vinpuh) Eclipse и IDEA глубоко интеегрированные java ide, они очень хорошо заточены под это
[17:34:22] <ada_ru> (Vinpuh)  отвечает (I_vlxy_I) на <не, ну блин. если тр…>
vim
[17:34:38] <ada_ru> (I_vlxy_I) им я буду задавим..
[17:34:50] <ada_ru> (I_vlxy_I) emacs? nano? ed?!
[17:35:06] <ada_ru> (Vinpuh) gedite, geany во самое нейтральное
[17:35:53] <ada_ru> (I_vlxy_I) из гедита же запускать компиляцию неудобно
[17:36:03] <ada_ru> (I_vlxy_I) sublime! vscode!
[17:36:15] <ada_ru> (Vinpuh) geany подсветка тулзы можно подключить,
[17:36:54] <ada_ru> (Vinpuh) sub и vscode нельзя, у vscode отличный плагин для java
[17:37:00] <ada_ru> (I_vlxy_I) а он же довольно умный - он и функции в коде распросзнает. geany
[17:37:05] <ada_ru> (Vinpuh) redhat пилит
[17:38:30] <ada_ru> (Vinpuh) а sub платный :)
[17:38:51] <ada_ru> (I_vlxy_I) бесплатный, но хочет денег регулярно 😊
[17:40:50] <OCTAGRAM> FAR Manager
[17:43:14] <OCTAGRAM> правда, обычно я там по SFTP редактирую, а компиляцию-перезапуск через PuTTY устраиваю, не с командной строки, хотя команды по SSH там отправлять тоже можно
[17:52:29] <ada_ru> (I_vlxy_I) а какие способности у geany к Аде?
[18:05:06] <ada_ru> (Vinpuh) Особо никаких , подсветка, прописать компилер можно
[18:13:39] <ada_ru> (Sergei) Давно пора web сайт для разработки сделать. Редактор, компилятор. Всё без установки. Заходишь, выбираешь язык и пробуешь.
[18:14:08] <ada_ru> (Sergei) Все библиотеки скачаны, всё готово, только пиши
[18:14:32] <ada_ru> (I_vlxy_I) дык есть уже. eclipse
[18:14:52] <ada_ru> (I_vlxy_I) а я для экспериментов с плюсами в последнее время на godbolt подсел
[18:15:36] <ada_ru> (Sergei) Так они все вроде на один какой-то язык заточены
[18:15:46] <ada_ru> (Sergei) А так, чтобы выбор языка и вперёд
[18:16:13] <ada_ru> (I_vlxy_I) eclipse не заточен на один язык же
[18:16:22] <ada_ru> (I_vlxy_I) (вообще на языки не заточен, если что 😊 )
[18:16:33] <ada_ru> (Sergei) а. Ну почему тогда не его использовать
[18:16:34] <ada_ru> (I_vlxy_I) поддержка языков там сейчас делается через language server
[18:16:49] <ada_ru> (I_vlxy_I) а language server для ады пока никто не сделал 😊
[18:16:54] <ada_ru> (I_vlxy_I) аналогично vscode работает.
[18:17:24] <ada_ru> (I_vlxy_I) если сделать langiage server для ады, то автоматом будет отличная поддержка ады в eclipse и vscode и некоторых других редакторах
[18:17:28] <ada_ru> (Sergei) А. Ну как всегда. В Ада сообществе нет людей бесплатно что-то делать. Это хорошо.
[18:17:49] <ada_ru> (Sergei) Мы - зрелое сообщество значит
[18:18:56] <ada_ru> (Sergei) Книги за деньги пишем и на модификацию гната время тоже не тратим попусту. Ну, я первый такой. Ну просто чтобы понимать, чего нету того или этого
[18:19:29] <ada_ru> (Sergei) Осознавать самодостаточность ситуации
[18:19:51] <ada_ru> (Максим) опять он бухтит! всё ему не так! 😄
[18:20:08] <ada_ru> (Sergei) Я на работе ещё, злой и проголодался
[18:20:50] <ada_ru> (Sergei) Всё, поеду домой бухтеть
[18:24:25] <ada_ru> (I_vlxy_I) ой. а вим какие-то даже автокомплиты умеет для ады походу https://github.com/vim/vim/blob/master/runtime/ftplugin/ada.vim
[18:29:26] <ada_ru> (Максим) я вот, кстати, думал об инкрементальном анализе Ада кода, для language server protocol. Допустим мы умеем инкрементальный лексический и синтаксический анализ. Следующий шаг это сделать cross ref. Допустим мы проставим для каждого узла AST ссылку на таблицу имен (env). Вопрос - достаточно ли для точного кроссрефа иметь согласованные таблицы имен и AST или понадобиться еще что-то?
[18:31:14] <ada_ru> (Максим) по другому говоря, можно ли выразить правила разрешения имен Ады как функцию от AST узла и таблицы имен в этом узле