[00:46:02] <valexey> на го вот отлично работает метода "хуяк и в продакшн"
[00:46:05] <valexey> идеальный язык!
[00:46:33] <valexey> хуяк-хуяк делается на порядок проще чем в иных плюсах. Go - язык созданный для хаков!
[00:47:47] <valexey> сразу видно, Go -- потомок оберона!
[07:47:28] <Kemet> » [03:52:26] <vlad2> Kemet: Профит таки есть. У тебя ООП менее инвазивное получается. Меньше мороки с правильным дроблением интерфейсов.
вот я и говорю - провоцирует написание говнокода, в который потом придётся погружаться другим людям
[07:55:39] <vlad2> Ну да, у тебя есть выбор. Либо передробить интерфейсы и перелопатить кучу кода, или написать говнокод (забить существующие круглые интерфейсы в квадратные отверстия через злобные касты) или использовать вот такие "трейты". Хорошо, когда есть выбор. Трейты могут быть хорошим компромиссом между говном и конфеткой.
[08:12:43] <Kemet> vlad2: Ну ты же понимаешь, что если приходится забивать круглые интерфейсы в квадратные отверстия - налицо проблема проектирования. Значит нужно менятьь инструментарий. Благо его сейчас практически на все случаи жизни. или да - писать своё, ибо со всеми этими прослойками оно явно не будет квадратно-гнездовым, оно вполне может быть треугольным, и придётся городить еще один треугольный, и так до бесконечности
[08:13:49] <Kemet> в итоге мы сейчас имеем в ИТ полный отстой и гимор
[08:19:01] <Kemet> ))) Наша главная задача молотьба и хлебосдача!Хочешь быть передовым сей квадратно-гнездовым!
[09:17:52] <vlad2> "Ошибка проектирования" не совсем верный термин. Во всяком случае я сейчас говорю не об ошибке, а об изменившейся модели. Интерфейсы были вполне нормальные. Может быть даже очень хорошие. Первые 20 итераций. Потом требования изменились...
[09:52:02] <Kemet> vlad2: Так а почему модель изменилась?
[10:22:12] <Kemet> )) https://www.tweaktown.com/news/60902/doom-3d-engine-made-ms-excel-formulas/index.html
[11:46:00] <Kemet> билин, придётся плату с zynq-7020 менять, ибо здесь нет полноразмерного usb, тоько usb-uart ( через который идет питание ) и usbotg. И как мне подключать тачскрин - хз, ну или мышь с клавой.
[11:48:13] <Kemet> убунта загрузилась, но толку от этого нет, только на картинку любоваться
[11:49:05] <Kemet> вобщем нужна плата расширения, куда это всё выведено
[13:39:20] <TRUE> а разве эти ваши трайты - это не обычный абстрактный класс? Чем они отличаются?
[16:02:13] <valexey> Kemet через otg же можно клавамышь
[16:05:24] <TRUE> паять нужно?
[16:34:25] <valexey> TRUE: переходники же есть.
[16:34:31] <valexey> для всяких андроидодивайсов
[16:35:05] <valexey> https://blog.fonepaw.com/work-on-android-with-otg.html
[16:35:23] <valexey> а туда уже хаб втыкаешь и наслаждаешься
[16:35:48] <valexey> https://blog.fonepaw.com/images/android-desktop.jpg
[16:35:52] <valexey> как-то так
[16:52:21] <Kemet> valexey, это я знаю, просто хаба под рукой нет. Я вообще другу плату заказывал. Мы спонсировали школу на приобретение, ну вот и я заказал, а они потом другую плату выбрали, типа за тот же бюджет, но больше плат, и нихрена не сказали
[16:55:55] <valexey> ну, кажется проще хаб найти, чем плату перезаказывать :-)
[16:58:46] <Kemet> Так мне такая плата не подходит. Разве что поиграться.
[17:01:33] <Kemet> они в итге вот эту заказали
[17:01:34] <Kemet> http://www.myirtech.com/list.asp?id=502
[17:06:01] <Kemet> а я эту заказывал http://www.myirtech.com/list.asp?id=525
[17:08:35] <Kemet> не, другую, щас зхрен найдешь(
[17:21:57] <valexey> значит придется хаб искать!
[17:32:40] <vlad2> Kemet: У тебя вопросы, неудобно даже.... Модель изменилась потому что работа у нее такая - меняться. Это же софтваре, а не хардваре....
[17:33:41] <vlad2> TRUE: Трейты мягче, чем абстрактные интерфейсы, но жестче, чем классический dynamic duck typing.
[17:34:10] <Kemet> [valexey 21:17]
» значит придется хаб искать!
---
Да чего его искать, во всех магазинах хоть попой ешь
[17:34:20] <valexey> модель меняется всегда и очень часто непредсказуемым и неприятным образом.
[17:34:31] <vlad2> Трейты можно набирать из нужных методов не обязывая всех явно из "наследовать".
[17:34:32] <valexey> ибо бузинесс же! реальная жизнь, среда. постоянно меняется.
[17:34:53] <valexey> и прекрасная архитектура идет на помойку.
[17:35:30] <TRUE> прекрасная архитектура не идёт на помойку
[17:35:41] <TRUE> на помойку идёт отстойная архитектура
[17:36:08] <Kemet> Так интерфейсы зачем кувалдой ломать? Если это приходится делать, ясное дело, что с моделью всё очень плохо
[17:36:10] <vlad2> Поэтому я ненавижу фреймворки - меняется модель и можно выкидиывать и фрэймворк и все, что под него годами наработано.
[17:37:12] <valexey> vlad2: +1
[17:37:38] <valexey> причем когда выбираешь фреймворк и начинаешь работать с ним, всё кажется таким шоколадным...
[17:37:45] <valexey> а потом понимаешь. что то был не шоколад
[17:37:52] <TRUE> фреймворк - это реализация предметной области. Если ты выбросил фреймворк, то:
1. ты ушёл из предметной области
2.  ты долго пользовался не тем инструментом
[17:38:37] <Kemet> TRUE, +100500
[17:38:42] <valexey> TRUE: да нет там такого чОткого деления. берешь какой-нибудь GUI фреймворк. вот какая у него предметная область?
[17:38:59] <TRUE> ну или фреймворк плохо реализовывал предметную область. Но это опять вопрос архитектуры
[17:39:23] <valexey> нет, не архитектуры. часто - реализации.
[17:39:31] <TRUE> сейчас модно любую библиотечку называть фреймворком...
[17:39:59] <valexey> этим библиотечкам уже больше 20 лет, о которых мы говорим
[17:42:19] <valexey> и еще - фреймворки очень плохо дружат друг с другом. если у тебя предметка включающая две предметные области, то ты получишь МНОГО секса с двумя фреймворками.
[17:42:30] <valexey> фреймворки нинужны!
[17:43:37] <TRUE> если фреймворки только свою работу делают, то они никак друг с другом не конфликтуют.
[17:43:52] <TRUE> хотя, приведи пример, когда это так.
[17:44:12] <TRUE> а то, может, и конфликтуют
[17:44:30] <Kemet> TRUE, не конфликтуют, но требуют сопряжения, что, часто , может привести к созданию еще одного фреймворка
[17:44:31] <valexey> отличие фреймворка от либы в том, что в случае либы у тебя ствол, а либа реализует листья. фреймворк же реализует все дерево позволяя тебе реализовать пару листьев.
[17:45:02] <valexey> грубо говоря, фреймворки частенько сами внутри себя крутят event loop.
[17:45:20] <valexey> а иногда вообще тебе не дает сделать свою функцию main.
[17:47:29] <TRUE> с main-ом - да, такое возможно.
[17:47:54] <TRUE> но даже контейнеры сервлетов имеют реализации без main
[17:49:23] <valexey> в частности, из за фреймворков часто начинают плодить потоки без особой надобности. ибо потоки позволяют как-то с фреймворками жить. так как потоки сложнее контроллировать фреймворку.
[17:49:39] <TRUE> а циклы событий могут быть и свои. В чём проблема-то? Они же в одну очередь свои события и так не должны были складывать
[17:50:30] <valexey> в том, что нужно контроллировать из какой очереди когда брать. вопрос с блокирующими операциями и так далее.
[17:55:07] <valexey> простой пример - фигачишь свой любимый гуй в своем любимом фреймворке. всё хорошо. а тут бац и сеть потребовалась. что делать будешь?
[17:55:27] <TRUE> гуй по сети?
[17:55:58] <valexey> нет. просто данные через сеть получить/отправить.
[17:56:21] <vlad2> Кстати с main - очень показательно. Сколько извращений вокруг инициализации/денициализации я видел, только потому что фрэймворк "знает лучше", как тебе надо.
[17:56:55] <geniepro> https://hi-news.ru/space/kitaj-otpravil-lunoxod-na-obratnuyu-storonu-luny.html
[17:57:08] <TRUE> как обычно, чем там сеть ему мешает?
[17:57:18] <vlad2> Там реально такое говнище с глобальными переменными, флажками и т.п. И никто в итоге не может понять в каком порядке оно рождается и умирает.
[17:57:20] <valexey> TRUE: ВСЕМ
[17:57:45] <geniepro> valexey: ну делай сеть в отдельном потоке!
[17:57:47] <valexey> ты где будешь запрос по сети делать? в onMouseClick?
[17:57:54] <valexey> geniepro: LOL
[18:00:20] <Kemet> [valexey 21:53]
» ты где будешь запрос по сети делать? в onMouseClick?
---
Это зависит от многих вещей, возможно, это должно делать хранилище данных, она же модель, при изменении сосояния
[18:00:44] <vlad2> Возьми любой фрэймворк - от MFC до BB. Оно юзабельно на старте, оно становится обузой по мере утяжеления приложения, оно становится извращением через 10+ лет.
[18:01:31] <valexey> ок. то есть в другом каллбеке? хорошо. вот сделал ты в onModelChange ты вызов по сети. естественно твой гуйный фреймворк сеть не поддерживает, он же гуйный! поэтому ты делаешь ну обычный сокет, и ждешь ответа.
[18:01:57] <valexey> вызов у тебя блокирующий, поэтому пока ты разрабатываешь на своей локальной машине, все хорошо. но вот в боевых условиях у тебя гуй ВИСНЕТ НАФИГ.
[18:02:48] <valexey> или не виснет, а начинает вести себя конкретно странно. ибо гуйный фреймворк не ожидает что какой-либо каллбэк может на длительное время заблокироваться.
[18:03:04] <Kemet> valexey, нет, там должно быть что то типа StorageAdapter, реализации которого будут работать с бд, сетбю и хрен еще знает чем
[18:03:08] <geniepro> valexey: говорю же -- в отдельном потоке делай
[18:03:20] <valexey> geniepro: нету потоков, забудь :-)
[18:03:30] <geniepro> нет ответа 10 сек -- по таймауту обрубай! я так всегда делаю )))
[18:03:50] <valexey> да! даешь у гуя 0.1 fps!
[18:04:07] <geniepro> так отдельный поток на гуй не влияет же
[18:04:36] <geniepro> ну не поток, так процесс, какая разница
[18:05:09] <valexey> geniepro: ну вот твой пример отличное доказательство того, что я написал выше - само наличие фреймворка приводит к тому, что программа на ровном месте становится многопоточной и менее эффективной. и с багами (ибо многопоточность же!)
[18:05:15] <vlad2> И для сравнения возьми популярную либу 10+ лет - тот же boost плюсовый. Живее всех живых.
[18:05:16] <valexey> в этом примере многопоточка ВООБЩЕ не нужна
[18:05:57] <TRUE> то есть, без фреймворка ты бы написал графическое приложение с сетью, работающее без потоков?
[18:06:05] <valexey> да
[18:06:15] <valexey> собственно, почему "бы" я и писал.
[18:06:18] <geniepro> я вот раньше так делал -- что бы гуи на сибилдере не висло, делал отдельную прогу на сишарпе или хацкеле, она с сетью работает, зависает там и тд, но на гуи это не сказывается
[18:07:57] <Kemet> [valexey 22:01]
» в этом примере многопоточка ВООБЩЕ не нужна
---
Дык не делай, зачем она тебе
[18:08:00] <valexey> из за этой проблемы почти каждый гуйный фреймворк неизбежно со временем стремится втянуть в себя вообще всё. работу со звуком, с сетью, с любыми устройствами.
[18:08:31] <valexey> ибо если в каком-нибудь фреймворке нет работы с твоим любимым устройством или даже типом устройства, у тебя конкретно проблемы.
[18:09:08] <valexey> а еще фреймворки обожают свои коллекции, строки, всё что угодно. всё своё. всё странное. и не совместимое с миром вокруг.
[18:09:16] <valexey> фреймворки это то. что должно умереть.
[18:10:14] <vlad2> Про такие мелочи как свои строки я даже не стал упоминять :) Потому что реально мелочи по сравнению с остальными недостатками.
[18:10:19] <TRUE> свои коллекции там могут появиться только из-за вопросов производительности. Ты себе такие же напишешь, если нужна будет производительность
[18:11:37] <TRUE> про сеть и графику: там есть асинхронная работа. И либо сеть блокирует работу графики, либо они в разных потоках работают
[18:11:55] <TRUE> фреймворк как таковой тут не помеха
[18:12:16] <TRUE> не говоря уже о том, что это не пример конфликта
[18:14:10] <vlad2> А вот в MFC, например, еще и свои исключения. Причем в виде указателей. Полный !@#$.
[18:14:58] <vlad2> Причем с нормальными исключениями она сама не живет. Ь
[18:15:27] <vlad2> Т.е. ты не можешь прокинуть свое исключение через ее гребанный колбэк.
[18:15:49] <TRUE> так то-ж галимый си++ : _
[18:15:53] <TRUE> : )
[18:16:26] <vlad2> В смысле тебе может показаться, что ты можешь. А потом неделю ищешь багу, потому что MFC что-то там неразлочила по причине твоего исключения в колбэке.
[18:17:10] <vlad2> С++ здесь только как лупа, чтобы увидеть все основные недостатки во всей красе.
[18:17:22] <valexey> TRUE: в жабе аналогично. там такого во фреймворках наворотят, что котлином потом пользоватья невозможно :-)
[18:18:14] <TRUE> ну он же писался ещё в те времена, когда си++ был просто прозрачной настройкой над сями. А с тех пор в силу обратной совместимости сильных изменений в фундаменте этого MFC не было
[18:18:51] <TRUE> я же говорю: сейчас любую помойку называют фреймворком. Особенно это касается жабки
[18:18:59] <vlad2> Я именно об этом в самом начале говорил. Оно цементируется и через 10 лет этим пользоваться невозможно.
[18:20:14] <valexey> беря фреймворк, ты берешь архитектуру твоего приложение. отныне оно определяется архитектурой фреймворка. с либами ты сам лепишь ту архитектуру, которая нужна тебе. либу можно поменять на другую либу. переехать с фреймворка на фреймворк - тот еще геморрой.
[18:20:20] <valexey> даже если они оба из одной предметки.
[18:20:39] <TRUE> в первые месяцы не было понятно, какова предметная область, а потом, когда поняли что и как, появилась необходимость обратной совместимости. То есть, вначале не знали, как правильно, а потом не делали как правильно
[18:21:31] <vlad2> В отличие от либы - подрихтовали интерфейс новыми языковыми фичами (смартпоинтеры и т.д.), оставили старый для совместимости.
[18:23:44] <valexey> или вообще выпустили либу 2.0 не совместимую с прежней. делов то. мигрируют кто захочет. миграция с либы на либу - простое дело
[18:23:50] <valexey> с фреймворка на фреймворк... ууу...
[18:36:08] <vlad2> У меня есть личные примеры как минимум двух больших приложений, которые так и не удалось перенести на современные GUI фрэймворки. Потому что ууу...
[18:39:48] <Kemet> Ну тут все просто - с библиотекаимо ты создаешь приложение и дергаешь либу, а с фрейворком  - он дергатьт твою реализацию. Поменять фрейворк сложнее, потому что нужено ргписывать реализацию и менять архитектуру, в остальноеом там проблем нет
[18:41:16] <valexey> ога, кроме проблем проблем нет :-)
[18:41:35] <vlad2> "переписывать реализацию и менять архитектуру, в остальноеом там проблем нет" - это же была шутка, да? :)
[18:43:10] <Kemet> Да какая шутка? Я же сразу сказал - проблма в архитектуре. Если встала побходимость смены фрейворка - как говорится, что- в схеме
[18:43:23] <valexey> что-то во фреймворке же, ну!
[18:43:43] <valexey> вот у тебя была гуйня на фреймворке писанная. отличная гуйня! тебе нравится, юзерам нравится, все дела.
[18:44:05] <Kemet> Нет, в программист., который ввбгал этот фрейворк, не проработав продметку
[18:44:06] <valexey> но тут тебе нужно добавить в эту гуйню реалтайм видео из rtp-потока.
[18:44:22] <valexey> и привет. твой фреймворк так не умеет. и отлично изолирует тебя от системного гуя.
[18:44:39] <valexey> (это реальный пример из жизни. если что)
[18:44:46] <valexey> что делать будешь? :-)
[18:45:34] <valexey> если рисовать картинку для видео через ImageWidget, то имеем дикие тормоза, естественно.
[18:45:44] <Kemet> valexey, что ты будешь делать с малтайм видео?
[18:46:01] <valexey> ПОКАЗЫВАТЬ
[18:46:09] <valexey> реалтайм видео нужно показывать на экране внутри твоего гуя
[18:46:26] <valexey> фреймворк отлично умеет поигрывать записанное видео. ваще без тормозов.
[18:46:39] <valexey> но вот быстро рисовать то, что ты генеришь - не умеет.
[18:47:51] <valexey> это просто пример. таких мелочей, когда все отлично а потом фигак, и нужна фича. еще одна. а нету. и не реализовать без дикий хаков в этом фреймворке - полно.
[18:48:10] <valexey> но их не видно пока не обмажешься всем этим. вначале все очень шоколадно.
[18:49:19] <vlad2> Причем опытный программер еще способен отделить мух от котлет - свой код (может даже с тестами) от "архитектуры" используемого фрэймворка. Особенно если он лично уже перетаскивал что-то с фрэймворка на фрэймворк. Но вот начинающий... код приложения размазан в OnClick()-ах... Абсолютная спайка с деталями реализации конкретного фрэймворка.
[18:51:07] <vlad2> С либами оно не примнимает таких терминальных стадий...
[18:52:07] <Kemet> Блиин, да какие хаки, реализовывай, кто тебе и чем мешает. Оно может мешать только в том случает, если есть некая дополнительная прослойка, которая собирает куски изображений с некоторой частотоой, которая тебя не устраивает, но это проблема прослойки, и нужна смотреть, а нахрена она там и является ли частью фреймворка
[18:54:04] <vlad2> Вот сейчас на работае бодаюсь. Юнит тестов нет. Никто не знает как из писать. Потому что все размазано по колбэкам фрэймворка...
[18:55:23] <Kemet> Нет, по колбекам не нужно мазать, колбеки должны делать минимум работы
[18:58:23] <vlad2> Абстракций нет. В каждом колбеке достаем что-то из контекста и делаем кусочек общей операции. Соответсвенно когда, что и в каком порядке вызывается и работает может предугадать только один гуру, который с этим фрэймворком 10+ лет долбается. Все другие туда вообще боятся лезть и предпочитают скопипастить вместо нормального рефакторинга, чтоб ничего не сломать...
[19:02:31] <Kemet> Ну вот смотри, в начале Алексей говорил о задаче отслужили данных через сеть, в чем проблема, так и не ясно, иьо я не виже ее, и чем либа решит эту проблему, и чем в этом деле не сможет помочь фреймворк
[19:03:09] <Kemet> Зачем здесь колбеки?
[19:04:53] <vlad2> Либа как првило намного менее инвазивна. Применительно к GUI, например, она не пытается оказывать тебе медвежьи услуги или ломаться, потому что ты попытался использовать что-то, про что она не знает.
[19:07:21] <Kemet> Ну так тебе все равно придется реализовать, если ты хочешь таки это использовать, адь, на самом деле либы тоже навязывают определенную архитектуру
[19:08:34] <Kemet> Ты же во фреймворке тоже не сможешь использовать то, о чем он знать не знает
[19:12:17] <Kemet> Ну вот возьмем оалтаймвидео и фреймворк блюботл из а2
[19:12:44] <vlad2> Конечно бывают либы с кучей колбеков. Например, я работал со встраиванием мозиловского JS в приложение. Там данные хотя в JS и обратно, естестенно будет куча колбэков. Однако все равно главный рубильник у тебя - сколько инстансов JS создавать, когда запускать и когда убивать. Юнит тесты получаются относительно тяжеловесными, но тем не менее, оно тестируемо.
[19:13:09] <Kemet> Блюботл это как раз гуйный фреймворк. Трейдсафе
[19:14:55] <Kemet> И я не смогу гарантированно показать реалтаймвидео в блюботл
[19:15:08] <vlad2> Фрэймворк тебе диктует, например, использовать только его окошки. Как только ты захочешь сделать свое окошко со своим видео (потому что фрэймворк такое неподдерживает) - у тебя сразу начинаются проблемы. Активация, фокус, клавиатура и т.д.
[19:15:59] <Kemet> И дело даже не в поганой студенческой реализации, а именио в студенческой архитектуре
[19:17:39] <Kemet> vlad2, я не вижу проблемы потомазатл чтото в окошке фреймворка, главное, чтобы данные понимались, если пт, придется оализовать, да, но это и при либах придется сделать
[19:19:43] <Kemet> Или ты хочешь работать с потоком напрямую, брать фреймы, рендерить, сводить звук?
[19:23:04] <Kemet> Ну вот в а2 есть фреймворк Кодеки, в том числе видеокодеки. В чем проблема сопряжения этого фрейворка с гуйным фрейиворком блюботл? Да нет проблем
[19:23:30] <vlad2> Проблема не в реализации. Проблема в нетолерантности фрэймворка к тому, про что он не знает и к другим фрэймворкам. В гуйне особенно странные проявления у этого, потому что фрэймворк имеет тенденцию трэкать кучу вещей (начиная с message loop) и очень легко ломается, когда кто-то другой начинает пытаться использоват нижележащие вещи напрямую. А их приходится использовать, потому что фрэймворк не может поддерживать все.
[19:23:49] <valexey> Kemet: очень просто - если рисовать на Canvas изображение для реалтайм видео, или там на ImageWidget то это МЕДЛЕННО
[19:23:51] <valexey> вот и всё.
[19:23:54] <Kemet> Ну кро е архитектуры самих фреймворков и шаловливых ручек разрабов
[19:24:05] <valexey> вместо 30..60 fps будешь иметь 10.
[19:25:22] <valexey> да нет же. они всё правильно сделали. просто случай с реалтайм видео это сильно специфическая задача.
[19:25:45] <valexey> чтобы не быть голословным, вот где с этой проблемой сталкивался: в SWT и в WPF.
[19:25:51] <Kemet> valexey, так очевидно, что рисовать видео ты не на канвасе должен или виджете, он как бы для другого, а в буфер
[19:25:56] <valexey> это было давно и мне уже не актуально :-)
[19:26:10] <valexey> Kemet: в который?
[19:26:59] <valexey> рисовать тут, по хорошему, нужно через оверлей вообще.
[19:27:08] <valexey> один из вариантов.
[19:27:26] <valexey> в виндах это специальное хардварное окно с отдельными свойствами, сколь я помню.
[19:27:33] <valexey> (прошло уже 8 лет, могу деталей не помнить)
[19:28:02] <geniepro> valexey: директвидео юзай )))
[19:28:05] <Kemet> Ну там же есть специальная хрень для видео, которая и рисует, ч вот не помню что там, директс или что, и оно ж с впф состыковано
[19:28:42] <valexey> ога. оно состыковано на нижнем уровне и поверх этого куча логики и абстракций.
[19:28:45] <geniepro> 10 лет назад я что-то там в винформском гуи проигрывал видео, но уже не помню как, нор пахало
[19:28:50] <valexey> поэтому получалось что оно дико тормозит
[19:29:12] <valexey> в итоге решалось проблема с производительностью через некоторые хаки :-) win32 api напрямую
[19:29:31] <valexey> geniepro: оно отлично его проигрывало из файла. но это не то, что было нужно
[19:29:34] <geniepro> потом решили рисовать 3D графику на терминале производства IBM, выяснилось что 3D ускоритель там почему-то не пашет, а гарантия уже кончилась )))
[19:30:03] <Kemet> Хз, я видел примеры на впф с видео, но не помню что там было, через что рисовалось, но точно не через канвас)
[19:31:00] <Kemet> И там было потоковое видео
[19:35:06] <valexey> оно умело (искропки) через rtsp вроде и из файла. но не умело так, чтобы ты сам был источником данных.
[19:35:35] <valexey> в общем, это была общая болячка. во всяких iOS и андроидах вначале тоже было так. и это был дикий гемор для VoIP приложений
[19:38:08] <valexey> и вот на всякие такие грабли я просто неоднократно натыкался у добных милых фреймворках. и это конкретно шоустоперы.
[19:38:32] <valexey> ибо выкинуть либо дополнить либу проще, сильно проще чем фреймворк
[19:51:33] <Kemet> Блин, китайцы молодцы, возникли пробле ы с канадой - дружно в игнор, в россии хрен так, бизне, важнее
[19:53:31] <valexey> зависит от доли же. со штатами у китайцев так не вышло например
[19:56:03] <Kemet> Со штатами изначально по-другому было
[20:10:53] <vlad2> Так вот оно в чем дело... Квантовая теория поля оставляет мало места в мозгу: https://www.youtube.com/watch?v=SLT0uW0dmBY&feature=youtu.be
[20:12:14] <geniepro> да какие там кванты на плоской землице???
[20:13:30] <geniepro> не ну в том, что специалист лучше решит задачу -- это само собой, надо просто дать ему удобный инструментарий... ДРАКОН ему в руки!!!
[20:14:19] <geniepro> блин, чож ткачёв так кряхтит постоянно? старость не радость что ли?
[20:25:26] <geniepro> вот с++ реально херовый выбор для профессионального физика -- ему некогда возиться с языком, ему задачи решать надо
а фортран -- норм выбор!
[20:25:41] <geniepro> в прошлом месяце вышел новый стандарт -- фортран 2018
[20:27:46] <valexey> физики разные бывают же. очень разные. часто фортран им нафиг не упёрся, как и иные числодробилки.
[20:28:57] <valexey> "пример приложений которые находятся на стыке программизма и приложений" o_O
[20:29:38] <geniepro> забавно: Ada 95 the first ISO standard object-oriented programming language
[20:30:52] <valexey> плюсы лососнули тунца!
[20:32:28] <valexey> а жаба вообще так и не смогла
[20:44:07] <vlad2> Гы. Хаскель порекламировал чувак, не побоялся: https://www.youtube.com/watch?v=4rSpHN5n3sI&feature=youtu.be
[20:44:50] <valexey> Чернышов - это не тот ли, что перевод книжек Вирта делал?
[20:45:10] <vlad2> Да, он там упоминал про книжки.
[20:45:25] <valexey> https://www.ozon.ru/context/detail/id/143242046/
[20:45:28] <valexey> вот эту книггу
[20:45:37] <valexey> "Разработка операционной системы и компилятора. Проект Оберон"
[20:49:02] <geniepro> кстати, листал сёдня описание Модулы, ну той, что перед Модулой-2 была, так вот, ТАМ НЕТУ КАПСЛОКА!!!!!1111
[20:49:23] <geniepro> непонятно, что ударило Вирта по голове, когда он перешёл на капс в Модуле-2
[20:49:24] <vlad2> Питон - сложный? Гхм.
[20:49:32] <valexey> дык и в алголе капса не было так то. в 68ом. но на практике - был.
[20:49:36] <valexey> для выделения ключевых слов
[20:50:00] <valexey> в алголе предлагалось жирнить ключевые слова или подчеркивать.
[20:50:28] <geniepro> в алголе-68 было разделение языка на три уровня, одним из которых было представление синтаксиса в конкретных реализациях, в том числе и национальный язык синтаксиса
[20:50:44] <valexey> угу
[20:51:20] <geniepro> вот, в поисании модулы ключевые слова как раз подчёркивались, а потом Вирту, видимо, надоело их подчёркивать на своей пишмашинке, и он перешёл на КАПС!!!
[20:51:38] <valexey> ога :-)
[20:51:54] <valexey> ну, в принципе правильно сделал. это технологичней тогда было.
[20:52:24] <valexey> подчеркивание на компе не реализовать (на тех компах) без тормозов
[20:52:34] <valexey> а раскраску синтаксиса визуальную - хочется
[20:52:41] <valexey> вон он и выбрал самое простое, что было.
[20:52:48] <valexey> эффективное и надежное.
[20:53:13] <valexey> но что было тогда хорошо, то сейчас уже аццтой.
[21:15:28] <geniepro> ну, как инженерное решение для тех времён оно было просто блестящим! по ТРИЗу -- подсветки нет, но её функция выполняется!
[21:21:40] <geniepro> вау, оказывается в июне был новый стандарт Си -- C18
[21:25:26] <geniepro> в си18 теперь есть анонимные структуры и объединения
[21:38:28] <vlad2> geniepro: анонимные структуры и объединения? За тобой выехали!
[21:40:19] <geniepro> EXAMPLE 1 The following illustrates anonymous structures and unions:
struct v {
union { // anonymous union
struct { int i, j; }; // anonymous structure
struct { long k, l; } w;
};
int m;
} v1;
v1.i = 2; // valid
v1.k = 3; // invalid: inner structure is not anonymous
v1.w.k = 5; // valid
[22:42:03] <valexey> не инвалид, а строка кода с ограниченными возможностями!
[22:42:13] <valexey> как такое в стандарт пропустили ваще?!