[07:15:48] alexey.veselovsky: “но если хочешь внутри метода обращаться к переменным через точку”
[07:15:54] alexey.veselovsky: а зачем хотеть такое извращение? :-)
[08:16:59] geniepro: Don Syme receives the Royal Academy of Engineering's Silver Medal for his work on F#. The citation reads:

F# is known for being a clear and more concise language that interoperates well with other systems, and is used in applications as diverse asanalysing the UK energy market to tackling money laundering. It allows programmers to write code with fewer bugs than other languages, so users can get their programme delivered to market both rapidly and accurately. Used by major enterprises in the UK and worldwide, F# is both cross-platform and open source, and includes innovative features such as unit-of-measure inference, asynchronous programming and type providers, which have in turn influenced later editions of C# and other industry languages.
http://lambda-the-ultimate.org/node/5193
[09:03:06] alexey.veselovsky: F# нинужен!
[09:03:11] alexey.veselovsky: недоФЯ
[09:03:14] alexey.veselovsky: недоИЯ
[09:03:19] alexey.veselovsky: да еще и под .net
[09:04:08] geniepro: зато полноценный ООЯ!!!
[09:04:34] alexey.veselovsky: послушал и пообщался с народом который C++ пользует — даже в нашей деревне это крутые спецы. то есть на голову выше всех там .net’чиков и прочих жабщиков или жабоскриптовщиков
[09:04:59] alexey.veselovsky: так что C++ таки зарулит всех в вебе как только его туда пустят :-)
[09:05:42] geniepro: почему они все ещё не в штатах с зп 200к+ в год? о_О
[09:05:44] alexey.veselovsky: ни Go ни D ни тем более Оберон ничего противопоставить не смогут ему
[09:05:55] geniepro: в каком плане не могут?
[09:06:28] geniepro: и кстати, компилер из с++ в яваскрипт уже давно есть же
[09:06:44] alexey.veselovsky: в прямом :-) на С++ полно уже отличных спецов, которые понимают как машина работает, полно либ и приложений, мощное комьюнити и бекграунд.
[09:06:56] alexey.veselovsky: есть. но смысла в нем пока особого нет.
[09:07:13] alexey.veselovsky: а вот с webasm’ом будет
[09:07:36] alexey.veselovsky: А в США довольно болезненно переезжать, да и не каждый хочет
[09:08:23] alexey.veselovsky: ну, то есть на этом C++ User Group Meeting’е общение и доклады были на порядок сильнее всего того, что я когда-либо видел в Нижнем Новгороде.
[09:21:48] geniepro: alexey.veselovsky: ап чём там было то общение?
[09:22:31] geniepro: и какие раньше ты в НН доклады видел? хаскелл был? )))
[09:22:41] alexey.veselovsky: в основном о параллельности (TBB) удобном API для асинхронщины и resumable functions
[09:22:47] alexey.veselovsky: практически о корутинах
[09:23:01] alexey.veselovsky: которые будет в С++1z
[09:23:07] geniepro: народ хоть дейкстру учил? ))
[09:23:20] alexey.veselovsky: нет конечно, зачем он нужен? :-)
[09:23:35] geniepro: ну он как бы отец многопроцессности )
[09:24:27] alexey.veselovsky: корутины появились в 56 что-ли году :-) впервые
[09:24:30] alexey.veselovsky: А в 1965 их окончательно допилили
[09:24:56] geniepro: и они только через полвека попадут в с++? ))
[09:25:03] alexey.veselovsky: да, видео докладов будет доступно
[09:25:06] alexey.veselovsky: Да!
[09:25:15] alexey.veselovsky: ну, на уровне стандарта, да
[09:25:20] alexey.veselovsky: так то всегда было доступно ;-)
[09:25:37] geniepro: Применение сопрограмм являлось методикой ещё ассемблера, практиковалось лишь в некоторых высокоуровневых языках (Simula, Modula-2).
[09:25:53] alexey.veselovsky: питон, шарп…
[09:26:36] alexey.veselovsky: go..
[09:26:42] alexey.veselovsky: в Обероне правда, нету :-D
[09:26:47] alexey.veselovsky: деградация!
[09:27:01] alexey.veselovsky: хотя в Оберон ОС оно бы СИЛЬНО пригодилось
[09:28:34] geniepro: по утверждению Кнута «подпрограмма является частным случаем сопрограммы».
[09:30:01] alexey.veselovsky: да, кнут окончательно в 1965 году сформировал понятие сопрограммы
[09:31:17] geniepro: но вирту кнут не указ )))
[09:31:35] geniepro: и ваще руоберонцы не уважают кнута )
[09:34:48] alexey.veselovsky: ну, Вирт же в модуле сделал таки корутины :-)
[09:36:05] geniepro: а, ну да... )
[09:36:15] geniepro: но потом выкинул за ненадобностью )
[09:36:53] alexey.veselovsky: скорее потому, что зафанател от ООП и от Cedar’a :-)
[09:37:35] geniepro: ты восхищался живучестью меркавы? т-72б ничуть не хуже: http://judgesuhov.livejournal.com/74463.html
[09:38:16] alexey.veselovsky: скорее не живучестью, а заботой о экипаже
[09:48:42] geniepro: а б 23 июня 2015, 12:55:53
Ну, как бэ Ливанский позор ЦАХАЛа 2006 г. показал, что выживаемость экипажа да и самого танка на уровне Т-72 во второй чеченской, в среднем 2 попадания-1 пробитие-1 труп...полсотни подбитых Меркав, 6 безвозвратов (у нас в Чечне-2 было 9 безвозвратов).
По Абрамсу статистика пока лучше, но иракцы на них пока ещё не навоевались и там ОФС как не было, так и нет...
[09:54:47] alexey.veselovsky: geniepro: https://events.yandex.ru/events/yagosti/04-07-2015/
[09:54:57] alexey.veselovsky: там если ткнуть на доклад, можно высосать pdf
[09:55:44] geniepro: слайды?
[09:55:49] alexey.veselovsky: да
[09:55:54] alexey.veselovsky: потом еще видео будет
[09:56:14] geniepro: всего три доклада? о_О у хаскеллеров и то больше )))
[09:56:31] alexey.veselovsky: у хаскеллеров в Нижнем Новгороде? :-)
[09:56:41] alexey.veselovsky: у них тут вообще всегда ровно 0 докладов :-D
[10:08:27] geniepro: std::generator<int> fib() {
int a = 0, b = 1;
while (true) {
yield a;
int next = a + b;
a = b;
b = next;
}
}

