[08:10:22] <ada_ru> (geniepro) отвечает (Максим) на <Я пробовал переводит…>
а если туда загрузить не только перевод ады 83, но и 95, 2005? или для них нет качественного перевода?
[08:43:18] <ada_ru> (Максим) Есть перевод только ада 83
[11:15:37] <ada_ru> (nitrocerber) Я вот чесгря не очень понимаю ценность переводов такой литературы. Один фиг все термины - английские, кон английский, 99.9% проектов - английские.
[11:16:24] <ada_ru> (nitrocerber) Привлечение в тему людей, не владеющих инглишем? Так это скорее вред ,чем польза...
[11:20:50] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <Привлечение в тему л…>
Ну, вполне вероятно, что сначала возникнет интерес к языку на основе перевода, а потом человек подтянет инглишь и будет уже читать оригиналы и тд.
[11:21:29] <ada_ru> (nitrocerber) Ну если человек в целом интересуется айти, он уже должен язык тянуть. перверее алгоритмических)
[11:21:33] <ada_ru> (nitrocerber) ну или 1с ван лав
[11:22:26] <ada_ru> (nitrocerber) ну это имхо, копья ломать на этом смысла нет
[11:23:50] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <Ну если человек в це…>
У меня сын сейчас активно на скратче игрушки делает, кумир осваивает, при этом английский в самом зачаточном состоянии (второй класс школы).
Вполне вероятно, что языки программирования он будет осваивать быстрее английского
[11:25:47] <ada_ru> (nitrocerber) Ну на школьный английский уповать это конеш вообще такое. Хотя может и правда, когда понадобится контент, недоступный на родном, то автоматом наростёт и ингл
[11:26:39] <ada_ru> (I_vlxy_I) У меня был сначала c++, а уже потом все остальные языки, в том числе и английский
[11:27:05] <ada_ru> (nitrocerber) И погляди, во что ты превратился! В плюсовика
[11:27:17] <ada_ru> (nitrocerber) а начал бы с английского - мог бы адистом стать..))
[11:27:19] <ada_ru> (I_vlxy_I) Собственно даже у интернов-джунов бывают проблемы с англодокументацией и лекциями
[11:27:56] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <а начал бы с английс…>
садистом - адист пишущий либы для сишников
[11:28:11] <ada_ru> (nitrocerber) <прислал наклейку> 😂
[11:28:24] <ada_ru> (nitrocerber) жирно))
[11:28:40] <ada_ru> (I_vlxy_I) Нажористо!
[11:28:59] <ada_ru> (I_vlxy_I) В общем, какое-то количество переводов нужно.
[11:30:37] <ada_ru> (I_vlxy_I) Кстати, довольно значимый процент читают ТОЛЬКО на русском. В том числе и матёрые спецы :-(
[11:31:21] <ada_ru> (nitrocerber) И это очень печально
[11:31:29] <ada_ru> (I_vlxy_I) Да
[11:33:22] <ada_ru> (I_vlxy_I) Хех.. Надо прокачивать скилл, чтобы доклад не только на русском можно было читать народу, но и на английском и не только в России..
[11:36:41] <ada_ru> (nitrocerber) Ну это крутой скилл
[11:37:13] <ada_ru> (nitrocerber) Защита результатов стажировки в париже мне стоила большого количества нейронов в своё время)
[11:40:03] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Защита результатов с…>
Ну, хоть по английски спрашивали?
[11:40:26] <ada_ru> (nitrocerber) Французского моего до сих пор на такое не хватит) Понять вопрос - да, ответить нет))
[11:40:45] <ada_ru> (nitrocerber) Та чего там, вранцузы между собой обсуждая технические вопросы периодически переходят на ингл
[11:41:10] <ada_ru> (nitrocerber) потому что все термины англоязычные, и туда-сюда переключаться сложно)
[11:42:49] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Та чего там, француз…>
Ооо! И это даже с учетом того, что французы английский не любят.
[11:43:10] <ada_ru> (nitrocerber) Этот стереотип разве что для бумеров ещё актуален
[11:43:43] <ada_ru> (I_vlxy_I) Уже любят?
[11:43:45] <ada_ru> (nitrocerber) молодёжь уже давно врюхала, что гордость кушать неудобно и с клиентами/контрагентами надо говорить на том языке, на котором тебе заплатят потом)
[11:44:16] <ada_ru> (nitrocerber) Уж чо они там любят я хз. Но говорят очень даже
[11:45:14] <ada_ru> (I_vlxy_I) :-)
[11:47:46] <ada_ru> (I_vlxy_I) В общем, надо качать скилл хотя бы профессионального общения на инглиш лангуяге
[11:58:32] <ada_ru> (I_vlxy_I) Инглиш лангуяга убер аллес!
[12:03:27] <ada_ru> (nitrocerber) ну мне без этого скила никак.. тут метод швыряния щенка в бассейн работает 100%
[12:11:48] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <И это очень печально>
Есть олдскульные книги ещё советских времён перевода, тот же самый Грис или автоматическое доказательство теорем, так там перевод лучше оригинала, ибо переводили или редактировали советские математики мирового масштаба.
[12:13:23] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Инглиш лангуяга убер…>
Воистину убер аллес :)
[12:14:17] <ada_ru> (nitrocerber) Ну это да, я про аду вообще из русскоязычной книжки Кауфмана узнал
[12:16:47] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <Ну это да, я про аду…>
Ну вот. Так что хорошие переводы тоже нужны
[12:20:48] <ada_ru> (nitrocerber) ну это был оригинал так то) ну да ладно
[13:21:10] <ada_ru> (Vinpuh) Ходят слухи с++20 утвердили.😎
[13:21:59] <landgraf> ура
[13:23:28] <ada_ru> (I_vlxy_I) https://habr.com/en/company/yandex/blog/488588/
[13:23:31] <ada_ru> (I_vlxy_I) Да!
[13:24:33] <ada_ru> (I_vlxy_I) «Coroutines, Modules, Ranges, std::format, constexpr new и constexpr алгоритмы+vector+string, datetime, jthread, span, bit_cast и многие другие мелкие и большие нововведения.»
[14:03:40] <ada_ru> (I_vlxy_I) Теперь в С++ есть копрограммы!
[14:04:19] <ada_ru> (nitrocerber) это как-то связано с копрофилией?
[14:04:46] <ada_ru> (nitrocerber) а, я не там разделитель поставил, сорян
[14:05:50] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <это как-то связано с…>
Зачотно :)))
[14:06:13] <ada_ru> (vasil_sd) В общем плюсы стали ещё больше и ещё ужасней :)
[14:08:37] <ada_ru> (vasil_sd) Скоро, чтобы хоть какую-то обозримую часть стандарта плюсов знать, придется изучать его до пенсии :)
Да и то, большую часть ньюансов и косяков языка, либ и компиляторов так и не освоишь....
[14:08:50] <ada_ru> (geniepro) отвечает (I_vlxy_I) на <Теперь в С++ есть ко…>
https://yandex.ru/health/turbo/articles?id=4570
[14:09:50] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Скоро, чтобы хоть ка…>
Это уже так, с учетом скорости развития
[14:09:55] <ada_ru> (I_vlxy_I) отвечает (geniepro) на <https://yandex.ru/he…>
Да
[14:31:28] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Это уже так, с учето…>
Ага, классный язык для промышленности :) как вавилонский :)
[14:54:39] <ada_ru> (nitrocerber) Ада в этом смысле не шибко лучше, тащят всякую дичь с каждой ревизией
[14:54:47] <ada_ru> (nitrocerber) но они хотя бы реже случаются
[16:09:28] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <Ада в этом смысле не…>
Да ладно, что-то я сильно много дичи не наблюдал. Разве что только попытки параллельность в язык протащить в последних предложениях в стандарт.
[16:25:28] <ada_ru> (I_vlxy_I) Хотеть в Аде копрограммы!
[17:20:12] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Да ладно, что-то я с…>
Кстати, blas и lapack в 23!плюсы добавят :-)
[17:23:15] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Кстати, blas и lapac…>
А как же catboost и tensorflow? Почему всякое старье из линейной алгебры добавляют, а новое и молодежное ML - нет? Это несправедливо :))
[17:25:32] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <А как же catboost и …>
Когда им исполнится столько же сколько blas, тогда поговорим :-)
[17:36:40] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Когда им исполнится …>
Ещё можно веб-технологии тоже сразу в плюсы. А что? Модно и молодежно и веб довольно старый уже. Даёшь стандартную либу плюсовую для rest-api :)
[17:37:19] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ещё можно веб-технол…>
Там вроде есть пропосол про добавление в стандартную либу webview :-)
[17:48:23] <ada_ru> (geniepro) отвечает (vasil_sd) на <Да ладно, что-то я с…>
параллельность в языке была ещё в первом стандарте же
[17:51:22] <ada_ru> (I_vlxy_I) отвечает (geniepro) на <параллельность в язы…>
Многопоточность, мультитаскинг, но не параллельные циклы
[17:53:16] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Там вроде есть пропо…>
Ужас...
Нужно вообще все прикладные вещи затащить в стандарт, чо стесняться-то :)
[17:56:00] <ada_ru> (nitrocerber) Похапээээ
[17:56:26] <ada_ru> (vasil_sd) отвечает (geniepro) на <параллельность в язы…>
Циклы хотят параллельными сделать, мапредюс в язык затащить и тд. Это лично мне уже не нравится, ибо на мой взгляд это не языковые вещи. Это должно быть в либах, а для удобства использования нужно продумать механизм определяемых пользователем dsl
[17:57:13] <ada_ru> (geniepro) отвечает (vasil_sd) на <Циклы хотят параллел…>
ну так-то и всякие рандеву тоже можно было бы на уровне библиотеки сделать...
[18:00:51] <ada_ru> (vasil_sd) отвечает (geniepro) на <ну так-то и всякие р…>
Да. Как по мне, так правильно делать механизм dsl'ей, чтобы можно было делать либы и красивый синтаксис их использования
[18:01:52] <ada_ru> (vasil_sd) Тогда ядро языка и компилятор будут компактнее и их нужно будет реже обновлять, а динамика развития стандартных либ будет выше
[18:02:05] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Циклы хотят параллел…>
Ну, openmp же юзается один фиг
[18:02:56] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну, openmp же юзаетс…>
Насчёт этого ничего не видел. Там по-моему механизм реализации не прописан был
[18:02:59] <ada_ru> (I_vlxy_I) Другое дело, в комитете Ады считают, что concurrency в Аде и так уже есть и ничего в эту сторону делать не надо. А надо вот срочно parallelism ваять
[18:04:31] <ada_ru> (I_vlxy_I) И отсюда печаль - Ада хуже других языков приспособлена для создания высоконагруженных систем массового обслуживания. А вот для embedded - годится.
[18:05:14] <ada_ru> (I_vlxy_I) Ибо заказчикам от Ады ничего кроме embedded не нужно, соответственно для языка всего остального и не существует.
[18:05:26] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <И отсюда печаль - Ад…>
Да, есть такое. Но эта область и не в приоритете у Ады всегда была
[18:06:05] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ибо заказчикам от Ад…>
Ну, судя по последним предложениям, ситуация всё-таки меняется
[18:07:21] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну, судя по последни…>
М? Например?
[18:08:22] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Да, есть такое. Но э…>
Долгое время Ада была хороша для этого относительно остальных.
[18:12:34] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <М? Например?>
Ну например аспекты nonblocking и ещё много по мелочи, говорит о том, что в асинхронку всё-таки смотрят
[18:12:46] <ada_ru> (I_vlxy_I) Местами только erlang был круче в некоторых аспектах. Может lisp ещё
[18:14:04] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Местами только erlan…>
Ну эрланг он изначально был для этих областей
[18:14:13] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну эрланг он изначал…>
Угу
[18:14:30] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Местами только erlan…>
А лисп тут каким боком?
[18:14:54] <ada_ru> (I_vlxy_I) Просто лет 10 как ерланг подходы для систем массового обслуживания начали внедрять во все другие ЯП. А Ада тут немного проспала
[18:15:41] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <А лисп тут каким бок…>
Тем, что он всеобъемлющ и гибок - не удивлюсь если там корутины тоже юзали для такого. Как и горячую замену кота
[18:15:56] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Просто лет 10 как ер…>
Ада выжидала...
Не торопитесь что-то внедрять, возможно мода пройдет и это будет ненужно :)
[18:16:17] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ада выжидала...
Не т…>
Так и будет. :-) лет через 20
[18:17:10] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Тем, что он всеобъем…>
Корутин никаких в лиспах не видел, правда давно с ними работал. Но что ecl, что sbcl там было всё по обычному, на потоках
[18:18:03] <ada_ru> (vasil_sd) Единственная реализация, но не лиспа а схемы, где крутые зелёные потоки были - это Gambit
[18:20:08] <ada_ru> (I_vlxy_I) Ну, сейчас для Common Lisp полно корутин в виде либ :-)
[18:20:28] <ada_ru> (I_vlxy_I) Может и тогда кто-то делал. На нем это вроде очень легко делается
[18:23:09] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Может и тогда кто-то…>
На cl - не особо легко. На схемах с call/cc - да
[18:26:07] <ada_ru> (I_vlxy_I) Говорят в Аде тоже были зелёные потоки.. потом выпилили :-)
[18:45:40] <ada_ru> (Максим) Может корутины в Аде и не нужны, если реалтзовать невытесняющий планировщик для обычных задач. Есть же полиси соответствующее в языке. Мне кажется буде тоже самое
[18:59:09] <ada_ru> (Oleg) Я вот изучаю мультитаскинг с единым стеком
[19:07:45] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Может корутины в Аде…>
Очень может быть
[19:46:08] <ada_ru> (vasil_sd) отвечает (nitrocerber) на <ну это был оригинал …>
Я не имел ввиду полный перевод, а то что русскоязычная литература по IT тоже нужна.
Кауфман же на основе чего-то писал про Аду, то есть перевёл, адаптировал и скомпилировал инфу из забугорных источников
[19:57:35] <ada_ru> (vasil_sd) отвечает (Oleg) на <Я вот изучаю мультит…>
stackless корутины?
[19:57:41] <ada_ru> (geniepro) отвечает (nitrocerber) на <Ну это да, я про аду…>
начал гуглить Кауфман + ада, нагуглил это:
https://www.youtube.com/watch?v=D0_rFZLNX7s
[19:58:07] <ada_ru> (nitrocerber) там не тока про аду было, в названии книги её нет
[19:58:13] <ada_ru> (nitrocerber) а это я даже открывать боюсь
[20:01:28] <ada_ru> (I_vlxy_I) Кауфман языки программирования концепции и принципы
[20:01:58] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <там не тока про аду …>
Кстати, мне тут сейчас утверждали, что надежное программирование и исключения исключают друг друга :-)
[20:03:24] <ada_ru> (nitrocerber) спаркофаги одобрае
[20:05:40] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <спаркофаги одобряе>
Ага. Только там был чистый Си :-) все остальное - ересь!
[20:08:20] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Кстати, мне тут сейч…>
Ну, исключения - это просто разновидность control-flow. Проблема в том, что формально тяжело это описывать и как-то работать формально с исключениями, так как там передача управления неявная.
Но теоретически, все исключения можно заменить на if'ы. Правда придётся и программу всю переколбасить, ибо там нужно будет убрать граници между процедурами и функциями... В общем, для кода с исключениями можно получить код без исключений и его верифицировать.
[20:09:00] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну, исключения - это…>
Про верификацию речь не шла :-)
[20:09:27] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Про верификацию речь…>
А что тогда подразумевается под надёжным программированием?
[20:09:48] <ada_ru> (I_vlxy_I) Будет ли Ада надёжней если из неё выпилить исключения?
[20:10:14] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <А что тогда подразум…>
Чтобы написанный код программистом был надёжен. По факту эксплуатации
[20:11:07] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Чтобы написанный код…>
Всё-равно непонятен смысл.
Если чётко не дать определения надёжности по факту эксплуатации, то как сравнивать?
[20:11:48] <ada_ru> (vasil_sd) Или реч шла ошибочные значения vs исключения?
[20:11:50] <ada_ru> (I_vlxy_I) Надежность по факту определяется числом багрепортов за единицу времени и степенью их критичности
[20:12:11] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Или реч шла ошибочны…>
Ага. Ретурн коды против исключений
[20:12:14] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Надежность по факту …>
Это очень специфичная метрика и тут всё будет субъективно
[20:13:22] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ага. Ретурн коды про…>
Лично мне больше нравится монадический подход (~ ретурн коды).
Но в том же окамле и так и так народ делает. Там есть и исключения и монады для результатов
[20:13:48] <ada_ru> (geniepro) <прислал документ>
[20:16:28] <ada_ru> (I_vlxy_I) У меня оно в бумажном виде дома лежит вроде :-)
[20:17:41] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Лично мне больше нра…>
Кстати! Скоро и в с++ :-)
[20:18:23] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Кстати! Скоро и в с+…>
А-ля expected?
[20:20:09] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <А-ля expected?>
Не помню. Найду talk, кину ссыль
[20:21:38] <ada_ru> (vasil_sd) https://github.com/TartanLlama/expected
[20:22:16] <ada_ru> (vasil_sd) В плюсах столько гадости уже, что даже небольшие улучшения погоды не делают...
[20:22:37] <ada_ru> (I_vlxy_I) А, не. Там прямо няшный синтаксис будет
[20:23:12] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А, не. Там прямо няш…>
Хм... няшный синтаксис и плюсы - это несовместимые вещи :)
[20:23:51] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Хм... няшный синтакс…>
Зато не надо долго и мучительно писать begin end :=
[20:24:12] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Зато не надо долго и…>
Вот честно, begin end совсем не напрягают :)
[20:24:37] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Вот честно, begin en…>
Я знаю :-)
[20:25:18] <ada_ru> (vasil_sd) На мой взгляд, в Аде нужно на два порядка прикладывать меньше усилий для читаемого кода, а то и на три-четыре порядка ;)
[20:26:02] <ada_ru> (vasil_sd) В плюсах же постоянно думал, как написать так, чтобы глазкам не слишком больно было :)
[20:28:28] <ada_ru> (I_vlxy_I) Ну, простые вещи в плюсах вполне ок. А сложных в Аде либо нет, либо очень многоСТРОЧНО выходит, и от этого страдает читабельность
[20:30:15] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну, простые вещи в п…>
Сложность должна быть не в языке, а в потенциальном развитии архитетктуры кода. А сам код должен быть простым и примитивным. В этом плане я полностью на стороне Ады
[20:31:29] <ada_ru> (geniepro) отвечает (vasil_sd) на <Сложность должна быт…>
какими простыми языковыми средствами можно эффективно решать сложные задачи так, что бы код решения был простым и примитивным?
[20:31:32] <ada_ru> (vasil_sd) Сложность кода - это либо ты применяешь не тот язык не в тех задачах, либо костылей понаделал и теперь делаешь многоэтажную конструкцию из ажурных костылей, что приводит к сложному коду.
[20:32:41] <ada_ru> (vasil_sd) отвечает (geniepro) на <какими простыми язык…>
Средства должны быть в первую очередь архитектурные. Если не получается сложную задачу декомпозировать на простые - значит просто тактика решения выбрана неправильно.
[20:32:51] <ada_ru> (geniepro) Жан Ишбиа, руководитель группы разработчиков Ады, выразив своё «уважение и восхищение» Виртом, не согласился с ним, сказав: «Вирт верит в простые решения сложных проблем. Я не верю в такие чудеса. Сложные проблемы требуют сложных решений».
[20:33:25] <ada_ru> (vasil_sd) отвечает (geniepro) на <Жан Ишбиа, руководит…>
Ну, тут я больше склоняюсь к точки зрения Вирта
[20:33:47] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Сложность должна быт…>
Тогда не Ада нужна :-) Оберон или Го на крайняк
[20:33:52] <ada_ru> (geniepro) <прислал наклейку> 🤔
[20:34:04] <ada_ru> (vasil_sd) :)
[20:34:22] <ada_ru> (vasil_sd) Мне больше по нраву подход в окамле с ppx
[20:34:47] <ada_ru> (I_vlxy_I) А кто такой ррх?
[20:35:05] <ada_ru> (I_vlxy_I) У камла мне дико не понравилась реализация целых чисел
[20:35:17] <ada_ru> (vasil_sd) http://ocamllabs.io/doc/ppx.html
[20:35:41] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <У камла мне дико не …>
битика жалко? :)
[20:35:58] <ada_ru> (geniepro) отвечает (vasil_sd) на <битика жалко? :)>
из-за этого битика тормоза на ровном месте
[20:36:32] <ada_ru> (vasil_sd) отвечает (geniepro) на <из-за этого битика т…>
Ну там была дилемма, либо в одном месте тормоза, либо в другом. Решили так
[20:36:44] <ada_ru> (geniepro) отвечает (I_vlxy_I) на <У камла мне дико не …>
а мне не нравится отсутствие классов типов и из-за этого всякие + +. - -.
[20:36:57] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <битика жалко? :)>
Из за этого бибика эти целые использовать нельзя совсем
[20:37:25] <ada_ru> (vasil_sd) отвечает (geniepro) на <а мне не нравится от…>
У них там были идеи по implicit modules, типа как в coq. Но на мой взгляд - это очень спорное решение.
[20:38:39] <ada_ru> (vasil_sd) И хаскелевские тайп-классы - это ну такое. Удобно иногда, да, но это фактически неявное использование контекста.
[20:39:19] <ada_ru> (vasil_sd) То есть ты пишешь код, а он тебе откуда-то взял и притащил объект, который нашёл в контексте по сигнатуре. Некошерно это...:)
[20:40:21] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Из за этого бибика э…>
ну почему же. Нужна скорость - Int64 и тд.
[20:42:18] <ada_ru> (vasil_sd) Да, есть определённые проблемы и с окамлом, и синтаксис там тоже иногда вызывает вопросы. Но в целом более-менее.
А с ppx так вобще хорошо. Делаешь свои DSL'и как фильтры фронтенда и получаешь красивый синтаксис для своих либ и пр. А ядро языка остаётся нормальным, никто туда не пытается затащить всё-всё-всё
[20:43:28] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <ну почему же. Нужна …>
Потому, что картинка состоит ровно из 32 битных интов у которых используются ВСЕ биты.
[20:43:48] <ada_ru> (I_vlxy_I) И это только один из примеров
[20:44:17] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Потому, что картинка…>
https://caml.inria.fr/pub/docs/manual-ocaml/libref/Int32.html
[20:46:16] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <https://caml.inria.f…>
А оно не боксед ли случайно? Массив из них какого размера будет?
[20:46:20] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <И это только один из…>
Да понятно, что там много проблем. И с синтаксисом. Чего стоит только привязка свойств инфиксных операторов к первым символам имени.
Но многие решения у них весьма хорошие. И путь с расширением языка через PPX, лично по мне так очень правильный
[20:46:29] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А оно не боксед ли с…>
Компактнее некуда
[20:47:11] <ada_ru> (vasil_sd) https://caml.inria.fr/pub/docs/manual-ocaml/libref/Bigarray.html
[20:49:07] <ada_ru> (vasil_sd) В Аде очень хорошая идея с аттрибутами. Нужно её просто обобщить, вытащить API компилятора через набор атрибутов/аспектов и сделать аналог PPX.
Тогда к либам народ сможет делать хороший синтаксис и DSL'и.
[20:56:15] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Да понятно, что там …>
А чего стоит возможность объявления повторно сущностей с тем же именем, но с другим типом и семантикой...
Вот pi у тебя 3.1415, а тремя строчками ниже у тебя pi уже “hello world”
[20:56:54] <ada_ru> (I_vlxy_I) Я понимаю откуда это взялось - камло для репла делалось, а не для программирования больших проектов, но тем не легче
[21:14:03] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Я понимаю откуда это…>
Ну, я бы так не утверждал, учитывая раздельную компиляцию сигнатур и реализаций.
[21:15:41] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А чего стоит возможн…>
Для этого есть сигнатуры. Если работать с сигнатурами и структрами, то можно в сигнатуру заложить нужный интерфейс и принимать только его реализующие структуры
[21:15:49] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну, я бы так не утве…>
А я бы - утверждал :-) оно изначально было суть - repl для всякого теоремпрувинга. Поэтому там этот артефакт и остался. Без него repl невозможен
[21:16:44] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А я бы - утверждал :…>
Я про большие проекты. Так-то понятно, что там от репла есть артефакты.
[21:17:04] <ada_ru> (vasil_sd) И репл кстати для прототипирования кода очень полезная штука.
[21:17:22] <ada_ru> (I_vlxy_I) Ну и этот артефакт неудобен и ошибками чёреват
[21:17:32] <ada_ru> (I_vlxy_I) И его, кстати, и в Раст втащили
[21:17:42] <ada_ru> (I_vlxy_I) rustRustRUST!
[21:17:50] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну и этот артефакт н…>
Ну это там из наименьших, на мой взгляд проблем.
[21:17:52] <ada_ru> (I_vlxy_I) Сори, не сдержался, триггернуло
[21:17:58] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Сори, не сдержался, …>
:)
[21:18:20] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну это там из наимен…>
У меня шаблон с этого порвало :-) остальное то ок
[21:18:25] <ada_ru> (I_vlxy_I) Ну и интыыыы
[21:19:07] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <У меня шаблон с этог…>
Я, как человек, начавший превращаться в программиста с бейсиков на всяких zx48, к реплам весьма тепло отношусь :)
[21:19:37] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну и интыыыы>
Зато мусорщик хороший и шустрый :)
[21:19:50] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Я, как человек, нача…>
Я тоже. Но я не хочу видеть репловые артефакты у себя в коде
[21:20:10] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Зато мусорщик хороши…>
У ерланга шустрее :-)
[21:20:23] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Я тоже. Но я не хочу…>
Нужно посмотреть на флажки компилера, может там сейчас на переопределение сделали варнинг
[21:20:37] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Нужно посмотреть на …>
Сомнительно.
[21:20:49] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <У ерланга шустрее :-…>
Возмжно, тут не знаю деталей
[21:21:39] <ada_ru> (I_vlxy_I) Там оно работает всегда за O(n)
[21:21:55] <ada_ru> (I_vlxy_I) И за один проход по куче
[21:22:11] <ada_ru> (I_vlxy_I) А кучки там очень мелкие
[21:22:53] <ada_ru> (vasil_sd) А, там же эрланг совсем иммутабельный... Ну не удивительно, что мусорщик шустрее
[21:23:25] <ada_ru> (I_vlxy_I) Угу. Soft real-time в итоге
[21:27:40] <ada_ru> (vasil_sd) Зато мусорщик у окамла один из самых шустрых в классе (функциональщина с мутабельностью)
[21:28:41] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Зато мусорщик у окам…>
А кто там ещё кроме него?
[21:29:03] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А кто там ещё кроме …>
хаскель например
[21:29:18] <ada_ru> (vasil_sd) Кстати, у окамла есть интересное развитие: http://ocamllabs.io/doc/multicore.html
[21:29:35] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <хаскель например>
А у него вроде с мутабельностью совсем плохо
[21:29:40] <ada_ru> (I_vlxy_I) Или совсем нет
[21:29:41] <ada_ru> (vasil_sd) Мне там очень понравилась идея алгебраических эффектов
[21:30:15] <ada_ru> (I_vlxy_I) Ну и он ленивый - это сразу сильно другой класс и другой GC, кстати
[21:30:34] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А у него вроде с мут…>
Там много флажков у компилятора стало, я уже путаюсь в этих под и надмножествах языка
[21:31:38] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну и он ленивый - эт…>
Там и строгие вычисления есть опциональные. Окамл ленивый опционально, хаскель опционально строг. То есть они изоморфны :)
[21:33:51] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Там и строгие вычисл…>
Ну, да. А с++ опционально иммутабелен, опционально ленив и функционален, а также, опционально, в нем может быть и GC. Так что он тоже изоморфен :-)
[21:35:32] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну, да. А с++ опцион…>
С++ изоморфен всему и ничему одновременно ибо всё там продумано ну весьма так себе. :)
Именно поэтому почти в любой области есть языковые средства более подходящие под задачи этой области.
[21:36:03] <ada_ru> (vasil_sd) То что народ упарывается по плюсам - так это просто от узости кругозора и религиозности.
[21:40:01] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <То что народ упарыва…>
Ну, ц++ позволяют пощупать и познать многое. Но чистые концепции через плюсы не познать. Как и через js какой-нибудь.
Уже сейчас ФП учат на js и питоне. И есть книги по ФП на плюсах.
[21:42:01] <ada_ru> (I_vlxy_I) Аналогично с ООП
[21:44:51] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <Ну, ц++ позволяют по…>
Ц++ позволяют забить голову настольно сильно всякими ненужными ньюансами, что потом народу сложно вообще что-либо воспринимать...
И дело тут не в концепциях. Просто сам язык очень непродуманный во многом, сложный, костыльный и тд.
[21:45:23] <ada_ru> (vasil_sd) Изучать программирование нужно с чего-нибудь типа TLA+ :)
[21:51:57] <ada_ru> (geniepro) отвечает (I_vlxy_I) на <А у него вроде с мут…>
хаскель — лучший императивный язык в мире (С) Пейтон-Джонс, один из авторов хаскеля
[21:53:47] <ada_ru> (vasil_sd) отвечает (geniepro) на <хаскель — лучший имп…>
Да, только синтаксис этой императивности как-то не очень...
Да и вообще, в хаскеле с синтаксисом не очень. :(
[21:54:09] <ada_ru> (geniepro) отвечает (vasil_sd) на <Да, только синтаксис…>
лучший синтаксис из известных мне ))
[21:54:35] <ada_ru> (vasil_sd) отвечает (geniepro) на <лучший синтаксис из …>
Мсье знает толк :)
[21:56:56] <ada_ru> (vasil_sd) Я когда немного под себя правил PP препроцессор для pandoc, то вот от такого :https://github.com/CDSoft/pp/blob/master/src/Preprocessor.hs#L1057
глазкам больновато было
[21:58:08] <ada_ru> (I_vlxy_I) А что не таким синтаксисом хаскеля? Вроде он простой и понятный
[21:59:40] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А что не таким синта…>
Ну я выше привёл пример. Его читать иногда тяжело, глаза спотыкаются постоянно и блоки плохо выделенны.
[21:59:46] <ada_ru> (I_vlxy_I) А то, что там можно expression навернуть такой, что мама не горюй, так не пишите так :-)
[22:00:16] <ada_ru> (vasil_sd) отвечает (I_vlxy_I) на <А то, что там можно …>
Ну вот пишут. И часто и много такого в хаскельных проектах
[22:00:42] <ada_ru> (I_vlxy_I) отвечает (vasil_sd) на <Ну я выше привёл при…>
Блоки можно выделять как отступами, так и скобочками, кстати.
[22:01:20] <ada_ru> (I_vlxy_I) Ну и в хаскелле все есть expression внутри функции, блоков statement‘ов там нет
[22:02:37] <ada_ru> (vasil_sd) Вот если посмотреть на это:
"itaa -> do
ditaa <- case customDitaa env of
Nothing -> resource "ditaa.jar" ditaaJar
Just jarPath -> return jarPath
jarExists <- doesFileExist ditaa
unless jarExists $ errorWithoutStackTrace $ ditaa ++ " not found"
let opts = case ext of
SVG -> ["--svg"]
PNG -> []
PDF -> []"
И аналогичный паттерн-матчинг в окамле, то окамл читабелнее на порядок.
[22:03:19] <ada_ru> (vasil_sd) Я понимаю, что хаскелевскому компилятору пофиг, он видит где паттерны кончились, но вот моим глазам тяжело такое читать