[07:18:02] <geniepro> valexey> geniepro: вот выйдет ocaml 4.0.5 с modular implicits и тогда не останется ни одного аргумента за то, чтобы использовать хаскель :-)
неправда твоя!!! если у окамля отнять его говносинтаксис, это будет уже не окамль!
СИНТАКСИС!!! вот аргумент за хаскель!!!!
[07:24:42] <geniepro> https://www.facebook.com/ila.mky/posts/1156392491116135
"Илья Медведовский 21 ч ·
Нью-Йорк Таймс, вчера:
"In background conversations, officials strongly hinted that the evidence had come, in part, from data collected by the National Security Agency’s implants in foreign computer networks, presumably including Russia’s."
Те данные о русском следе в атаках на США были получены ... через импланты АНБ, установленные в ПО и оборудование на территории РФ. Очередной пламенный привет от Циско прежде всего."
[07:33:41] <geniepro> valexey: что и требовалось доказать: http://www.refnews.ru/read/article/1399121
[12:34:29] <geniepro> https://www.novayagazeta.ru/articles/2016/10/10/70118-rossiya-prekrasna-zapad-zabludilsya
[12:35:55] <valexey> geniepro: да нормальный в камле синтаксис.
[12:42:11] <geniepro> мне не нра...
[12:51:07] <geniepro> valexey: если ты реально будешь проги на нём писать, то вскоре поймёшь, насколько он неудобен
[12:51:37] <valexey> geniepro: слушай, мне синтаксис ерланга норм и плюсов норм. о чем ты говоришь вообще?
[12:54:10] <valexey> вот что реально в камле не удобно, это компилятор который имеет хреновейшую диагностику ошибок
[12:54:16] <valexey> хуже наверно только в обероне
[12:57:26] <geniepro> у эрланга синтаксис норм, типизация не очень
[13:00:30] <valexey> ну, многие от синтаксиса эрланга стонут и переползают на элексир
[13:11:51] <valexey> https://github.com/BinaryAnalysisPlatform/bap/blob/master/src/bap_plugin_loader.ml
[13:11:56] <valexey> вот чем синтаксис то плох?
[13:12:04] <valexey> тебя многочисленные in задалбывают шоле?
[13:39:39] <geniepro> valexey> тебя многочисленные in задалбывают шоле?
в том числе, а ещё непригодность для нисходящего стиля разработки, как завещал сам Вирт, хоть и не реализовал толком в паскалях своих
[13:46:15] <valexey> в смысле? почему непригодность то?
[13:46:37] <valexey> чем оно менее пригодно для такого стиля по сравнению с обероном, паскалем, плюсами и жабой?
[13:51:34] <geniepro> let x = ...
and y = ...
and z = ...

let rec q = ... w ...
and w = ... q ...