int main() {
for (v : fib()) {
if (v > 50)
break;
std::cout << v << std::endl;
}
}
чота питон с сишным синтаксисом
[10:16:32] alexey.veselovsky: тут ничего новго не добавилось кроме yield
[10:16:52] alexey.veselovsky: остальное все - это чистый С++ как он есть сейчас
[10:16:53] geniepro: ну вот благодаря ему это стало питоном )
[10:17:02] alexey.veselovsky: дык и в шарпе то же самое
[10:17:15] alexey.veselovsky: да и везде где есть сопрограммы, фигли? :-)
[10:18:22] geniepro: короче, ленивые вычисления проникают и в с++
[10:18:30] alexey.veselovsky: угу
[10:18:43] alexey.veselovsky: поэтому я и сказал — c++ так себе хаскель :-)
[10:18:43] geniepro: но как обычно -- в кривом варианте )
[10:20:32] alexey.veselovsky: а вот еще пример функци-анальщины: https://rxcpp.codeplex.com
[10:20:45] alexey.veselovsky: тут в примере кода явно видно, что очень хочется монады и do-синтаксис :-)
[10:20:50] geniepro: // C++ generic lambdas & boost::range
auto squares = boost::range::transformed(S, [](auto&& x) {
return x*x;
});
// С++ resumable functions
auto squares = [&] { for(auto&& x: S) yield x*x; };
птичий йезыг
[10:21:06] alexey.veselovsky: все понятно же!
[10:21:25] geniepro: [&] -- это чо? о_О
[10:21:38] alexey.veselovsky: захват всех локальный переменных по ссылке
[10:21:47] geniepro: auto&& -- ссылка на ссылку на авто -- нафига?
[10:22:09] geniepro: чо не просто авто?
[10:22:10] alexey.veselovsky: auto - это выводимый тип
[10:22:49] geniepro: ну так и вывел бы что это ссылка на ссылку на какой-то тип
[10:22:54] alexey.veselovsky: && означает rvalue reference
[10:23:07] alexey.veselovsky: нет, это не ссылка на ссылку :-)
[10:25:13] geniepro: но ** -- это указатель на указатель!!! чо за не консистентный дизайн???? растрелять!!!
[10:25:43] alexey.veselovsky: А ++ это не сложение на сложение! Ужас!!11
[10:25:45] alexey.veselovsky: :-D
[10:25:59] alexey.veselovsky: а = vs == это ж вообще жесть!
[10:26:40] geniepro: стоп!!! && это же логическое И !!!111 растрелять!
[10:31:18] alexey.veselovsky: А & это побитовое или!
[10:31:21] alexey.veselovsky: РАССТРЕЛЯТЬ!
[10:31:43] alexey.veselovsky: С++ еще в самом начале, как только туда добавили ссылки можно было расстреливать
[10:31:51] alexey.veselovsky: хотя, погоди ка, и Си можно было расстреливать!
[10:32:02] alexey.veselovsky: Ибо там & это и взятие адреса и побитовое или!
[10:32:07] alexey.veselovsky: УЖАС-УЖАС ЖЕ!
[10:32:18] alexey.veselovsky: В РАДИОАКТИВНУЮ ПЫ-ЫЛЬ!
[10:33:43] alexey.veselovsky: это все специально американцы придумали, чтобы на 1) русские вместо того, чтобы чем-то полезным заниматься (предметкой и бизнесом), разбирались бы в нюансах языка. 2) чтобы при этом еще с русских бабла сострич!
[10:33:56] alexey.veselovsky: ибо сложный язык - сложный инструментарий, можно продавать!
[10:34:15] alexey.veselovsky: вот на оберон-тулзах заработать нельзя, ибо слишком простой язык!
[10:34:22] alexey.veselovsky: и такие тулзы кто угодно может написать на коленке!
[10:34:25] alexey.veselovsky: !!111
[10:35:25] geniepro: с++ делают больные ублюдки!!!
[10:35:37] alexey.veselovsky: здоровые!
[10:47:53] geniepro: alexey.veselovsky: http://s1.bild.me/bilder/030315/1648861cpp.png
[10:48:26] alexey.veselovsky: :-D
[10:48:28] geniepro: .ad;c++;http\://s1.bild.me/bilder/030315/1648861cpp.png
[10:48:33] geniepro: .ad;с++;http\://s1.bild.me/bilder/030315/1648861cpp.png
[10:48:41] alexey.veselovsky: лучше про C++z сразу там писать :-)
[10:48:47] alexey.veselovsky: C++17 это будет предположительно
[10:48:47] geniepro: alexey.veselovsky: тока что смастрячил )
[10:48:56] geniepro: хер найдёшь нормальный логотип с++ ((
[10:49:03] geniepro: с++
[10:50:02] geniepro: блеать, бота нету (
[10:50:17] TRUE: вон же жаба висит
[10:50:27] alexey.veselovsky: https://isocpp.org/images/uploads/logo-sun.jpg
[10:50:48] alexey.veselovsky: https://isocpp.org
[10:51:14] TRUE: а, другого бота
[10:53:54] geniepro: alexey.veselovsky: http://s1.bild.me/bilder/030315/7672579cpp.png
[10:54:24] alexey.veselovsky: ага :-)
[10:55:13] alexey.veselovsky: ну хоть не алгол68 :-)
[10:55:34] alexey.veselovsky: наверно с++ ближе всех к алголу из современных ЯП
[10:55:39] alexey.veselovsky: идеалогически по крайней мере
[10:55:59] geniepro: но в алголе ваще нету ООП
[10:56:08] alexey.veselovsky: угу
[10:56:17] alexey.veselovsky: но и в С++ наследование оно в основном не для ООП
[10:56:25] alexey.veselovsky: по крайней мере множественное наследовани ;-)
[10:56:47] kpmý: плюсы в вебе?
[10:56:57] kpmý: а qt там будет?
[10:56:58] alexey.veselovsky: дыа :-)
[10:57:01] alexey.veselovsky: будет
[10:57:14] alexey.veselovsky: думаю. по крайней мере не вижу причин почему нет
[10:57:28] geniepro: а для чего ещё в с++ наследование? о_О
[10:57:40] alexey.veselovsky: для композиции :-D
[10:58:09] alexey.veselovsky: чтобы как из кубиков сбирать то что тебе надо. обычно используется в сочетании с шаблонами
[11:12:18] alexey.veselovsky: “•The primary unit of loadable, executable code is a module.”
[11:12:20] alexey.veselovsky: O_O
[11:12:46] kpmý: бред какой!
[11:12:54] alexey.veselovsky: да ваще!
[11:16:14] geniepro: это откуда? о_О
[11:16:35] alexey.veselovsky: WebAssembly
[11:21:32] alexey.veselovsky: “Zero-cost Exception Handling”
[11:22:11] kpmý: вендоры язычков уже приготовили свои бэкенды
[11:22:39] alexey.veselovsky: а то! новый же богатый рынок открывается! точнее ниша
[11:22:43] alexey.veselovsky: надо зохавать!
[11:22:52] alexey.veselovsky: если конечно язык чего-то да стоит
[11:24:14] kpmý: новая жизнь wasm
[11:24:33] alexey.veselovsky: в смысле?
[11:24:55] kpmý: ну раньше был тоже какой-то wasm
[11:25:16] alexey.veselovsky: совсем другой и он был про какую-то странную x86
[11:25:28] kpmý: ну да
[11:25:38] alexey.veselovsky: а тут никакого x86
[11:25:41] kpmý: а теперь wasm это webassembly
[11:25:41] alexey.veselovsky: и это правильно
[11:26:00] kpmý: а что там, risc машина?
[11:26:22] alexey.veselovsky: не, там какой-то другой подход. надо аккуратно вкурить все доки
[11:26:24] geniepro: jvm стопудово )
[11:26:30] kpmý: чо они тогда llvm не взяли
[11:26:31] alexey.veselovsky: ибо походу нам это нужно :-)
[11:26:43] kpmý: кому?
[11:26:56] alexey.veselovsky: oberonjs как минимум :-)
[11:27:26] kpmý: а
[11:33:06] alexey.veselovsky: ну и С++ же!
[11:33:37] alexey.veselovsky: надо понять в деталях как оно будет работать :-) думаю как только, так сразу я с огромным удовольствием на С++ и нашу веб-морду переведу :-)
[11:33:57] alexey.veselovsky: C++ у нас тогда будет въезде!
[11:34:27] kpmý: сектант
[11:34:36] alexey.veselovsky: инсектоид!
[11:34:47] alexey.veselovsky: причем двойной! или тройной ;-)
[11:35:15] geniepro: alexey.veselovsky: http://s1.bild.me/bilder/030315/7672579cpp.png ))
[11:35:40] alexey.veselovsky: geniepro а теперь аналог нужно для Оберона :-)
[11:35:46] alexey.veselovsky: Или даже ББ ;-)
[11:35:52] geniepro: мне лень, сделай сам )
[11:36:15] geniepro: я на обероне не работаю, а на с++биодере 6 приходится ))
[11:36:28] geniepro: против оберона ничо не имею поэтому )
[11:36:34] alexey.veselovsky: билдер 6? БОЛЬНОЙ УБЛЮДОК!!1
[11:36:50] kpmý: неужели человечество так и продолжит развивать C++
[11:37:00] geniepro: ну чо поделать, переводить на радстудию лень -- слишком много ошибок при импорте проекта )
[11:37:01] alexey.veselovsky: угу. отличный же язык!
[11:37:04] alexey.veselovsky: удобный, мощный!
[11:38:22] geniepro: билдер 6 занимает полгига на диске, последняя радстудия не поместилась у меня на 60-гиговом ссд, пришлось на ндд устанавливать ))
[11:41:26] kpmý: просто купи новый диск!
[11:45:48] geniepro: да, давно хочу но лень же ))
[11:46:40] geniepro: 60-гиговый ссд я купил чисто для пробы, не знал, что он так долго протянет у меня -- уже больше полутора лет работает вместо средних 6 месяцев
[11:47:10] alexey.veselovsky: “Fixed-width SIMD”
[11:47:16] alexey.veselovsky: “Threads”
[11:47:20] alexey.veselovsky: вкуснота!
[11:48:01] alexey.veselovsky: кстати, а вот реально, корутины в обероне нужны ли?
[11:48:09] alexey.veselovsky: ибо с точки зрения реализации они крайне просты
[11:48:20] alexey.veselovsky: а главное, ничего от железа не требуют вообще
[11:48:31] alexey.veselovsky: да и не от железа тоже. можно и на js сделать да и где угодно
[11:49:33] geniepro: ваще имхо оберон это регресс по сравнению с модулой-2
[11:49:42] alexey.veselovsky: угу
[11:50:19] alexey.veselovsky: хотя вот такой оберон как Zonnon уже сложно регрессом назвать :-)
[11:50:38] kpmý: самый популярный вопрос в гугле - how to stop coroutine :)
[11:50:56] alexey.veselovsky: бгг
[11:51:00] geniepro: оберонщики не признают зоннон как часть оберон-семейства
[11:51:03] alexey.veselovsky: до конца дойти не пробовали?
[11:51:20] alexey.veselovsky: хотя в С++ это элементарно делается. (в С++1z)
[11:51:25] kpmý: ну видимо подразумевается внешнее управление
[11:51:35] geniepro: аборт какой-нить для корутины
[11:51:40] alexey.veselovsky: вот как раз внешне в С++ это делается совсем просто
[11:52:09] alexey.veselovsky: geniepro: а они то признают то не признают. в зависимости от того, удобно им это в данном случае или нет :-D
[11:52:29] geniepro: ЭТО ЛИЦЕМЕРИЕ!!!111 расстрелять!
[11:55:14] alexey.veselovsky: :-)
[11:55:58] kpmý: ну zonnon это ж примерно как еберон, в каком-то смысле оберон, а в каком-то уже нет
[11:56:26] kpmý: хотя автору он помог устроиться в микрософт
[11:56:26] alexey.veselovsky: угу, как и КП - в каком то смысле оберон, а в каком-то уже нет :-)
[11:56:39] alexey.veselovsky: которому из авторов?
[11:56:45] kpmý: зуеву
[11:57:16] alexey.veselovsky: он не автор Зоннона
[11:57:37] kpmý: хм, а я думал что в честь него назвали
[11:57:42] kpmý: z
[11:57:44] kpmý: з
[11:57:54] alexey.veselovsky: и, по моему, он даже им и не занимался
[11:58:21] kpmý: это все, что можно сказать о роли зоннона в оберон-комьюнити)
[11:58:56] alexey.veselovsky: Зоннон это был (есть?) проект Eth и ННГУ Лобачевского
[11:59:14] alexey.veselovsky: Автор Зоннона - Юрг Гуткнехт, возможно слышал о таком? ;-)
[11:59:34] alexey.veselovsky: Jürg Gutknecht
[11:59:49] alexey.veselovsky: Да, зуев что-то там делал для зоннона.
[11:59:54] kpmý: тоже в микрософт устроился?
[11:59:55] alexey.veselovsky: скорее всего интеграцию с вижуал студией
[12:00:12] alexey.veselovsky: https://en.wikipedia.org/wiki/Jürg_Gutknecht
[12:00:22] alexey.veselovsky: вот этот чел :-)
[12:01:09] alexey.veselovsky: c учетом этого всего, Зоннон это таки больше оберон чем КП - таки один из отцов-оберонщиков его пилил :-)
[12:01:14] alexey.veselovsky: непосредственно
[12:01:55] kpmý: как у тебя подгорает от КП, весело это все наблюдать)
[12:02:43] alexey.veselovsky: с чего бы у меня подгорало? ;-) надо же просто с чем-то сравнивать зоннон
[12:02:53] alexey.veselovsky: зуев, кстати, в мелкософте вроде как и не работает
[12:03:06] alexey.veselovsky: работает в Цюрихе в универе том самом :-)
[12:03:07] geniepro: alexey.veselovsky: зуев делал компилятор зоннона
[12:09:10] alexey.veselovsky: http://www.software.unn.ru/zonnon/
[12:11:30] alexey.veselovsky: “Each function body consists of exactly one statement.”
[12:15:25] alexey.veselovsky: а все остальное - выражения!
[12:15:28] alexey.veselovsky: круто!
[12:16:16] alexey.veselovsky: да, унутре webasm’a этого сидит вполне себе ЯП со строгой статической типизации.
[12:16:21] alexey.veselovsky: типизацией
[12:16:28] alexey.veselovsky: где все есть expression
[12:16:32] alexey.veselovsky: ну или около того
[12:16:36] alexey.veselovsky: надо читать дальше
[12:16:37] kpmý: уже понятно, почему не llvm?
[12:16:49] alexey.veselovsky: потому, что llvm уровнем ниже таки
[12:17:13] alexey.veselovsky: то есть llvm это байткот, а тут будет интерпретация (или компиляция) AST
[12:17:27] alexey.veselovsky: Why not a stack-, register- or SSA-based bytecode?
•Trees allow a smaller binary encoding: JSZap <https://research.microsoft.com/en-us/projects/jszap/>, Slim Binaries <https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.108.1711>.
•Polyfill prototype <https://github.com/WebAssembly/polyfill-prototype-1> shows simple and efficient translation to asm.js.
[12:17:51] alexey.veselovsky: подход совершенно другой
[12:17:52] kpmý: бгг
[12:18:10] kpmý: я говорю, почему не выбрали llvm для браузеров
[12:18:27] kpmý: ведь без разницы, что в песочнице запускать
[12:18:36] alexey.veselovsky: дык описано же. llvm - это регистровая хрень
[12:18:46] alexey.veselovsky: и из llvm сейчас в asm.js замахаешься перетаскивать
[12:18:54] alexey.veselovsky: или просто в js
[12:19:04] ilovb: захотел себе первый айфон посмотрев презенташку http://www.youtube.com/watch?v=yzh5ASF7LR4
[12:19:06] alexey.veselovsky: llvm слишком низкоуровнево для их задач.
[12:19:53] ilovb: тьху не ту ссылку кинул https://www.youtube.com/watch?v=vN4U5FqrOdQ
[12:20:24] alexey.veselovsky: по первой ссылке, насколько я вижу, таки Cedar :-)
[12:20:34] ilovb: угу
[12:21:20] ilovb: джобс конечно гениальный торгаш
[12:22:28] alexey.veselovsky: я бы сказал презентатор и концептуатор. чисто сейлзы таки несколько другим занимаются
[12:22:41] alexey.veselovsky: я просмотрел все выступления джобса которые смог найти :-)
[12:22:56] kpmý: alexey.veselovsky: а ты где про wasm читаешь?
[12:23:07] alexey.veselovsky: на жидхабе таки
[12:24:14] kpmý: а, ок
[12:24:22] ilovb: оберонщиги в пидараст ударились https://github.com/pdewacht/oberon-risc-emu/commit/10b82d8b40d9f43b79f63c7a1353cb5e2a4ef343
[12:24:25] alexey.veselovsky: кстати, на работу Michael Franz’а они непосредственно ссылаются
[12:25:24] alexey.veselovsky: но не только на него
[12:26:45] ilovb: alexey.veselovsky: такое ощущение, что индустрия начинает осваивать идеи оберонщиков
[12:26:49] ilovb: гы гы
[12:28:21] ilovb: http://cs4.pikabu.ru/post_img/2015/07/04/11/1436034006_21393853.jpg
[12:28:21] kpmý: ну да, это ж не россиянчики, непонятные идеи не обсирают, а разбирают
[12:35:03] ilovb: alexey.veselovsky: а хде ссылаются? дай сцылку плиз
[12:35:34] alexey.veselovsky: не. наработок куча на самом деле
[12:35:39] alexey.veselovsky: стандартно же
[12:35:58] alexey.veselovsky: университеты генерят 100500 идей и дисеров
[12:36:10] alexey.veselovsky: в индустрию оно приходит лет через N, когда становится нужным
[12:37:27] ilovb: Вирт придумал Pкод, поимели джаву
[12:37:50] alexey.veselovsky: Вирт там новго ничего не сказал таки
[12:37:57] alexey.veselovsky: до него был байткод
[12:38:04] alexey.veselovsky: C-code вроде как
[12:38:05] ilovb: Вирт придумал связанные процедуры, поимели Go
[12:38:13] alexey.veselovsky: Аду
[12:38:29] alexey.veselovsky: кстати, Адовцы до сих пор плюются от этого выбора реализации ООП в Аде
[12:39:02] alexey.veselovsky: говорят самое неудачное в Аде место
[12:39:15] ilovb: alexey.veselovsky: Не знаю, не знаю. Знаю только, что Pascal первым использовал эту технологию. За счет чего собсна Pascal и поимел такую популярность
[12:39:23] alexey.veselovsky: не первый
[12:39:38] alexey.veselovsky: но популярность - да. подход набрал популярность благодаря паскалю
[12:39:39] ilovb: пруф!
[12:40:04] ilovb: кто до паскаля? где?
[12:40:22] alexey.veselovsky: BCPL
[12:40:29] alexey.veselovsky: “Although the concept was first implemented circa 1966 (as https://en.wikipedia.org/wiki/O-code for https://en.wikipedia.org/wiki/BCPL and P - a code for the Euler Language <https://en.wikipedia.org/wiki/Euler_(programming_language)>)”
[12:40:40] alexey.veselovsky: https://en.wikipedia.org/wiki/O-code
[12:41:48] alexey.veselovsky: “This idea was used in later compilers, such as p-code for some Pascal compilers and the JVM code for Java compilers. “
[12:42:51] alexey.veselovsky: вирт вообще довольно мало что изобрел
[12:42:58] alexey.veselovsky: в плане концепций
[12:43:25] ilovb: ну тык да
[12:43:46] alexey.veselovsky: ни интерфейс Оберона, ни p-code - не его изобретение.
[12:44:04] alexey.veselovsky: Интерфейс Оберона взят из Cedar также как интерфейс мака был взят из Alto
[12:45:23] alexey.veselovsky: модульность в Модуле-2 взята из Mesa
[12:45:32] ilovb: тут фишка в чем понятно, что не Вирт изобрел. Но Вирт взял эти технологии в свое детище пока остальные в носу ковырялись
[12:45:52] alexey.veselovsky: думаю с этими идеями много кто в университетах игрался
[12:46:04] kpmý: до сих пор ковыряются
[12:46:10] alexey.veselovsky: но в продакшн никто не смогу продвинуть тогда. Ни Вирт ни кто-то еще.
[12:46:50] alexey.veselovsky: впрочем, Вирт и не пытался
[12:47:07] alexey.veselovsky: пытались ББшники. Но ниасилили. И свалили на джаву и Го сами :-)
[12:57:26] ilovb: ахуеть!
[12:57:27] ilovb: http://www.cl.cam.ac.uk/~mr10/bcplman.pdf
[12:57:34] ilovb: мануал 2015 года!
[13:12:19] _valexey_: А что такое? Оно рулез!
[13:30:55] geniepro: в BCPL switch -- это expression, а не statement!!!111 даже сейчас в сишарпе нет такого!!!
[13:32:54] alexey.veselovsky: угу
[13:32:59] alexey.veselovsky: народ тогда любил expression’ы
[13:33:10] alexey.veselovsky: а вот Go какой-то совсем деревянный
[13:33:19] alexey.veselovsky: куда ни плюнь, везде statement
[13:41:23] kpmý: поехали совсем со своими expression
[13:53:56] alexey.veselovsky: это не мы, это отцы-основатели!
[13:54:05] alexey.veselovsky: а мы лишь продолжаем их дело!
[14:00:59] kpmý: я вот в своем язычке избавился от RETURN
[14:01:12] alexey.veselovsky: ну и правильно
[14:01:13] kpmý: теперь вызов даже теоретически не может быть expression
[14:01:15] alexey.veselovsky: лишняя сучность!
[14:01:24] alexey.veselovsky: будет как в ерланге!
[14:01:39] alexey.veselovsky: хотя, как это противоречит вызову как expression?
[14:01:48] alexey.veselovsky: или у тебя теперь функции всегда возвращают void? ;-)
[14:02:08] kpmý: это не функции
[14:02:14] alexey.veselovsky: функции
[14:02:39] kpmý: нет такого понятия)
[14:02:59] alexey.veselovsky: есть! :-) вот что такое скажем процедура - не понятно. нет такого понятия!
[14:03:08] kpmý: бла бла
[14:03:18] alexey.veselovsky: именно
[14:05:47] kpmý: функции появятся, если ввести такое понятие, а если не вводить, то и не появятся
[14:06:16] alexey.veselovsky: так у тебя там что, функции возвращают таки всегда void?
[14:06:43] kpmý: функции отсутствуют как понятие
[14:06:49] kpmý: и как сущность тоже)
[14:07:18] alexey.veselovsky: ужас. вот так взял, и выпилил из оберона функции!
[14:07:27] kpmý: ага
[14:07:38] alexey.veselovsky: ХЕНТАЙ!
[14:08:28] kpmý: гуро!
[14:27:48] geniepro: kpmý: так у тебя нет всяких ABS SIN EXP и прочего? о_О
[14:28:32] geniepro: kpmý: эх, затягивает тебя трясина тьюринговая )))
[14:42:38] Kemet: А что там за ссылку Илов давал?
[14:43:05] alexey.veselovsky: bcpl?
[14:43:16] Kemet: Про оберонщиков и педерастию
[14:43:20] alexey.veselovsky: документация про ЯП bcpl от 2015 года
[14:43:30] alexey.veselovsky: а, ну это пидоРастия
[14:43:38] alexey.veselovsky: на rust эмулятор пробуют переписать :-)
[14:44:56] Kemet: alexey.veselovsky, А, ну тоже годное дело, чем брльше эмуляторов оберона на разных платформах, тем лучше
[14:45:10] alexey.veselovsky: ну, платформа то та же, но ЯП другой
[14:45:22] alexey.veselovsky: и не эмулятор оберона, а эмулятор RISC’а виртовского
[14:47:38] Kemet: alexey.veselovsky, Ну я понял, что проц, а на чем тот эмуль раньше писан был?
[14:48:12] alexey.veselovsky: Си конечно
[14:48:22] alexey.veselovsky: С99, сколь я помню
[14:52:17] Kemet: Дык на расте ж кошерней
[14:52:33] alexey.veselovsky: не уверен
[14:52:52] alexey.veselovsky: лучше если делать реализацию, то на языке который уже устаканился
[14:52:56] alexey.veselovsky: идеально если есть на язык стандарт
[14:53:12] alexey.veselovsky: (и этого стандарта таки придерживаются вендоры)
[15:08:41] alexey.veselovsky: о! оборонкор форум не открывается
[15:08:43] alexey.veselovsky: ВАХАХА
[15:08:48] alexey.veselovsky: вот, как-то так
[15:23:32] geniepro: авторы раста обещали, что в дальнейшем будет лишь расширение языка, без ломающих изменений
[15:44:19] alexey.veselovsky: мало ли что они там обещали..
[15:44:55] alexey.veselovsky: пока не появится вторая реализация, сторонняя, с которой они будут считаться и не появится стандарт на язык, язык является не стабильным
[16:10:47] geniepro: ну дык например у сишарпа и явы нет вторых сторонних реализаций, с которыми считаются авторы языка -- эти языки тоже нестабильны? о_О
[16:11:00] alexey.veselovsky: да
[16:11:06] alexey.veselovsky: потому, что один вендор крутит как хочет
[16:11:23] alexey.veselovsky: например в результате mono и её компилятор - говно
[16:11:36] alexey.veselovsky: и приложения получаются абсолютно не переносимыми
[16:12:13] geniepro: но тем не менее в промышленности и сишарп и ява уже заняли своё подавляющее место, даже плюсы им завидуют ))
[16:14:09] alexey.veselovsky: с явой все сложнее - там таки было много реализаций и они как-то сообща это дело когда-то обсуждали.
[16:14:55] alexey.veselovsky: ну, допустим objc тоже занял свое подавляющее место, что даже жаба и шарп ему завидует :-)
[16:16:06] alexey.veselovsky: но это не значит что оно стабильное и безопасное для использования
[16:16:22] alexey.veselovsky: ибо завтра вот ябблу зачешется, и не станет актуального инструментария и реализации языка
[16:28:35] geniepro: в научную роту конкурс 5 тел на место
[16:29:36] geniepro: http://kret.com/ru/news/3870/
[16:37:21] Kemet: geniepro, И все оберонщеги?
[16:38:17] geniepro: ну, может кто из них и слышал про оберон, кто знает )))
[16:50:09] alexey.veselovsky: военщина нинужна!
[16:50:12] alexey.veselovsky: всем пис!
[17:03:15] alexey.veselovsky: http://lenta.ru/news/2015/07/05/newhorizons/
[17:03:17] alexey.veselovsky: :-(
[17:13:48] alexey.veselovsky: http://geektimes.ru/post/252996/
[17:25:15] geniepro: alexey.veselovsky: хочешь пис -- готовься к вар
[17:28:40] geniepro: geektimes.ru/post/252988/
[17:28:57] alexey.veselovsky: хочешь себе такую? ;-)
[17:37:07] geniepro: девушку? да )))
[18:10:00] akastargazer: Кто хорошо знает лицензию GPL? Подпадают ли скриншоты, сделанные свободной программой, под GPL?
[18:10:20] alexey.veselovsky: что значит сделанные?
[18:10:49] alexey.veselovsky: если у тебя скажем gpl текстовый редактор и ты в нем пишешь ну, не знаю, на Обероне код, то твой код не подпадает под GPL
[18:10:52] alexey.veselovsky: 100 процентов
[18:11:20] akastargazer: Прога Celestia, красиво рендерит планеты солнечной системы.
[18:11:36] akastargazer: Я оттуда хочу скринов вручную понаделать
[18:12:00] alexey.veselovsky: картинки и прочая медия ОЧЕНЬ редко подпадает под GPL
[18:12:10] akastargazer: Распространять Celestia ни в каком виде я не буду, только скрины из неё
[18:12:19] akastargazer: Скрины это ведь не код
[18:12:21] alexey.veselovsky: но надо смотреть детально какая лицензия там на контент
[18:12:33] alexey.veselovsky: она либо более свободная чем код обычно, либо намного более строгая
[18:12:42] alexey.veselovsky: скрины это контент
[18:14:30] alexey.veselovsky: если оно конечно не полностью процедурно их генерит конечно
[18:15:37] akastargazer: Не, никакого использования кода Celestia в конечном продукте нет. Только контент. Контент вроде по отдельной лицензии идёт. А в самой Celestia обычный GNU GPL
[18:16:07] alexey.veselovsky: ну коль по отдельной лицензии, вот и смотри ту отдельную лицензию
[18:16:55] akastargazer: А её и нету в Celestia
[18:17:06] alexey.veselovsky: я бы посоветовал задать им вопрос
[18:17:13] alexey.veselovsky: надежней всего
[18:17:19] akastargazer: Да, это разумно
[18:18:17] geniepro: akastargazer: а на скриншотах будут какие-то символики или детали интерфейса этой Целестии? если нет -- то пофиг на лицензии -- в пайнте нарисовал и всё тут! ))
[18:18:45] alexey.veselovsky: не, так дела не далаются
[18:20:18] geniepro: что-то я не слышал о каких-то лицензифх на рендеринги, сделанные во всяких Майях или 3ДСтудиях
[18:20:43] alexey.veselovsky: зато я слышал. если там например использовались текстуры
[18:20:59] alexey.veselovsky: еще раз - это готовая модель (не тобой сделаная), текстуры и так далее
[18:21:18] alexey.veselovsky: в данном случае вся твоя работа - это нажатие на кнопку принтСкрин.
[18:23:53] alexey.veselovsky: под Апокалиптику неплохо формулки в тетрадочке пишутся :-)
[18:47:06] kpmý: geniepro> kpmý: так у тебя нет всяких ABS SIN EXP и прочего? о_О

