[01:37:46] <ada_ru> (Eugene) #oop

ООП провалилось: осваивай функциональные языки прямо сейчас

ООП или объектно-ориентированное программирование – парадигма, которую порой позиционируют как решение всех проблем. Так ли это на самом деле?

https://prglb.ru/5y038
[02:18:31] <ada_ru> (I_vlxy_I) а чем фп от пп отличается вообще?
[02:22:12] <ada_ru> (I_vlxy_I) что-то какая-то замануха красноглазая опять
[02:22:35] <ada_ru> (I_vlxy_I) понятное дело, что у любой парадигмы есть своя область применимости, ну и надо с умом подходить, чо.
[02:22:51] <ada_ru> (I_vlxy_I) пп вот тоже рулит частенько.
[03:03:08] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <пп вот тоже рулит ча…>
ПП - процедурное программирование? Так речь в статье не о нём, а о недостатках ООП...
[03:08:33] <ada_ru> (I_vlxy_I) они бы еще про анимичную модель похоливорили бы 🙂
[03:13:42] <ada_ru> (I_vlxy_I) пролистал статью - КГ/АМ
[03:14:05] <ada_ru> (I_vlxy_I) перечисляются проблемы, не говорится как в альтернативных подходах они решаются (и решаются ли)
[11:20:03] <ada_ru> (Oleg) Я ООП всегда недолюбливал потому что лень было изучать :-))) хорошо что провалилось , можно забить и дальше кодить на C и Go да Спарке :-)))
[11:20:37] <ada_ru> (Oleg) А фп не мое - это для математиков :-)))
[11:40:23] <ada_ru> (Лекс) ООП провалился — детский сад. Никуда оно не провалилось и не провалится. Некоторые люди думают что знают ООП, потому что знают C++, но это не так.