короче вот как-то так... даже в сишарпе такой фигни нет
[13:52:24] <geniepro> расчитано видимо на однопроходный транслятор
[13:52:55] <geniepro> ну и да, сплошные let in -- это мусор
[13:54:14] <geniepro> программа в окамле идёт сверху вниз по потоку запуска команд -- как в бейсике или питоне
[13:55:32] <valexey> дык как и в любом другом ЯП! :-)
[13:55:34] <valexey> В сях там
[13:55:38] <valexey> если ты про global scope
[13:55:56] <valexey> только вот в других ЯП еще порядок бывает не определен
[13:56:28] <valexey> на самом верхнем уровне у тебя же в любом случае будут одни объявления да определения. и не будет исполняемого кода
[13:57:14] <geniepro> в хаскеле и сишарпе не так!!!! в эфшарпе да, так, как и в окамле -- и потому ацтой! как и си и паскали
[13:58:12] <geniepro> в хаскелле у меня там где код, а не типы -- главная процедура, вызывающая другие процедурки и функции, определённые ниже
[13:58:54] <valexey> дык и в камле главная процедура используется :-)
[13:59:00] <valexey> https://github.com/ocaml/omd/blob/master/src/omd_main.ml
[13:59:03] <valexey> например
[13:59:45] <valexey> не вижу отличий
[14:00:48] <geniepro> ну и что ты мне показал? о_О главная процедура хер знает где где-то в нижней части файла, а над нею всякая муть
в хаскелле наоборот же
[14:01:12] <valexey> дык её можно куда угодно переместить - работоспособности это не помешает ведь
[14:01:53] <geniepro> и самое печальное, в окамле как и в питоне можно не делать главную процедуру -- просто вызывать всякие команды по ходу файла и они что-то там будут делать, и хер проследишь пока внимательно всё не изучишь
[14:02:14] <geniepro> попробуй поднять её наверх -- она не найдёт других функций
[14:02:32] <valexey> дык это не печально, это универсально :-) репл, скриптонаяриваниеи и программирование едины!
[14:02:45] <geniepro> это нетехнологично по моему мнению
[14:02:58] <valexey> найдет, ведь есть это: https://github.com/ocaml/omd/blob/master/src/omd_main.mli
[14:03:04] <valexey> :-)
[14:03:41] <geniepro> эликсир на первый взгляд какой-то руби -- не люблю руби
[14:04:12] <valexey> ви таки не любите раби? ;-)
[14:04:37] <geniepro> в этом интерфесном файле ты же только экспортируемые сущности указываешь, а приватные как main найдёт?
[14:04:53] <geniepro> рубины люблю, язык Ruby -- нет )))
[14:05:15] <valexey> ну, насколько я понимаю, можно иметь несколько интерфейсных файлов :-)
[14:05:54] <valexey> в общем, для человека который пишет на плюсах и прочих оберонах твои возражения на тему камла как-то весомо не смотрятся.
[14:06:40] <valexey> единственное что хочется - это санитайзер который бил бы по рукам за исполняемый код в global scope. причем думаю он уже где-то такой есть.
[14:06:59] <geniepro> на плюсах есть форвард декларейшн, как в паскале, в обероне их вроде нет?
[14:07:22] <valexey> оберонов много...
[14:07:29] <geniepro> расстрелять!!!
[14:07:46] <valexey> в современном нет, в старом, оберон-2 там или обероне или во всяких форках вроде КП - есть.
[14:08:12] <valexey> в современном обероне вместо форвард дикларейшина предлагается использовать процедурные переменные :-)
[14:08:40] <geniepro> а левой пяткой правое ухо почесать они не предлагают?
[14:09:18] <valexey> предлагают :-) например именно таким образом в обероне современном организуются массивы длины неизвестной на этапе компиляции :-)
[14:09:47] <valexey> то есть постоянной длины, но известной только в рантайме
[14:09:55] <geniepro> в смысле? о_О
[14:10:12] <geniepro> там же есть функция LEN для массивов
[14:10:24] <valexey> ну вот надо тебе создать массив длины которую введет пользователь с клавиатуры
[14:10:30] <valexey> как ты в обероне это сделаешь? :-)
[14:11:13] <geniepro> NEW(arr, x);