есть, но там переменную для результата нужно передавать в виде VAR-параметра, и RETURN как команда отсутствует, процедура просто завершается и возвращает управление твоему коду, а результат уже записан куда тебе надо, плюс инфиксная запись если хочется чего-то оператороподобного
[18:50:49] geniepro: kpmý: для полноты тебе надо отказаться от +- итд и от оператора присваивания )))
[18:51:11] alexey.veselovsky: операторы сравнения всякие тоже нужно туда же :-)
[18:51:32] alexey.veselovsky: добавить предопределенные функции вида например LE(a,b,res);
[18:52:05] kpmý: да я бы отказался, но у вирта красиво сделано разделение знаков и идентификаторов, не хотел ломать эту часть
[18:52:28] kpmý: а то бы пришлось думать, как описывать процедуры <= и тд, не оче увлекательно
[18:53:13] kpmý: плюс все диадные операторы однообразные, их обработку можно радикально упростить, засунув в компилятор непосредственно
[18:54:08] kpmý: а так-то конечно, кто захочет написать LE для матриц, то норм, можно писать IF m0 \LE m1 THEN
[18:57:54] kpmý: а присваивание не оператор, а statement
[19:02:52] geniepro: statement = оператор, operator = операция
[19:03:19] geniepro: хотя в сишных языках присваивание именно операция )
[19:05:14] alexey.veselovsky: не в сишных, а в алголе :-)
[19:05:18] alexey.veselovsky: в алгольных :-)
[19:05:26] geniepro: http://img-fotki.yandex.ru/get/6207/1696114.fe/0_e5c3a_785da1a_XL
[19:05:46] geniepro: alexey.veselovsky: паскаль тоже алгольный язык, но в нём не так
[19:05:59] alexey.veselovsky: паскаль - недоалгольный
[19:06:14] alexey.veselovsky: на совсем древней версии алгола базируется
[19:22:16] geniepro: http://ria.ru/radio_brief/20150628/1091085139.html
"На минувшей неделе правительство Эстонии удовлетворило ходатайства 68 человек об отказе от эстонского гражданства. Из них 58 готовятся к получению гражданства РФ. Остальные станут гражданами различных европейских стран."
[19:30:07] geniepro: http://alexey-donskoy.livejournal.com/187964.html
[19:30:38] alexey.veselovsky: USSR нинужен
[19:31:44] geniepro: валексей нинужен
[19:38:39] geniepro: http://ic.pics.livejournal.com/camandante/14708873/97440/97440_original.jpg
[19:39:36] geniepro: http://camandante.livejournal.com/166653.html?thread=1450493#t1450493
[19:47:07] alexey.veselovsky: STRINGS!
[20:05:40] kpmý: geniepro: мне больше нравится версия, в которой statement - инструкция
[20:06:13] alexey.veselovsky: а мне - где statement это statement, а instruction это instruction :-)
[20:08:07] kpmý: поганый жидоанглофил-русофоб
[20:08:28] alexey.veselovsky: приятно познакомиться. А я - Алексей :-)
[20:08:43] kpmý: алексей-жидоанглофил-русофоб
[20:09:04] alexey.veselovsky: тебя так зовут? Тёзка! Почти тёзка :-)
[20:09:43] kpmý: не тезка ты мне, жидяра :)
[20:11:38] alexey.veselovsky: Чорт. Походу сестра хочет с Си и С++ соскочить на какой-то другой язык!
[20:12:33] kpmý: интуитивно чует, что дальше будет только хуже
[20:12:39] kpmý: крысы бегут с корабля
[20:14:36] kpmý: вот у америкосов есть джава и плюсы, у японии есть руби, у швейцарии оберон, даже у голландии есть питон
[20:14:56] kpmý: а у россии ничего нет, кроме 1с
[20:16:30] kpmý: надо короче срочно переводить яп на эсперанто и переназвать в инноланг, может в иннополисе примут)
[20:16:51] kpmý: на эсперанто оно красиво выглядит
[20:16:56] kpmý: правда непонятно нихуя
[20:16:59] kpmý: но красиво
[20:25:24] geniepro: alexey.veselovsky: посоветуй сеструхе хаскель -- скажи, что это с++, сделанный правильно!!! )))
[20:27:45] alexey.veselovsky: правильно сделанный С++ это D :-)
[20:29:24] geniepro: D -- это ваще никто и звать его никак!!!
[20:30:03] geniepro: а у хацкеля даже есть с++-препроцессор!!!111
[20:30:08] alexey.veselovsky: Ж-)
[20:32:47] alexey.veselovsky: хацкель - жручий память ленивый тормоз со сборщиком мусора
[20:32:54] alexey.veselovsky: да еще и с рантаймом
[20:32:57] alexey.veselovsky: НИНУЖЕН!
[20:34:08] alexey.veselovsky: А, нет. Ошибся. Сестре как раз С++ очень даже нравится, и чем дальше тем больше. А про другие ЯП там её кто-то спрашивал, и она форварднула вопрос мне :-)
[21:49:31] ilovb: хм, виртовский компилер умеет шестнадцатиричные литералы реалов
[21:49:43] ilovb: а в репорте об этом ни слова
[21:54:05] alexey.veselovsky: с добрым утром!
[21:54:16] alexey.veselovsky: виртовский компилер реализует не Оберон который в репорте
[21:54:27] alexey.veselovsky: он там еще и другие литералы умеет :-)
[21:54:47] alexey.veselovsky: в Project Oberon язык не Оберон из репорта, увыс
[22:06:35] ilovb: ну ну не гони лошадей
[22:06:48] ilovb: в прожекте чутку расширенный язык
[22:06:52] ilovb: но не другой
[22:07:11] alexey.veselovsky: где-то расширенный, где-то имеет другую семантику. но общее множество довольно таки велико, да.
[22:07:20] ilovb: а расширен он надо понимать по причине миграции со старого репорта
[22:07:30] alexey.veselovsky: не
[22:07:40] alexey.veselovsky: кстати, там и типы другие, в PO2013 этом
[22:07:43] alexey.veselovsky: не обероновские
[22:07:48] ilovb: например?
[22:07:57] alexey.veselovsky: например там есть LONGINT
[22:08:02] ilovb: хе хе
[22:08:12] ilovb: так это и есть поддержка при миграции
[22:08:14] alexey.veselovsky: заманался портировать тогда
[22:08:36] ilovb: LONGINT == INTEGER
[22:08:44] alexey.veselovsky: не, там еще есть и литералами расширение, и семантика CASE другая и так далее и тому подобное.
[22:08:50] alexey.veselovsky: а SHORTINT тогда что? :-)
[22:08:54] ilovb: он так сделал чтобы не париться со старыми исходниками
[22:09:00] alexey.veselovsky: у Вирта же всегда был 32битный комп
[22:09:07] alexey.veselovsky: что в 1988 году, что вот сейчас
[22:09:21] ilovb: шорт наверно тоже INTEGER
[22:09:33] alexey.veselovsky: ну, то есть возможно он таки сведет два языка в один, а может и нет :-)
[22:09:39] alexey.veselovsky: Вирт он тут все может :-)
[22:09:46] ilovb: сведет не боись
[22:10:02] ilovb: все исходники разом перекроить физически очень сложно
[22:10:06] alexey.veselovsky: эмм.. у меня нет такой уверенности :-)
[22:10:13] ilovb: тем более в обероновом редакторе
[22:10:17] alexey.veselovsky: ну он далеко не первый год их перекраивает же :-)
[22:10:27] ilovb: там же даже курсор с клавы не двигается
[22:10:28] alexey.veselovsky: да, говноредактор тот еще
[22:10:39] alexey.veselovsky: на каждую правку - за мышой тянуться
[22:10:42] alexey.veselovsky: брр
[22:10:46] * alexey.veselovsky писал там
[22:11:12] alexey.veselovsky: и сразу хочется все писать в одну строчку, и идентификаторы покороче :-)
[22:11:22] ilovb: кста, этот стиль виртовский с леплением статементов частично с этим связан наверно
[22:11:33] alexey.veselovsky: хез
[22:11:43] alexey.veselovsky: надо бы глянуть что там в оригинальном обероне с редактором было
[22:11:59] alexey.veselovsky: ибо на модуле-2 у него код таки повменяемее был
[22:12:00] ilovb: там можно было двигать
[22:12:19] ilovb: странно что он выпилил
[22:12:28] alexey.veselovsky: вот именно в первоначальном, который точно-точно в 1988 году был?
[22:12:56] ilovb: хз
[22:13:01] ilovb: я смотрел V4
[22:13:15] alexey.veselovsky: ну вот возможно изначально там тоже была содомия
[22:13:31] alexey.veselovsky: ну оно и понятно - народу в руки попала МЫШЬ!
[22:13:36] alexey.veselovsky: новое чудо техники!
[22:13:42] alexey.veselovsky: НАДО ВСЕ ДЕЛАТЬ ЕЙ!
[22:13:50] alexey.veselovsky: новая коньцепция интерфейса!
[22:14:13] * alexey.veselovsky думает как же убого и неудобно писать формулы в mathtype’e мышкой!
[22:14:17] alexey.veselovsky: это ж кошмар!
[22:15:54] ilovb: я тут кстати форматирую исходники потихоньку
[22:16:01] ilovb: уже треть отформатировал
[22:16:19] alexey.veselovsky: ну, в пропорциональном шрифте как ни форматируй оно один фиг как говно смотрится
[22:16:29] ilovb: количество однострочных IF WHILE REPEAT зашкаливает
[22:16:35] alexey.veselovsky: особенно если пропорциональный шрифт и тупой фиксированный таб как у Вирта
[22:17:21] ilovb: а при чем тут пропорциональный шрифт? я для гитхаба форматирую
[22:17:37] alexey.veselovsky: это понятно. но в Обероне оно будет смотреться…
[22:17:38] ilovb: чтоб народ не тошнило от количества статементов на строчку кода
[22:19:34] ilovb: видел гошный компилер?
[22:19:45] alexey.veselovsky: который из?
[22:20:06] ilovb: оригинальный
[22:20:18] alexey.veselovsky: на Си который? видел
[22:20:28] ilovb: нет на Go
[22:20:31] ilovb: который
[22:20:36] alexey.veselovsky: а это уже не оригинальный :-)
[22:20:48] alexey.veselovsky: это уже последующее полуавтоматическое переписывание кода было
[22:20:49] ilovb: на си это временно было
[22:21:17] ilovb: в общем смотрю компилятор go на go
[22:21:20] alexey.veselovsky: все в этом мире временно :-)
[22:21:27] ilovb: написан просто охуенно
[22:21:38] * alexey.veselovsky смотрел go на си, go на go, go на с++
[22:22:15] ilovb: go-шные фишки очень органично используются в компилере
[22:22:25] alexey.veselovsky: лямбды? ;-)
[22:22:43] ilovb: срезы, множественное присваивание, литералы массивов
[22:23:01] ilovb: map'ы etc
[22:23:09] alexey.veselovsky: стуктурные литералы они да. без них ни один современный ЯП не мыслим
[22:24:15] ilovb: еще охуенная фича, это методы у любых типов
[22:24:30] alexey.veselovsky: угу. и это тоже фичи современных языков
[22:24:33] alexey.veselovsky: у того же шарпа :-)
[22:24:43] ilovb: они там делают тип Token = int
[22:24:48] alexey.veselovsky: пришло из смалтолка :-D
[22:24:55] alexey.veselovsky: точнее это даже не методы как таковые
[22:25:00] alexey.veselovsky: это нечто похожее на тайпклассы
[22:25:05] ilovb: потом задают массив где каждому токену соответствует строковое представление
[22:25:14] ilovb: а потом метод String
[22:25:25] ilovb: и вуаля можно печатать литералы
[22:25:33] ilovb: тьху токены
[22:25:50] alexey.veselovsky: ну, там еще и RTTI неплохо помогает местами
[22:27:01] ilovb: я вот только одного не пойму в го
[22:27:50] ilovb: почему они не сделали явное указание имплементируемых интерфейсов
[22:28:08] alexey.veselovsky: потому что это одна из основных фич го :-)
[22:28:16] alexey.veselovsky: обсуждали помнится
[22:28:48] ilovb: не ну прикольно конечно, но нахуя?
[22:29:00] ilovb: ведь неэффективно
[22:29:10] alexey.veselovsky: http://oberspace.dyndns.org/index.php/topic,224.msg5085.html#msg5085
[22:29:14] alexey.veselovsky: эффективно
[22:31:11] ilovb: ну не так эффективно как могло бы быть
[22:31:27] alexey.veselovsky: нормально там с эффективностью все. не парься :-)
[22:31:30] ilovb: оверхед там все равно есть, я читал про реализацию
[22:31:43] ilovb: но меня больше другой вопрос волнует
[22:31:46] alexey.veselovsky: у виртуальной функции тоже оверхед есть
[22:32:22] ilovb: вот я сделал свой тип с методом Read()
[22:32:55] ilovb: перелаю этот тип в стороннюю либу где ожидается интерфейс Reader
[22:33:04] ilovb: все хорошо
[22:33:27] ilovb: потом в этой сторонней либе меняют на ReadWriter и все приехали
[22:33:42] ilovb: все компилируется но нихуя не работает
[22:33:56] ilovb: иди ищи че ты не имплементировал
[22:34:31] alexey.veselovsky: А что ты там такого не имплементировал?
[22:34:44] alexey.veselovsky: оно ж руганется если ему кроме Read нужно что-то там еще
[22:34:58] ilovb: не не
[22:35:09] ilovb: Там например switch стоит
[22:35:28] ilovb: раньше стоял на Reader
[22:35:30] alexey.veselovsky: а оно в компайл тайме один фиг руганется
[22:35:35] ilovb: а теперь на ReadWriter
[22:35:43] alexey.veselovsky: короче, show me code :-)
[22:35:54] alexey.veselovsky: благо в Go этот код можно и в вебе набрать
[22:36:00] ilovb: да нету у меня кода
[22:36:13] ilovb: завтра попробую изобразить
[22:36:20] alexey.veselovsky: окай
[22:36:30] ilovb: ща лень
[22:36:34] alexey.veselovsky: ок
[22:37:35] alexey.veselovsky: надо думать про рефакторинг формул! вот
[22:39:23] ilovb: alexey.veselovsky: еще вопрос
[22:39:52] ilovb: на кой хуй в связанных функциях можно основной параметр по значению?
[22:40:22] alexey.veselovsky: примерно затем же зачем и в других функциях же :-)
[22:40:39] alexey.veselovsky: это ж вам не Оберон ;-)
[22:40:53] ilovb: ну в обероне как раз логично
[22:41:04] ilovb: там рекорды только по ссылке можно
[22:41:08] ilovb: VAR то биш
[22:41:18] alexey.veselovsky: на Обероне пытались изобразить ООП, тут не пытаются :-) это даже не методы ;-)
[22:41:34] ilovb: не понял
[22:41:40] ilovb: не вижу разницы с обероном
[22:41:57] alexey.veselovsky: с обероном там общего - только похожий синтаксис объявления тащемто
[22:42:09] ilovb: да нет
[22:42:14] ilovb: вообще один в один
[22:42:21] ilovb: с Oberon 2
[22:42:22] alexey.veselovsky: нет да. попробуй в обероне объявить метод для INTEGER’a
[22:42:42] ilovb: да это уже свистелки
[22:42:56] alexey.veselovsky: + наличие отсутствия наследования как такового
[22:43:03] ilovb: основная идея 1:1 с оберона слизана
[22:43:18] alexey.veselovsky: 1 в 1 на оберон будет похожа ява в этом смысле, если из явы выпилить нафиг интерфейсы
[22:43:27] alexey.veselovsky: а какая там основная идея то?
[22:43:52] ilovb: тык связанные процедуры
[22:44:11] alexey.veselovsky: дык и чем эти связанные процедуры отличаются семантически от методов в жабе?
[22:44:38] alexey.veselovsky: ну, тоесть у Го то есть отличия, а вот у Оберона - нет.
[22:44:38] ilovb: тем что это не методы
[22:44:56] alexey.veselovsky: выше ты говорил что это таки методы :-) ты определись давай :-)
[22:45:08] alexey.veselovsky: но ты конкретно разное поведение покажи где имеется
[22:45:18] alexey.veselovsky: у оберон-2 связанных процедур и у жаба-методов
[22:45:34] ilovb: как объявляется в жабе метод?
[22:45:51] alexey.veselovsky: вопрос не как объявляется (ибо это синтаксис) а чем отличается поведение
[22:45:58] ilovb: блять ну ты тугой
[22:46:05] ilovb: это и есть главная фича
[22:46:16] alexey.veselovsky: синтаксис объявление главная фича?
[22:46:18] alexey.veselovsky: ока-ай
[22:46:21] ilovb: да
[22:46:22] alexey.veselovsky: :-D
[22:46:33] ilovb: ебать ты до сих пор этого не знаешь?
[22:47:03] ilovb: вся соль в том, чтобы не вкручивать классы и все семантику с ними связанную
[22:47:09] alexey.veselovsky: ну, если у оберона можно позаимствоать только маленький кусочек синтаксиса.. если это единственное что в нем есть ценного.. да уж :-)
[22:47:38] ilovb: alexey.veselovsky: Ну ты очевидно умнее авторов Go хуле там
[22:47:46] alexey.veselovsky: дык как у тебя семантика с синтаксисом опять переплелась? синтаксически ООП можно изобразить как угодно. при этом семантика от этого не зависит
[22:48:12] ilovb: alexey.veselovsky: В обероне нет классов и ничего с ними связанного
[22:48:19] alexey.veselovsky: ну, например в lisp’e синтаксис совершенно другой, собственно даже ключевого слова class может не быть (например в ObjC его нет), но от этого семантика не меняется
[22:48:20] ilovb: вот совсем совсем
[22:48:34] ilovb: а связанные процедуры есть
[22:48:37] ilovb: охуеть да?
[22:48:43] ilovb: и в го то же самое
[22:48:48] alexey.veselovsky: если я в обероне заменю ключевое слово record на ключевое слово class - что-то изменится?
[22:49:05] ilovb: ничего не изменится как был рекорд так и останется
[22:49:28] alexey.veselovsky: в го совершенно другое - там нет наследования совсем. в обероне оно есть. и в обероне-2 наследование классов (рекордов, ога) таки влияет на вызов методов.
[22:49:43] alexey.veselovsky: классическое ООП с одинарным наследованием и виртуальными функциями имеем
[22:49:49] alexey.veselovsky: подмножество С++ :-)
[22:50:14] ilovb: всегда поражаюсь твоей призме восприятия
[22:50:26] alexey.veselovsky: я рад и польщен :-)
[22:51:28] ilovb: у тебя какой-то орган для понимания оберонов отсутствует
[22:51:38] alexey.veselovsky: на самом деле единственное отличие оберона от жабы тут (за вычетом интерфейсов) в том, что единицей инкапсуляции в жабе является класс, а в обероне модуль. хотя и тут отличие весьма условное, ибо в жабе класс это и есть модуль :-)
[22:52:24] alexey.veselovsky: в каком-то смысле слова
[22:52:57] alexey.veselovsky: то есть в жабе программа бьется на более мелкие кусочки чем в обероне
[22:53:11] ilovb: ты хочешь сказать что тут есть что-то общее с процедурами оберона 2?
[22:53:12] ilovb: http://developer.alexanderklimov.ru/android/java/class.php
[22:53:29] alexey.veselovsky: но при этом абсолютно пофигу где именно будет объявлен и определен метод - до фигурной закрывающейся скобки или после. это лишь синтаксис.
[22:53:38] ilovb: да не пофиг
[22:53:48] ilovb: ты нихуя не понял опять
[22:53:56] alexey.veselovsky: это всего лишь синтаксис
[22:54:00] ilovb: в обероне классов нет
[22:54:04] ilovb: ни синтаксически
[22:54:09] ilovb: ни симантически
[22:54:22] ilovb: там просто доп параметр у рекорда
[22:54:23] ilovb: и все
[22:54:40] ilovb: в этом была вся суть оберона 2
[22:54:45] alexey.veselovsky: ну вот какая разница как писать: class A {}; method1(A, args); method2(A, args);
[22:54:56] ilovb: ну подумай
[22:55:07] alexey.veselovsky: или же class A{…; method1(args); method2(args);} ?
[22:55:12] ilovb: думай думай
[22:55:23] alexey.veselovsky: сам думай, и пойми наконец что это лишь синтаксис
[22:55:33] ilovb: ахаха
[22:56:00] alexey.veselovsky: впрочем, синтаксис оберон-варианта видимо менее удачный. Адовцы его регулярно кушают с 1995 года, и регулярно плюются.
[22:56:32] ilovb: разница в том валексей что компилятор на порядок проще без классов
[22:57:05] alexey.veselovsky: компилятор на порядок проще без глабального вывода типов. а синтаксис тут абсолютно вторичен :-)
[22:57:12] ilovb: я блять поражаюсь как ты с пеной у рта споришь про обероны и нихуя про них не знаешь
[22:57:46] alexey.veselovsky: https://github.com/vladfolts/oberonjs/wiki/Eberon-Methods
[22:57:56] alexey.veselovsky: вот Влад добавил в еберон методы в сами рекорды
[22:58:06] alexey.veselovsky: то есть получились таки классы, в твоем понимании
[22:58:14] alexey.veselovsky: по крайней мере синтаксис не отличим от жабы
[22:58:20] alexey.veselovsky: но компилятор на стал напорядок проще
[22:58:24] alexey.veselovsky: Сюрприз? ;-)
[22:58:30] ilovb: ахуеть ты кадр
[22:58:34] ilovb: компилятор проще???
[22:58:38] ilovb: владовский то?
[22:58:40] ilovb: ахахаха
[22:58:43] alexey.veselovsky: тьху
[22:58:48] alexey.veselovsky: не стал на порядок сложнее
[22:58:51] alexey.veselovsky: вот
[22:59:03] alexey.veselovsky: была реализация Оберона, стала реализация еберона
[22:59:07] ilovb: да владовский компилятор не на один порядок сложнее
[22:59:07] alexey.veselovsky: с классами
[22:59:12] alexey.veselovsky: однако существенного усложнения нет
[22:59:20] alexey.veselovsky: так что иди фпень :-)
[22:59:37] ilovb: ты хоть смотрел в этот компилятор?
[22:59:49] alexey.veselovsky: конечно. отлично читается.
[22:59:56] alexey.veselovsky: я его даже отлаживал и баги правил, а что? ;-)
[23:00:11] ilovb: свят свят
[23:00:11] alexey.veselovsky: уж всяко проще и читабельней чем компилятор вирта :-)
[23:00:20] ilovb: ой не пизди
[23:00:33] alexey.veselovsky: если бы не на js был писан, то было бы совсем няшно :-)
[23:00:42] ilovb: проще виртовского компилятора придумать сложно
[23:00:57] alexey.veselovsky: у виртовского компилятора адское мясо в потрохах
[23:01:03] ilovb: не пизди
[23:01:04] alexey.veselovsky: ну его нафиг
[23:01:22] ilovb: так можно сказать только если совсем в него не смотрел
[23:01:25] alexey.veselovsky: то есть мне намного проще что-то поменять в компиляторе Влада чем в компиляторе Вирта
[23:01:56] ilovb: у вирта код совершенно простецкий как в книге построение компиляторов
[23:02:03] alexey.veselovsky: ну, поскольку Виртовский компилятор я портировал (с изменение исходников), то возможно я все же знаю о чем говорю :-) И при этом я правил и компилятор Влада
[23:02:17] ilovb: к слову сказать у авторов го код точно такой же
[23:02:39] alexey.veselovsky: ну оно и понятно - он же машиной транслирован в Go из Си. :-)
[23:02:43] ilovb: но вы с vlad конечно всех умней и знаете как проще
[23:03:31] ilovb: alexey.veselovsky: я не знаю что там транслировано, но то, что я смотрел точно руками написано
[23:03:31] alexey.veselovsky: виртовский код действительно весьма похож на выхлоп кодогенератора
[23:03:33] alexey.veselovsky: конечно
[23:03:42] ilovb: ой пиздабол
[23:03:57] alexey.veselovsky: взаимно :-)
[23:04:22] ilovb: ок если ты не пиздабол
[23:04:42] ilovb: то перепишешь виртовский компилер проще и понятнее чем у вирта
[23:04:56] ilovb: вот я поржу с твоего усера
[23:05:04] alexey.veselovsky: ну вот у Влада, на мой вкус, удалось проще и понятней :-)
[23:05:38] ilovb: давай давай
[23:05:53] ilovb: может обзор запилишь с детальным сравнением что проще у влада?
[23:06:07] alexey.veselovsky: что именно тебе давать? поскольку критерии понимабельности и простоты у нас с тобой походу разные, то очевидно не стоит даже и затевать :-)
[23:06:19] alexey.veselovsky: может и запилю :-)
[23:06:36] ilovb: Ну берешь парсер и говоришь вот тут у вирта нихуя не понятно, а у влада любой дебил поймет
[23:06:50] ilovb: давай давай
[23:06:53] ilovb: будет весело
[23:07:07] alexey.veselovsky: как минимум - познавательно
[23:07:31] ilovb: очень познавательно для тебя
[23:07:36] alexey.veselovsky: впрочем, у этого low priority
[23:07:53] alexey.veselovsky: есть в плане оберона, более практичные задачи которые нужно реализовать :-)
[23:08:11] ilovb: я хз каким сбоем в головном мозге нужно обладать чтобы назвать виртовский компилер сложным
[23:08:41] alexey.veselovsky: давай давай
[23:08:43] alexey.veselovsky: думай :-)
[23:09:04] ilovb: да я то уже много думал
[23:09:14] ilovb: и читал виртовский компилер
[23:09:27] ilovb: прикинь все с первого раза понятно и сразу
[23:09:28] alexey.veselovsky: but there is no success? :-)
[23:09:45] ilovb: и владовский читал тоже
[23:09:52] ilovb: нихуя не понял
[23:09:58] ilovb: вообще
[23:10:06] alexey.veselovsky: я не знаю какой надо иметь вывих мозга чтобы считать Владов компилятор сложным и не понятным :-)
[23:10:19] ilovb: а вот гошный читаю и тоже все понимаю сразу
[23:10:42] ilovb: а владовский читаю и нихуя не понятно
[23:10:57] alexey.veselovsky: бывает. вправляй мозг так, чтобы везде понимать
[23:11:05] ilovb: а еще я читал Linz Oberon и CP и всякие другий обероны и тоже все понятно
[23:11:14] ilovb: а владовский читаю и нихуя не понятно
[23:11:17] ilovb: как так?
[23:11:20] ilovb: я тупой?
[23:11:37] alexey.veselovsky: скорее однобоко развитый
[23:11:41] ilovb: почему мне понятен любой компилер кроме владовского?
[23:12:11] alexey.veselovsky: гм. то есть ты намекаешь, что скажем gcc’шный компилятор С++ тебе понятен с первой попытки? ;-)
[23:12:21] ilovb: не знаю, не читал
[23:12:45] ilovb: а ну еще читал LLVM
[23:12:55] ilovb: говень кромешная, но более менее понятно
[23:12:57] alexey.veselovsky: ну, llvm это не компилятор
[23:13:16] alexey.veselovsky: ты бы лучше фронтенды к нему почитал
[23:13:41] alexey.veselovsky: но ты этта.. давай мозг вправляй
[23:13:55] alexey.veselovsky: например начни с понимания листинга в конце вот этой страницы: https://rxcpp.codeplex.com
[23:13:58] alexey.veselovsky: ;-)
[23:16:01] ilovb: ебать что это за говень?
[23:16:18] alexey.veselovsky: о, норм реакция :-) ожидаемая!
[23:16:31] alexey.veselovsky: теперь упражнение - разбираться в этом пока не поймешь и не полюбишь!
[23:16:36] ilovb: alexey.veselovsky: Я тебе открою тайну великую только тсссссс
[23:17:06] ilovb: alexey.veselovsky: Есть программисты-пидарасы, про которых не принято говорить
[23:17:30] ilovb: alexey.veselovsky: Они пишут сложный код, потому-что комплексуют из-за чего-то
[23:17:36] alexey.veselovsky: ну да, вот про оберонщиков обычно не говорят и про 1Сников :-) на хабре и тех и других редко упоминают и только в соответствующих темах!
[23:18:22] ilovb: alexey.veselovsky: Ты слушай. Так вот все программисты делятся на тех кто подавил в себе зарождающегося пидараса
[23:18:31] ilovb: alexey.veselovsky: И тех кто не подавил
[23:19:11] ilovb: alexey.veselovsky: Так вот те кто не подавил, думают что все вокруг тупые. А все совсем не так. И даже наоборот. Умные пишут простой код.
[23:19:31] ilovb: alexey.veselovsky: А сложный код пишут тупые пидарасы
[23:19:31] alexey.veselovsky: ну вот по ссылке - простой код!
[23:19:40] alexey.veselovsky: фигли там сложного то?
[23:20:40] ilovb: что делает этот код?
[23:21:26] ilovb: ау
[23:21:33] ilovb: что он делает?
[23:22:44] ilovb: ауууу
[23:23:03] alexey.veselovsky: так, я тут
[23:23:05] alexey.veselovsky: ась?
[23:23:22] ilovb: что делает этот код?
[23:24:24] ilovb: ау
[23:24:31] alexey.veselovsky: да погодь ты
[23:24:34] alexey.veselovsky: я печатаю
[23:25:00] ilovb: ты не можешь ответить что делает этот простой код?
[23:25:16] alexey.veselovsky: я не могу ответить в одно короткое предложение
[23:25:45] ilovb: вау
[23:26:10] ilovb: простой код в одним предложением не описать
[23:26:14] alexey.veselovsky: но если коротко - судя по всему выводит тройки чисел где x^2+y^2 = z^2 в диапазоне от 1 до 100
[23:26:19] alexey.veselovsky: это если про результат
[23:26:31] ilovb: судя по всему? ахаха
[23:26:34] alexey.veselovsky: но это пример
[23:26:41] ilovb: так что он точно делает?
[23:26:43] alexey.veselovsky: нужно посмотреть на спеки либы
[23:26:45] ilovb: и зачем?
[23:26:54] ilovb: ебать вы смешные
[23:27:03] alexey.veselovsky: это предположение с вероятностью 90 процентов
[23:27:12] ilovb: какая нахуй вероятность
[23:27:13] alexey.veselovsky: я ж эту либу первый раз в жизни вижу :-)
[23:27:26] ilovb: если бы это был простой код, то ты бы сразу сказал что он делает
[23:27:27] alexey.veselovsky: нужно например глянуть на спеку функции concat_map
[23:27:34] alexey.veselovsky: это ж не стандартная функция
[23:27:40] alexey.veselovsky: код - простой
[23:27:49] alexey.veselovsky: простой, тупой и понятный.
[23:28:04] alexey.veselovsky: нужно лишь посмотреть в описание конкретных функций.
[23:28:55] ilovb: ну посмотри посмотри
[23:29:27] ilovb: как они неаккуратно назвали то concat_map
[23:29:29] alexey.veselovsky: посмотрю-посмотрю :-) если решу погрузиться в реактивщину. хотя без do-синтаксиса тут будет тяжко
[23:29:40] ilovb: ведь и непонятно из названия что делает
[23:30:07] alexey.veselovsky: а слово map вообще штука не однозначная
[23:30:34] ilovb: alexey.veselovsky: ты это... в следующий раз простой код будешь показывать. Сначала покури его пару дней....
[23:30:42] alexey.veselovsky: у некоторых извращенцев map это например вшитый в язык тип, у некоторых - набор библиотечных типов, а у некоторых - функция которая делает совершенно другое
[23:30:53] alexey.veselovsky: а есть еще mmap которая делает нечто совершенно третье
[23:30:53] ilovb: да ладно?
[23:30:59] ilovb: код ведь простой
[23:31:06] alexey.veselovsky: код действительно простой
[23:31:14] ilovb: ебать ты сам себя слышишь
[23:31:27] alexey.veselovsky: с точки зрения языка абсолютно понятно что куда и как
[23:31:43] ilovb: ну и что делает этот код?
[23:31:51] alexey.veselovsky: я ответил выше :-)
[23:32:01] ilovb: пиздабол короче
[23:32:26] alexey.veselovsky: любой код когда видишь вне контекста и первый раз, требует таки чтобы ты взял да и посмотрел спеки на каждую функцию которая там используется. как минимум
[23:32:37] alexey.veselovsky: даже если это тупо два statement’a подряд
[23:32:48] alexey.veselovsky: иначе на 100 процентов ты уверен не будешь
[23:32:58] ilovb: alexey.veselovsky: неужели? А почему я виртовский код сразу понимаю?
[23:33:17] alexey.veselovsky: потому что ты до того выкурил 1-2 его книжки и ты уже в контексте
[23:33:37] alexey.veselovsky: выкурив доку по либе, все это читается с первого раза безошибочно
[23:35:08] ilovb: alexey.veselovsky: нет валексей. Это потому, что в обероне все инструкции явные, и вирт не выебвается в коде
[23:36:11] ilovb: лан я спать
[23:36:15] ilovb: на работу завтра
[23:36:16] alexey.veselovsky: бб
[23:37:21] alexey.veselovsky: да, в обероне конечно офигенно вирт явно все пишет
[23:37:38] alexey.veselovsky: ну, например: Texts.WriteInt(W, 3, 4); — сразу ведь понятно что будет выведено, да?
[23:37:51] alexey.veselovsky: без доки! в первые увидев эту строчку!
[23:38:10] alexey.veselovsky: офигеть какая явность :-D
[23:41:00] alexey.veselovsky: вот что оно выведет? 3? 4? 3 в четвертичной системе исчисления? 4 в троичной? или четверку фонтом в 3 пункта?