[01:43:07] <valexеy> vlad3: угу. спасип.
[02:34:29] <egp> что-то я всё хотел прогать под линь на си и с++, но после ваших разъяснительных бесед мне претит :)
[03:01:21] <valexеy> в смысле?
[03:01:34] <valexеy> egp: ты про что?
[03:01:45] <egp> в си не нравится гнилые скипы ошибок типов
[03:01:51] <egp> в си++ темплейты
[03:02:20] <valexеy> как ты собираешься сохранить строгую статическую типизацию в контейнерах без шаблонов?
[03:02:57] <egp> нафиг контейнеры
[03:03:35] <valexеy> то есть списки/map'ы/хэши тебе не нужны? ;-)\
[03:03:38] <valexеy> очереди там
[03:03:42] <egp> ну вообще темплейты - это отдельная тема
[03:04:00] <egp> генериксы в яве и то проще
[03:04:16] <valexеy> не сказал бы что проще. они там.. другие.
[03:04:24] <valexеy> но вообще, кто тебя заставляет ими пользоваться?
[03:04:27] <egp> да вроде проще
[03:04:42] <egp> я ещё особо не думал про темплейты
[03:06:34] <valexеy> ну и не думай. просто пиши на плюсах ;-)
[20:15:33] <vlad2> Как распечатать "Hello \"World\""?
[20:15:47] <vlad2> Гы. Бана в boost::format
[20:16:25] <alexey.veselovsky> Write('Hello "World"');
[20:16:28] <alexey.veselovsky> :-)
[20:16:38] <alexey.veselovsky> прям проблемы на пустом месте у тебя ;-)
[20:18:44] <vlad2> Ну поменяй кавычки.
[20:19:19] <alexey.veselovsky> Write("Hello 'World'");
[20:19:24] <alexey.veselovsky> поменял. И шо? ;-)
[21:15:48] <vlad3> "Hello 'World\""
[21:16:52] <alexey.veselovsky> Write("Hello 'World"); Write(код кавычки)
[21:16:59] <vlad3> Кстати, в обероне строки только в двойных кавычках.
[21:17:23] <alexey.veselovsky> разве?
[21:17:24] <vlad3> Так что твой вариант с одинарными не прокатит тоже.
[21:20:10] <alexey.veselovsky> дас, действительно
[21:20:26] <alexey.veselovsky> ну значит только вот так вот. в несколько Write'ов
[21:22:23] <vlad3> profit? :)
[21:22:39] <alexey.veselovsky> а то!
[21:22:46] <alexey.veselovsky> лексер становится особенно тупым
[22:34:47] <vlad2> Насколько туgsv надо быть, чтоб не поддержить простейший эскэйпинг.
[22:36:32] <vlad2> На самом деле вот одна такая "мелочь" может поставить отпугнуть от ЯП (сразу попадает в раздел поделок), даже если им кто и заинтересуется всерьез.
[22:39:46] <vlad2> Потому как на новый ЯП обычно не смотрят с позиции "если что - допилить". А скорее с позиции "как оно решает вот такие и такие проблемы".
[22:42:33] <vlad2> И на такие ляпы обычно смотрят не как "автору лень доуточнять тривиальные вещи", а как на "автор не в курсе элементарных вещей".
[22:47:04] <vlad2> Ну и пресловутые 16 страниц на фоне таких ляпов смотрятся особенно смешно.
[22:50:08] <vlad2> Так вот. Бага прикольная. platform specific в сишной либе.
[22:50:26] <vlad2> Причем в самом что ни на есть стандартном printf!
[22:50:47] <vlad2> "+" format specifier работает по-разному
[22:51:01] <vlad2> В случае 0 на OSX - он ничего не делает.
[22:51:15] <vlad2> (ну и на линуксах, как я пдозреваю)
[22:51:25] <vlad2> А вот на винде - печатает "+".
[22:52:25] <vlad2> Ghzdkbkcm это, естественно в очень специфическом окружении (на машине, которая стоит на Гринвиче ;)
[22:52:35] <vlad2> Проявилось
[23:28:37] <valexеy> vlad2: а ты уверен что это именно осеспецифичное а не компилероспецифичное?
[23:29:08] <valexеy> а на счет ескейпинга - таки да. если тупо вбивать коды символов, то прога автоматом становится не портабельной
[23:29:08] <vlad2> Я думаю это RTL-специфично.
[23:29:34] <valexеy> впрочем, это хорошо вписывается в чехарду у Оберонов с чарсетами
[23:29:58] <vlad2> :)
[23:31:17] <valexеy> особенно смешно будет когда строковые литералы рассинхронизируются с такими вот одиночными кодами.
[23:31:27] <vlad2> (platform specific проявился в том, что я сначала пытался репродьюснуть предполагаему проблему в тесте на винде - и оно не репродьюсалось).
[23:31:37] <vlad2> (потом запустил тест на маке - и вот оно)
[23:32:38] <vlad2> Надо на самом дел составить список "почему оберон не промышленный язык". Типа по пунктам.
[23:32:57] <valexеy> Он не то что не промышленный. Он просто не для прикладного программиста.
[23:33:14] <valexеy> Он полуфабрикат, из которого программист системный может сделать инструмент для прикладного программера.
[23:33:17] <vlad2> Ну и со сносками "фикснуто в КП"
[23:33:43] <valexеy> На самом деле то или иное обычно фикснуто в каждой конкретной реализации.
[23:33:50] <valexеy> Правда везде оно фикснуто по разному :-)
[23:33:55] <vlad2> :)
[23:33:58] <valexеy> По сути КП - это одна из реализаций просто ;-)
[23:34:16] <vlad2> Которая подобралась к промышленнуму бближе всего.
[23:34:36] <valexеy> Угу. Впрочем, в основном за счет того, что КП делался с большой оглядкой на джаву.
[23:34:50] <valexеy> Правда с тех пор как он делался жаба на месте не стояла, а вот КП уже порядочно устарел.
[23:34:58] <vlad2> Угу. Таки там ООП присутсвует почти в человеческом виде.
[23:39:29] <valexеy> ну, я давно не молюсь на ООП :-) Кошерный ООП пожалуй только в смалтолке да ObjC. Другое дело. что этот самый кошерный ООП нужен в 20% случаев от силы.
[23:39:52] <valexеy> А скажем классы в С++ они не про ООП, а про конструирование собственных типов. Да и не только их.
[23:40:31] <vlad2> Без ООП можно жить только в случае жестокого ФП :)
[23:40:44] <vlad2> К оберонам это не относится.
[23:40:51] <vlad2> (ФП)
[23:41:53] <valexеy> Ну, ФП-не ФП, но хотя бы зачатки алгебраических типов данных (ATD) нужны.
[23:42:14] <valexеy> Они есть в модуле и аде (в последней они почти нормальные), но их совершенно нет в Обероне
[23:44:22] <valexеy> по сути в Обероне осталось полтора мехнизма создания собственных абстракций - процедуры и наследование рекордов.
[23:47:04] <vlad2> В модуле это в каком виде?
[23:48:33] <valexеy> в виде вариантных рекордов конечно
[23:49:48] <valexеy> суровая чисто статическая строгая типизация