кажись так
[14:12:33] <geniepro> я как-то пытался производственную прогу на эфшарпе накатать -- с тех пор на сишарпе пишу то что под дотнет ))))
[14:13:00] <valexey> NEW(arr, x); -- нет такого в обероне :-)
[14:13:10] <geniepro> замыканий и алгебраиков не хватает, да, но остальные недостатки перевешивают
[14:13:18] <geniepro> как нету? было же вроде? о_О
[14:13:50] <valexey> https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf
[14:13:56] <valexey> нету. давно нету
[14:14:01] <valexey> с 2007 года нету :-)
[14:14:13] <valexey> вот, попробуй ка найди
[14:14:52] <valexey> массивы бывают только известной на этапе компиляции длины
[14:14:55] <valexey> иных не бывает
[14:16:04] <valexey> размер любой переменной должен быть известен на этапе компиляции, в том числе и массива.
[14:17:14] <geniepro> NEW(v) pointer type allocate v^
[14:18:02] <valexey> ну да, и?
[14:18:08] <valexey> длину то где указывать? :-)
[14:18:24] <geniepro> а как массивы создаются?
[14:18:35] <valexey> также как и рекорды
[14:19:30] <valexey> TYPE myArr = ARRAY 100500 OF INTEGER;
[14:19:31] <valexey> ...
[14:19:44] <valexey> VAR arr : POINTER TO myArr;
[14:19:47] <valexey> NEW(arr);
[14:23:16] <valexey> как иначе то?
[14:26:16] <geniepro> какой-то он вапще убогий, этот оберон-07
[14:26:43] <geniepro> нормальные люди делают арифметику на типах, а вирт вапще константы везде вводит
[14:27:16] <valexey> ну он уже давно не 07
[14:27:19] <valexey> он 2016 :-)
[14:27:26] <valexey> самый свежий, самый новый оберон!
[14:27:30] <valexey> самый правильный, от мэтра
[14:27:47] <geniepro> ArrayType = ARRAY length {"," length} OF type.
length = ConstExpression.