В SmallTalk if обьектный😎
[12:11:43] <ada_ru> (Лекс) Ну и смеху ради — OCaml — обьектно-ориентированное расширение чисто функционального Caml.
[12:20:51] <ada_ru> (Oleg) Тогда ещё и питон провалился, там же тоже все объекты ... Короче статья - хрень
[12:42:03] <ada_ru> (Лекс) Скажите, а здесь кто-нибудь программирует на Ада? 😃
[12:42:46] <ada_ru> (FROL256) ну а то как же
[12:43:13] <ada_ru> (FROL256) много кто программирует
[12:43:59] <ada_ru> (Лекс) а конкретно вы, на каком стандарте в основном пишете?
[12:45:42] <ada_ru> (Лекс)  отвечает (FROL256) на <ну а то как же>
я к вам обращаюсь)
[12:46:01] <ada_ru> (FROL256) я предпочитаю 2012 но всё никак не привыкну использовать контракты
[12:46:33] <ada_ru> (FROL256) так что я не очень далеко ушёл от предыдущего стандарта
[12:46:34] <ada_ru> (Лекс) а что есть контракты? (я застрял в 95-м)
[12:47:17] <ada_ru> (FROL256) ну определить у функции/процедуры ограничения для входных и выходных параметров ... ещё по идее инварианты должны быть
[12:48:12] <ada_ru> (Лекс) а инвариантные переменные это что?
[12:49:01] <ada_ru> (FROL256) Я же говорю что к этому не причен ) потому не спец. По идее это некоторое условие на тип переменной или на саму переменную
[12:49:20] <ada_ru> (FROL256) что процедура гарантирует что это улсовие не нарушитсяч в течении её выполнения
[12:54:20] <ada_ru> (Лекс) а где используете Аду, в личном или по работе?
[12:54:31] <ada_ru> (FROL256) Я только в личном
[12:54:32] <ada_ru> (FROL256) ща
[12:55:02] <ada_ru> (FROL256) Вот пожалуйсьа
[12:55:03] <ada_ru> (FROL256) https://github.com/FROL256/ada-ray-tracer
[12:55:25] <ada_ru> (FROL256) есть ещё желание использовать Аду в образовании т.к. я имею небольшое отношение к этой области )
[12:55:48] <ada_ru> (Лекс) похвальное желание
[12:56:34] <ada_ru> (FROL256) спс ) Мы планируем сделать курс по программированию ориентированный на нажёжность
[12:56:42] <ada_ru> (FROL256) не safety-critical
[12:56:47] <ada_ru> (FROL256) а просто надёжность
[12:57:25] <ada_ru> (FROL256) к сожалению я сам не слишкоом много имею в этом опыта и был бы признателен за любые ссылки которые смогут в этом помочь )
[12:59:26] <ada_ru> (Лекс) моя основная сфера веб-разработка🙈🙊
[12:59:52] <ada_ru> (Лекс)  отвечает (FROL256) на <спс ) Мы планируем с…>
а вы планируете онлайн или офлайн или ито и другое?
[13:00:42] <ada_ru> (FROL256) пока оффлайн. У меня коллега в РГУ нефти и газа получил ... скажем так в довесок курс по технологии программирования или как-то так
[13:00:48] <ada_ru> (FROL256) я его уговорил сделать курс на Аде
[13:01:47] <ada_ru> (Лекс) обычно это делают на пихоне и иже с ним 😃
[13:01:50] <ada_ru> (FROL256) но вот теперь надо придумать так чтобы курс был интересный, ненапряжный и при этом полезный (то есть что-то адекватное рассказал а не вот просто строгая типизация и.т.д. как это очень часто делают)
[13:04:34] <ada_ru> (Лекс) Чтобы курс был интересным, лучший вариант это сделать поэтапное решение какой-то задачи близкой к реальной практике или разобрать чьё-то решение поэтапно, разбирая причины и методы решения.
[13:04:48] <ada_ru> (FROL256) вот это да, соглачен ан 100%
[13:04:50] <ada_ru> (I_vlxy_I)  отвечает (FROL256) на <но вот теперь надо п…>
С примерами, картинками и большими буквами? :-)
[13:04:57] <ada_ru> (FROL256) да, вроде того )
[13:05:30] <ada_ru> (FROL256) это как раз мне не трудно, я по работе графику программирую.
[13:05:43] <ada_ru> (FROL256) но надо вот придумать чтобы цель была
[13:05:50] <ada_ru> (FROL256) и показать премущества Ады
[13:11:14] <ada_ru> (I_vlxy_I) Симулятор физический замутить?
[13:11:20] <ada_ru> (I_vlxy_I) Или игруху :-)
[13:12:17] <ada_ru> (Лекс) лучше уже визуализатор для масспектрометра 😅
[13:12:54] <ada_ru> (FROL256) скорее симулятор да
[13:13:00] <ada_ru> (FROL256) это хорошая идея
[13:13:09] <ada_ru> (FROL256) чтобы сразу ловит всякие ошибки численные
[13:14:07] <ada_ru> (FROL256) это то что мне очень понравилоаь в Аде когда я применял её для своего личного проекта .... я тогда по совету Алексея ещё попробовал санитайзеры на работе
[13:14:19] <ada_ru> (FROL256) и да, санитайзеры в gcc и сlang это тоже круто
[13:14:26] <ada_ru> (FROL256) но не настоллько круто как а Аде
[13:14:35] <ada_ru> (FROL256) меньше проблем находится
[13:15:21] <ada_ru> (FROL256) м.б. я их конечно не умею готовить )
[13:15:41] <ada_ru> (FROL256) но пока по ощущениям ран-тайм проверки в аде горазло круче чем санитайзеры в цпп
[13:22:04] <ada_ru> (I_vlxy_I)  отвечает (FROL256) на <но пока по ощущениям…>
Их и для Ады иногда полезно применить
[13:22:42] <ada_ru> (I_vlxy_I) Максим применял вроде
[13:25:45] <ada_ru> (FROL256) ээ в смысле? Я собираю билд с конфигурацией check и они включаются, да
[13:25:56] <ada_ru> (FROL256) как-то ещё можно? дополнительные проверки?
[13:30:30] <ada_ru> (I_vlxy_I)  отвечает (FROL256) на <как-то ещё можно? до…>
gnat это же gcc
[13:30:46] <ada_ru> (I_vlxy_I) Там и санитайзеры можно
[13:33:11] <ada_ru> (FROL256) хм. во как, ладно буду знать, спс )
[17:51:34] <ada_ru> (a) https://m.habr.com/ru/post/461621/
[18:08:24] <ada_ru> (t91x0)  отвечает (Лекс) на <моя основная сфера в…>
Давно уже напрашивается веб-форум на Аде. С минимально достаточной функциональностью, но зато без дырок. Чтобы в tor его можно было выставлять и пусть-ка попробуют вломиться
[18:09:27] <ada_ru> (I_vlxy_I) https://www.ada-ru.org/forum/1_1.html ?
[18:10:02] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <https://www.ada-ru.o…>
Нет, не это. Движок форума.
[18:10:15] <ada_ru> (I_vlxy_I) двигло у него небось тоже есть 🙂
[18:10:54] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <двигло у него небось…>
На пхп
[18:11:05] <ada_ru> (I_vlxy_I) а ю шура?
[18:11:58] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <а ю шура?>
Подозреваю, но не уверен
[18:12:00] <ada_ru> (I_vlxy_I) глянь хедер
[18:12:02] <ada_ru> (I_vlxy_I) Server: AWS (Ada Web Server) v2018
[18:12:08] <ada_ru> (I_vlxy_I) в респонзе
[18:13:04] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <Server: AWS (Ada Web…>
Я с телефона.

Это не значит, что сами страницы формируются кодом на аде. Apache вот на си написан
[18:13:07] <ada_ru> (I_vlxy_I) это конечно не означает, что новый двиглофорум на Аде писать не надо, я просто указываю, что подобные активности уже были и что результат применяется на практике и его можно щупать руками
[18:13:18] <ada_ru> (t91x0) Посмотрю
[18:13:47] <ada_ru> (I_vlxy_I)  отвечает (t91x0) на <Я с телефона.

Это н…>
AWS он всё же embedded в первую очередь. то есть это сервер который встраивается в твое приложение. пыху оно дергать не умеет.
[18:13:56] <ada_ru> (I_vlxy_I) вообще, половина матрешки же про это вот всё
[18:14:28] <ada_ru> (I_vlxy_I) там и клиентский код можно попробовать на Аде писать 🙂
[18:14:35] <ada_ru> (I_vlxy_I) то есть который в браузере исполняется
[18:26:45] <ada_ru> (Vinpuh) https://www.linux.org.ru/news/development/15135756
[18:28:16] <ada_ru> (Vinpuh)  отвечает (I_vlxy_I) на <AWS он всё же embedd…>
Вообще, Ada планирует в webassembly, или как обычно у нас свой путь?
[18:30:31] <ada_ru> (I_vlxy_I)  отвечает (Vinpuh) на <Вообще, Ada планируе…>
а какой профит для целевой аудитории с этого? ну и, соответственно, для Адакоры?

думаю это вне мейнстрима адского.

GNAT это фронт к gcc. поддержка wasm — это дело бекенда. Появится для gcc такой бэк - может и ада будет компилироваться (но стандартна либа и рантайм потребуют допила).
[18:31:02] <ada_ru> (I_vlxy_I) Вроде там есть теледвижения на тему варианта фронта для llvm - в llvm инфраструктуре wasm бэк уже есть вроде как.
[18:31:15] <ada_ru> (I_vlxy_I) Поэтому думаю это всё будет можно, но это не будет мейнстримом.
[18:31:31] <ada_ru> (I_vlxy_I) вся надежда, как обычно, на сообщество - нас с вами 😊
[18:54:45] <ada_ru> (Vinpuh)  отвечает (I_vlxy_I) на <вся надежда, как обы…>
Если на меня надежда, то действительно все не очень хорошо будет с развитием этого направления 😂
[18:54:55] <ada_ru> (Oleg) :-)
[19:03:21] <ada_ru> (Максим)  отвечает (t91x0) на <На пхп>
Нет, там всё на Аде. Это я писал. Поэтому и такое специфическое оформление. Там особенность в том, что в основе лежит почтовая рассылка по Аде, которой уже >10 лет. Все эти письма распарсиваются в Postgrsql БД, а по ней уже генерится статические страницы форума. Это всё на Матрёшке. Небольшой JS скрипт для логина и отправки сообщений генерится по Адским исходникам нашим транслятором a2js
[19:08:35] <ada_ru> (Максим)  отвечает (Лекс) на <Скажите, а здесь кто…>
Я пишу в основном на Аде. Не так давно сделал для знакомых веб морду для ведения реестра договоров на Аде с применением технологии трансляции Ады в JS. Поверх биндинга JS API бравзера. Ну так, первый опыт в этой теме, веб разработка для меня это жесть.
[19:12:48] <ada_ru> (Максим) not overriding function Get_Element_By_Id
   (Self       : not null access constant Non_Element_Parent_Node;
    Element_Id : WebAPI.DOM_String)
      return WebAPI.DOM.Elements.Element_Access is abstract
        with Import     => True,
             Convention => JavaScript_Method,
             Link_Name  => "getElementById";
  --  Returns the first element within node's descendants whose ID is
  --  elementId.
