[00:22:45] <ada_ru> (Vinpuh) Цитата: В то время да и сейчас все еще актуально создание программ и разработка сайтов под Unix с использованием Apache + PHP + MYSQL.
[00:23:52] <ada_ru> (I_vlxy_I) угу. реально продолжают полно сайтов на этом клепать
[01:19:41] <ada_ru> (Максим) отвечает (Eugene) на <ну как же нельзя? не…>
Поставь pragma Pure; в пакет и все функции в нем будут без сайд эффектов
[12:03:55] <ada_ru> (I_vlxy_I) Умный дом на Аде: http://www.dmitry-kazakov.de/ada/max_home_automation.htm
[12:04:12] <ada_ru> (I_vlxy_I) (ну и немножко на питоне и плюсах)
[12:09:22] <ada_ru> (t91x0) Имя Дмитрия Казакова я много раз встречал в гуглогруппах по аде, но так и не понял, чем же конкретно он занимается в Германии
[12:09:54] <ada_ru> (I_vlxy_I) кажется чем-то связанным с автомотив
[12:13:01] <ada_ru> (I_vlxy_I) "Software architect at cbb software GmbH"
https://cbb.de/en/home/
[14:54:00] <ada_ru> (Максим) https://ohuen.no/ судя по имени домена, чувак должен разговаривать по русски
[14:56:39] <ada_ru> (I_vlxy_I) https://github.com/timurgen/30-days-ada-learning
[14:56:42] <ada_ru> (I_vlxy_I) 😃
[17:17:30] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <https://habr.com/com…>
ну паскаль и правда нинужен — время этого языка 70-х годов давно прошло, как и время си
[17:17:44] <ada_ru> (I_vlxy_I) время с тобой не согласится
[17:20:14] <ada_ru> (Eugene) отвечает (Максим) на <Поставь pragma Pure;…>
а если эту прагму записать просто внутри процедуры, без пакетов — не работает
[17:20:49] <ada_ru> (Максим) это прагма на уровне пакета (library unit)
[17:21:29] <ada_ru> (Eugene) ну глобальная процедура же вроде приравнивается к пакету?
[17:22:36] <ada_ru> (Максим) так не выйдет, увы
[17:23:15] <ada_ru> (Eugene) ну я запихнул туда, компилер не поругался, а если в другие места пихаю — говорит не туда сую
[17:24:28] <ada_ru> (I_vlxy_I) "You should use this on any package which does not have an internal state. It tells the user of the package that calls to any subprograms cannot have side effects, because there is no internal state they could change. "
[17:24:31] <ada_ru> (I_vlxy_I) хех
[17:24:44] <ada_ru> (I_vlxy_I) то есть и процедуры тоже будут пюре
[17:25:15] <ada_ru> (Eugene) а ввод-вывод не относится к интернал стейту же, значит на это не влияет?
[17:25:37] <ada_ru> (I_vlxy_I) относится. это ваще глобал стейт.
[17:26:32] <ada_ru> (Eugene) ну глобал — это экстернал, а не интернал
[17:27:08] <ada_ru> (I_vlxy_I) ты, по сути свой интернал стейт засовываешь в экстернал явным образом
[17:27:10] <ada_ru> (I_vlxy_I) это нельзя
[17:27:23] <ada_ru> (Eugene) ща проверим
[17:31:12] <ada_ru> (Sergei) отвечает (Eugene) на <ну паскаль и правда …>
Как же время C прошло, если всё до сих пор пишется на C и C++ по-сути, надстройки над ними (в виде, например Питона) не в счёт - все эти надстройки написаны опять таки на C и C++.
[17:32:25] <ada_ru> (Sergei) Время пройдёт, когда их смогут чем-то заменить.
[17:32:49] <ada_ru> (Eugene) with Ada.Text_IO; use Ada.Text_IO;
package body Test is
pragma Pure;
function ftest(i: integer) return integer is
begin
Put_Line ("Hello, world!");
return i+1;
end ftest;
end Test;
4:1 incorrect placement of pragma "Pure"
и чо сие значит?
[17:33:27] <ada_ru> (Eugene) отвечает (Sergei) на <Время пройдёт, когда…>
паскаль давно заменён обероном и модулой-2, да даже адой
си уже тоже заменён растом
[17:33:42] <ada_ru> (I_vlxy_I) ты в боди упихал же. вроде как. кажется эта прагма должна быть в спеке а не в боди
[17:33:44] <ada_ru> (Максим) pragma Pure; должна быть в спеке пакета
[17:34:10] <ada_ru> (I_vlxy_I) а для однопроцедурного пакета ж можно наверно спеку сделать?
[17:34:14] <ada_ru> (I_vlxy_I) скучную такую
[17:34:50] <ada_ru> (Eugene) воу-воу!
1:6 cannot depend on "Text_IO" (wrong categorization)
1:6 pure unit cannot depend on non-pure unit
[17:34:54] <ada_ru> (Sergei) "C заменён растом" -
[17:35:04] <ada_ru> (Sergei) это как "английский заменён эсперанто"
[17:35:35] <ada_ru> (Eugene) отвечает (Sergei) на <это как "английский …>
а ты предлагаешь заменять английский английским?
[17:35:53] <ada_ru> (Sergei) я констатирую факт
[17:36:23] <ada_ru> (I_vlxy_I) отвечает (Sergei) на <это как "английский …>
скорее английский не эсперанто заменен, а каким-нибудь ифкуилем
[17:36:29] <ada_ru> (Eugene) и си, и раст — искуственные языки, эсперанто тоже искуственный, но английский — естественный, так что аналогия слишком кривая
[17:37:25] <ada_ru> (Sergei) аналогия не в этом. А в том, что небольшая группа, говорящих на эсперанто видят мир через призму своего понимания роли эсперанто в мире
[17:37:51] <ada_ru> (Sergei) эта иллюзия, кстати, никогда не была присуща людям, пишущим на Аде
[17:38:22] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <скорее английский не…>
на ифкуиле красивые песни, напоминают какой-нить армянский! норм!
[17:44:02] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <а для однопроцедурно…>
а в чём проблема? нет же ограничений по количеству процедур в пакете
[17:44:43] <ada_ru> (Eugene) отвечает (Sergei) на <аналогия не в этом. …>
это про парадокс блаб-программиста что ли?
[17:52:33] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <это про парадокс бла…>
скорее про то, что тебе кажется большим то, к чему ты ближе.
[18:48:30] <ada_ru> (Eugene) ну это и есть же суть блаб-программиста?
[18:52:30] <ada_ru> (I_vlxy_I) не, не совсем. не путай важность и распространенность со сложностью.
[18:52:41] <ada_ru> (I_vlxy_I) и постижимостью
[18:53:37] <ada_ru> (I_vlxy_I) хм. какой необычный доклад: https://www.youtube.com/watch?v=bSgrKgfFFMQ
следующий бы про Аду с его основным принципом дизайна языка и приложений 😊
[19:44:18] <ada_ru> (coopht) никому 23 and me kit не нужен?
[19:44:34] <ada_ru> (coopht) У меня есть скидос 50% на тот который ancestry + health
[19:51:30] <ada_ru> (Eugene) днк-тест что ли?
[19:51:58] <ada_ru> (Eugene) помогаешь собрать базу данных днк русских, что бы пендосам легче было противорусский вирус сделать?
[19:52:02] <ada_ru> (Eugene) <прислал наклейку> 😢
[19:55:10] <ada_ru> (coopht) Перепись ватанов
[19:56:55] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <помогаешь собрать ба…>
кто сказал, что русских? 😊
[23:07:37] <ada_ru> (t91x0) отвечает (Sergei) на <это как "английский …>
Да не мешало бы.
[23:09:46] <ada_ru> (t91x0) отвечает (Eugene) на <помогаешь собрать ба…>
Поскольку этот тест сдают в основном татаре, армяне, евреи и ещё 100500 многонациональных народов многонационалочки, то противорусского вируса не получится.
[23:21:53] <ada_ru> (I_vlxy_I) а что же, Ада в своем развитии не отклоняется от изначального курса, где основным лозунгом было "всё явно"?
[23:23:12] <ada_ru> (I_vlxy_I) где-нибудь не появилась ли возможность не указывать явным образом тип, чтобы он сам вывелся из типа выражения?
Вроде такого:
foo := bar(); -- объявление переменной
[23:24:45] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <где-нибудь не появил…>
Я не встречал
[23:32:20] <ada_ru> (I_vlxy_I) А! Ну есть же!
X : constant := (if True then 37 else (1 / 0));
[23:32:26] <ada_ru> (I_vlxy_I) тип X не указан
[23:33:00] <ada_ru> (I_vlxy_I) а что же, для констант гарантируется, что правая часть выражения будет на этапе компиляции посчитана?
[23:34:27] <ada_ru> (I_vlxy_I) А хотят сделать, чтобы можно было вот такое:
function If_Then_Else (Flag : Boolean; X, Y : Integer) return Integer is
(if Flag then X else Y) with Static; -- see 6.8
X : constant := If_Then_Else (True, 37, 1 / 0); -- Error.
[23:34:45] <ada_ru> (I_vlxy_I) Без error'a конечно же 🙂
[23:40:06] <ada_ru> (Eugene) а прагма Pure ещё из ады95 что ли?
[23:40:59] <ada_ru> (I_vlxy_I) дык я ж говорю - Ада крута в этом плане была если не всегда, то очень давно уже
[23:41:29] <ada_ru> (I_vlxy_I) это ж военщина! мишнкрытикл. там важно гарантировать, что ничего никуда не подтекает
[23:43:02] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <А хотят сделать, что…>
это с чего вдруг ленивые вычисления туда завезти хотят?
[23:43:15] <ada_ru> (I_vlxy_I) это разве что-то ленивое?
[23:43:29] <ada_ru> (I_vlxy_I) вроде просто обычный вызов функции на этапе компиляции, или около того
[23:43:57] <ada_ru> (Eugene) ну если во время выполнения этого вызова не произойдёт деления на ноль, значит аргументы ленивые
[23:44:27] <ada_ru> (I_vlxy_I) но я не знаю что такое тут constant. возможно это константа времени исполнения таки.
[23:44:47] <ada_ru> (I_vlxy_I) моя совсем Аду не знать 🙁
[23:45:04] <ada_ru> (Eugene) и ты админишь этот канал? сделай сеппуку!!!
[23:45:24] <ada_ru> (I_vlxy_I) дык я чиста админю же 🙂
[23:45:33] <ada_ru> (I_vlxy_I) ума для этого не надо
[23:46:02] <ada_ru> (Eugene) сколько лет ты тут тусуешься? по-моему, не меньше лет пяти... мог бы уже выучить предпоследний стандарт хотя бы
[23:46:56] <ada_ru> (I_vlxy_I) Выучить нельзя. Оно большое. Як С++. Я С++ то не знаю полностью. И никто не знает. И не узнает.
[23:47:08] <ada_ru> (I_vlxy_I) О! Анонимные функции завезут: http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai12s/ai12-0190-1.txt?rev=1.9&raw=N
[23:47:30] <ada_ru> (Eugene) да не такое оно и большое! большое оно было во времена дейскстры по сравнению с паскалем, сейчас оно нормальное )))
[23:49:11] <ada_ru> (FROL256) ИМХО современная Ада меньше и проще современного C++
[23:49:35] <ada_ru> (FROL256) может я конечно и не прав т.к. не так много времени удаётся её уделить, но C++ совсем в говно скатился
[23:49:44] <ada_ru> (I_vlxy_I) отвечает (FROL256) на <ИМХО современная Ада…>
если по толщине стандартов сравнивать - не факт
[23:49:52] <ada_ru> (Eugene) да даже сишарп тоже распухший давно уже, а скоро выйдет с#9 ещё более пухлый
[23:50:04] <ada_ru> (I_vlxy_I) ну и не сказал бы я, что с++ скатился. на нем стало сильно проще код писать и код понимать
[23:51:42] <ada_ru> (Eugene) неужто и правда лямбду завезут? но ведь тогда ада станет ФЯ!!!
[23:51:56] <ada_ru> (Eugene) как может лучший ИЯ превратиться в ФЯ??? фууууу
[23:52:00] <ada_ru> (I_vlxy_I) макросы уже почти полностью не нужны. там где раньше залихватский шаблон наворачивали, сейчас часто уже простой человеческий constexpr
там где раньше были сложные рекурсивные шаблоны - там сейчас простые вариадик-шаблоны.
[23:52:16] <ada_ru> (I_vlxy_I) там где были не очевидные шаблонные трюки, там сейчас какой-нибудь static_assert и всё
[23:52:35] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <неужто и правда лямб…>
думаю там без замыканий как таковых
[23:53:05] <ada_ru> (FROL256) ну может быть может быть ... не стану холиварить
[23:53:16] <ada_ru> (Eugene) замыкания — объекты для бедных, в ООЯ они нинужны
[23:54:00] <ada_ru> (Eugene) пейтон-жонс считает хаскель лучшим императивным языком.
это он просто аду не знает ))))
[23:56:11] <ada_ru> (Eugene) в сишарпе 8 есть нечто, что они назвали паттерн-матчингом... такой себе паттерн-матчинг, но уже прикольно
[23:56:13] <ada_ru> (username_is_not_avalaible) отвечает (Eugene) на <замыкания — объекты …>
Объекты -- замыкания для бедных, в ЯП они не нужны
[23:56:16] <ada_ru> (t91x0) отвечает (Eugene) на <неужто и правда лямб…>
Невозможно их сделать без raii или gc
[23:56:37] <ada_ru> (Eugene) отвечает (t91x0) на <Невозможно их сделат…>
в с++ же сделали
[23:57:07] <ada_ru> (username_is_not_avalaible) отвечает (Eugene) на <пейтон-жонс считает …>
По части контроля над побочными эффектами Haskell на голову выше Ada.
[23:57:12] <ada_ru> (I_vlxy_I) да, связь между лямбдами плюсовыми и raii не ясна
[23:57:17] <ada_ru> (username_is_not_avalaible) отвечает (Eugene) на <в с++ же сделали>
Криво сделали
[23:57:25] <ada_ru> (FROL256) в С++ всё криво
[23:57:27] <ada_ru> (I_vlxy_I) да и в аде raii возможен. так то
[23:57:30] <ada_ru> (FROL256) сорри опять за холивар )
[23:58:42] <ada_ru> (I_vlxy_I) отвечает (FROL256) на <в С++ всё криво>
да не, норм. я согласен. криво. Но юзабельно 🙂
По совокупности показателей часто С++ это единственный выбор. ну, иногда Си еще.
[23:58:46] <ada_ru> (Eugene) да и не нужны всякие GC-raii для простых лямбд, не замыкательных
[23:59:08] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <да не, норм. я согла…>
используй Rust, Люк!
[23:59:37] <ada_ru> (I_vlxy_I) раст не варик ваще
[23:59:50] <ada_ru> (Eugene) ваще норм же ))) в эклипсе особливо )))
[23:59:56] <ada_ru> (I_vlxy_I) хотя я его тоже не знаю. и не пробовал дальше хелломото