нормально, чо!!! давитесь иголками и жрите кактус!!!
[14:28:27] <geniepro> ну, для задач Вирта достаточно, а на других плювать с высокой колокольни ))
[14:29:42] <geniepro> https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf
Не удается получить доступ к сайту
Превышено время ожидания ответа от сайта www.inf.ethz.ch.
[14:29:46] <valexey> зато в итоге у рантайма, точнее у манагера памяти, произошла унификация массивов с записями
[14:29:55] <valexey> теперь они имеют идентичную структуру
[14:29:58] <valexey> в памяти
[14:30:13] <geniepro> а как же расширяемые записи? там же теги все дела?
[14:30:26] <valexey> дык и тут тэги
[14:31:00] <valexey> вначале, по -1 смещению хранится ссыль на тэг типа. в тэге в том числе и длина указана
[14:31:06] <geniepro> но массивы же не расширяемые, и зачем массиву теги? там только длина нужна и всё
[14:31:18] <valexey> дык унификация!
[14:31:24] <valexey> длина и может быть тип...
[14:31:28] <valexey> надо глянуть в книжке :-)
[14:32:00] <valexey> таким образом вирт избавился от одного ифа!
[14:32:14] <valexey> упрощение же! это же всегда хорошо
[14:36:56] <geniepro> valexey: ты уже прочёл Real World OCaml ? маст хев для тебя ))
[14:37:26] <valexey> в процессе :-)
[14:39:25] <valexey> там в камле есть одна тонкость
[14:40:03] <valexey> надо сразу нахрен выкидывать стандартную либу которая идет с компилятором, ибо она убога бай дизайн. причем это не шутка, они специальн так сделали. и это исправляться не будет никогда. она нужна именно такая какая есть.
[14:40:48] <geniepro> не, ты не прав. надо не стдлиб окамля выкидывать, а сам окамль выкидывать )))
[14:41:56] <valexey> перед окамлом в очередь на выкидывание настолько много языков, что до него очередь ещё очень не скоро дойдет, если дойдет вообще :-)
[15:34:05] <geniepro> о техзаданиях: https://media.giphy.com/media/26ufpGMTHqLSFl744/giphy.gif
[15:47:05] <valexey> НИНУЖЕН!
[15:59:57] <valexey> http://www.oreilly.com/programming/free/
[16:20:44] <TRUE> на ББ вышел драйвер для монги.
[16:21:03] <TRUE> но названия модулей делают меня грустным
[16:22:19] <TRUE> valexey: на какие из книжек ты нацелился?
[16:22:43] <valexey> а что не так с названиями модулей?
[16:22:52] <valexey> хочу микросервисы глянуть, раст глянуть
[16:22:59] <valexey> ну и по фпрогу тоже
[16:23:29] <valexey> и C++ тудай надо прочитать
[16:25:17] <TRUE> названия модулей лично мне ничего не говорят о содержании модуля.
[16:25:43] <valexey> слушай, ну это же прям по заветам Вирта :-)
[16:25:55] <TRUE> Правда, я посмотрел, что там, оказывается, и документация есть. Значит, не надо читать код модуля, чтобы понять, как его использовать
[16:25:56] <valexey> у него модули в компиляторе тоже называются хрен пойми как
[16:26:16] <TRUE> нет у Вирта таких заветов.
[16:26:25] <valexey> на самом деле код всегда один фиг читать приходится, ибо тонкости и нюансы только через чтение исходников выявляются
[16:26:33] <valexey> особенно когда оно шлепнется
[16:26:44] <valexey> у Вирта есть пример личный :-)
[16:27:04] <TRUE> личные предпочтения и заветы - разные вещи
[16:27:28] <TRUE> он нигде не говорил (вроде), что так писать _нужно_
[16:27:45] <TRUE> но сам так пишет, да
[16:27:54] <TRUE> хотя, всё же, не совсем так
[16:28:04] <valexey> ну, народ немного мутировал
[16:28:13] <valexey> еще стиль написания кода у него таки жесть
[16:28:20] <valexey> однострочнооднобуквенный
[16:28:39] <TRUE> его трёхбуквенные имена модулей - это чрезмерное сокращение названия сущности. То есть, по сути это всё равно в какой-то мере отражение предметной области
[16:29:23] <valexey> ога, как ярко горящая надпись "не влезай, убьет!"
[16:29:39] <valexey> создает порог вхождения, не имеющий достаточно мужества и упорства не полезет туда
[16:29:46] <TRUE> а вот у драйвера монги совсем грустные имена модулей: к86, к83, к102, к135
[16:29:47] <valexey> и не полезет туда не прочитав доку/книжку :-)
[16:30:14] <valexey> по названиям похоже на версии протокола(?)
[16:30:36] <TRUE> ну, не знаю, интерфейсы у них разные
[16:30:57] <valexey> значит фантазия закончилась названия выдумывать :-)
[16:31:39] <TRUE> для того, чтобы понять где какой модуль компилятора Вирта достаточно краткого устного введения. Типа модуль, где есть S - это сканнер. Ну и так далее.
[16:33:04] <valexey> да и дока у него там небольшая. и прям таки граф связей нарисован модулей
[16:33:19] <valexey> а тут небось про внутреннюю архитектуру хрен с маслом а не дока
[16:36:19] <valexey> надо будет, кстати, глянуть на монгомодули.
[16:36:22] <valexey> монга мне интересна
[16:37:43] <valexey> TRUE: а хочешь глянуть для монгодриверы для двух других ЯП?
[16:37:48] <valexey> для сравнения, так сказать
[16:37:57] <valexey> не для С++ (у С++ там жуть и буст)
[16:38:17] <valexey> Вот ocaml: https://github.com/MassD/mongo
[16:39:44] <valexey> Вот Go: https://github.com/go-mgo/mgo
[16:40:23] <TRUE> и для жабы, наверн, есть.
[16:40:47] <valexey> наверно. но жабу я боюсь :-)
[16:40:59] <valexey> там любят обмазываться зависимостями, мавенами и прочим
[16:43:10] <valexey> Вот плюсато-полосатый :-) https://github.com/mongodb/mongo-cxx-driver
[17:49:42] <valexey> vlad2: тут клеветы на питон собирать начали: http://forum.oberoncore.ru/viewtopic.php?f=7&t=5913
[17:51:38] <vlad2> Гы.
[17:53:22] <vlad2> Куча старого питоновского кода. Как-то сопровождается. Представить что-то лучще не могу.
[17:53:51] <valexey> IMHO не прокатит у них ничего. В плане замещения питона оберонами
[17:54:16] <valexey> Ибо у Питона есть железобетонный контраргумент и афигенный лоббист в лице например Яндекса
[17:54:40] <valexey> У них туча кода в продакшине (то есть не из десяти строчек скрипт, а приложения) на питоне. Сложного кода.
[17:54:52] <vlad2> На питоне тупо меньше кода. На порядок, и это не преувелечение. Вместе с тестами.
[17:55:13] <valexey> И Яндекс совместно с АУ и высшей школой экономики это дело радостно проталкивают
[17:55:30] <valexey> ибо им нужны люди которые умеют машинлёрнинг и питон.
[17:55:49] <valexey> Ибо это банально эффективней чем все остальное. с т.з. бузинесса
[17:55:57] <valexey> ну и, понятно, плюсы.
[17:56:51] <valexey> то есть аргументы, что питон - это только для олимпиадных задачек ваще не катит
[17:57:08] <valexey> для олимпиадных задачек питон слишком медленный.
[17:57:16] <valexey> а вот для реальных задачек - как раз норм.
[17:57:29] <valexey> ибо узкие места пишутся на cython и всё.
[18:36:06] <valexey> "7. Питон -- это попытка исправить злокачественную генетику Си. И потому, после него обучаемый неизбежно пойдёт в Си."
[18:36:13] <valexey> "10. Питон не является промышленным стандартом, а значит в будущем школьники будут вынуждены со временем отказываться от приобретённых навыков. Труд учителей и средства налогоплательщиков будут потрачены впустую."
[18:36:48] <valexey> Интересно, а в какой момент времени хоть какой-то из многочисленных оберонов прошел стандартизацию промышленную?
[20:23:24] <valexey> https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.jla2v7drb
[21:43:01] <vlad2> "but now everyone is realising modifying states is equivalent to kicking babies, so now everyone is moving to immutable objects and functional programming"
[21:44:46] <valexey> ога :-)
[21:50:53] <vlad2> Прекрасная статья, хотя и длинная.
[21:53:04] <valexey> ну да. но короче не выйдет статья, ибо не передаст всего ужоса фронтенда современного
[21:53:09] <valexey> это ж капец
[22:12:46] <vlad2> Угу. Оно давно по сложности пересилило традиционный сишный трэщ: препроцессор -> компиляция -> линковка -> включение ресурсов -> strip + создание отладочной информации -> exe.
[22:13:46] <vlad2> Причем в случае сей есть IDE из коробки. Для JS я такого не знаю.
[22:14:33] <valexey> причем даже если в сишный трешак добавить внешний препроцессор и кодогенератор типа yacc/lexx
[22:14:43] <valexey> всё равно js зоопарк круче
[22:16:12] <valexey> в сях самый трешак это система сборки
[22:16:17] <valexey> их тоже дикий зоопарк
[22:16:29] <valexey> но есть таки плюс-минус стандарт в виде адских автотулзов
[22:18:17] <valexey> причем поскольку в js-мире любой набор тулзов это говно, то чтобы это исправить всё растет вал новых тулзов и фреймворков
[22:18:22] <valexey> которые все равно говно :-)
[22:18:31] <valexey> там стек чуть ли не полностью меняется каждый год
[22:31:25] <valexey> "Смотровая площадка у университета. Там байкеры собираются, как вы знаете.
Очередная тусовка.
В одной стороне реальные такие дядьки бородатые, солидные. Харлеи стоЯт в рядок блестят хромом, все один к одному. Дядьки чинно спокойно стоят, что-то свое перетирают. Все так спокойно, благородно, солидно...

В другой стороне пацаны на спортах. Вжик-вжик, туда сюда, постоянно шастают, визжат, вилли и т.п., то в магазин отъедут, то приедут, как улей пчелиный короче.

Тут один из них к дядькам подлетает, стоппи, дым из под колес... И спрашивает:
- мужики! А чего вы с нами никогда не знакомитесь ?
Дядька спокойно так, сплевывая в сторону:
- а чего с вами знакомиться-то?.. ВЫ КАЖДЫЙ ГОД НОВЫЕ..."