[19:13:31] <ada_ru> (Лекс) А в чём смысл компилировать аду в г... js? 😂
[19:15:57] <ada_ru> (Максим)  отвечает (FROL256) на <спс ) Мы планируем с…>
Это было бы круто. Если у вас будут какие-то наработки, которые можно будет на www.ada-ru.org выложить с удовольствием выложу. Из ссылок могу предложить свой перевод брошурки "Безапасное и надежное программирование", она как раз на эту тему
[19:17:12] <ada_ru> (t91x0)  отвечает (Лекс) на <А в чём смысл компил…>
Чтобы не писать на JS, и чтобы вся разработка шла на одном языке.
[19:19:02] <ada_ru> (Максим) Да, я так привык, что компилятор подскажет и поможет, что не представляю как люди пишут прямов JS :)
[19:19:31] <ada_ru> (Лекс)  отвечает (Максим) на <Нет, там всё на Аде.…>
А ваш транслятор a2js можно где-то скачать?
[19:20:16] <ada_ru> (Максим) Сейчас он часть матрешки. Он не реализует всю Аду, а только то, что нам было нужно на текущий момент
[19:20:37] <ada_ru> (Лекс) А что есть матрешка?
[19:21:04] <ada_ru> (Максим) Это вадим затеял, когда стал ваять свои строительные калькулаторы 😊 http://hds.ada-ru.org/
[19:21:35] <ada_ru> (I_vlxy_I)  отвечает (Лекс) на <А в чём смысл компил…>
А в чем смысл компилировать Аду в асм/машкоды? 🙂
[19:21:44] <ada_ru> (Максим) Матрешка это набор библиотек "для информационных систем"
[19:22:27] <ada_ru> (Лекс)  отвечает (I_vlxy_I) на <А в чем смысл компил…>
Не сравнивайте бинарный код с непонятно чем, хранящимся в исходниках и рабоющим не ясно как😂
[19:22:47] <ada_ru> (Максим) Матрёшка начиналась как попытка предоставить красивую/правильную реализацию строк в Аде с поддержкой Unicode
[19:23:42] <ada_ru> (I_vlxy_I)  отвечает (Лекс) на <Не сравнивайте бинар…>
дык бинарный код тоже не выполняется процессором напрямую - он интерпретируется микрокодом 🙂

плюс фаза трансляции из x86_64 CISC кода в RISC код для современных интеловских процессоров (выполняется на самом процессоре)
[19:23:50] <ada_ru> (Максим) Потом туда добавился разбор и генерция XML, интерфейс к БД, регулярные выражения, "календарь", веб сервлеты
[19:24:08] <ada_ru> (I_vlxy_I) так что то что там накодогенерил gcc это не то, что будет реально железкой исполняться. и точно не в той последовательности
[19:25:01] <ada_ru> (Лекс) 🙈
[19:25:20] <ada_ru> (Максим)  отвечает (Лекс) на <Скажите, а здесь кто…>
Адисты отсюда ушли почти все, тут много спама и много негатива про Аду
[19:25:38] <ada_ru> (Oleg) Не, мы любим аду :-)
[19:25:57] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Не, мы любим аду :-)>
запятая точно в нужном месте? 😉
[19:25:59] <ada_ru> (Oleg) Просто так получается что все время пишем на говне каком то
[19:26:15] <ada_ru> (Oleg) А до Ады руки не доходят
[19:26:40] <ada_ru> (Oleg) А JS это вообще для меня наркоманский язык
[19:27:01] <ada_ru> (Лекс)  отвечает (Максим) на <Адисты отсюда ушли п…>
я заметил...
[19:27:54] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <А JS это вообще для …>
и очень бурно эволюционирующий. 🙁 кресты тоже эволюционировать принялись как-то слишком уж бурно. на уровне - КАТИМ В ПРОД НОВУЮ ФИЧУ ЯЗЫКА, ПОТОМ РАЗБЕРЕМСЯ!
[19:28:00] <ada_ru> (I_vlxy_I) то есть уже местами и вот так
[19:28:38] <ada_ru> (Лекс)  отвечает (Максим) на <Нет, там всё на Аде.…>
Кстати вам бы мобильную версию сайта поправить, фронтенд. Менюшка просто не юзабельна
[19:29:22] <ada_ru> (Oleg) Да надо всё-таки разделить - фронт энд и бэк энд
[19:30:20] <ada_ru> (Максим)  отвечает (Лекс) на <Кстати вам бы мобиль…>
в смысле совсем меню переделать или там глючит просто?
[19:31:24] <ada_ru> (Лекс) Совсем переделать, это вообще не удобно.
[19:31:26] <ada_ru> (Максим) Лекс Про контракты в Аде можно почитать http://www.ada-ru.org/ada2012-intro или вот я начал переводить http://www.ada-ru.org/rat2012/TOC
[19:34:32] <ada_ru> (Лекс) Лучше сделать как принято — меню подьезжающее сбоку. А ещё, не знаю почему но линки бывает не кликаются с первого раза, и между ними расстояние слишком маленькое.
А так меню конечно эстетичное
[19:34:44] <ada_ru> (Лекс) картинка https://www.ada-ru.org/files/bot/2019-07-28-x7.jpg
[19:34:47] <ada_ru> (Лекс) картинка https://www.ada-ru.org/files/bot/2019-07-28-x8.jpg
[19:35:17] <ada_ru> (Лекс) И иконка менюшки маловата, я сразу и не заметил её
[19:35:34] <ada_ru> (Лекс)  отвечает (Максим) на <Лекс Про контракты в…>
Спасибо
[23:52:02] <ada_ru> (Eugene) ада — язык термоядерного ада, какой тут может быть позитив )))