TLDR: Google закосплеила слоупока и спустя лет 10 выяснила, что не нужно было набирать всех подряд, потому что рост компании не бесконечный, а индокитайцев сотрудников нужно чем-то кормить. И среди прочих сокращений уволила команду по поддержке питона. Вообще всех.
Это жёстко. Когда метокнига сперва набрала отдел HHVM (из бывших сотрудников MS, работавших над CLR), а потом расформировала, то им хотя бы предложили перейти в другие команды.
Здравствуйте, cppguard, Вы писали:
C>TLDR: Google закосплеила слоупока и спустя лет 10 выяснила, что не нужно было набирать всех подряд, потому что рост компании не бесконечный, а индокитайцев сотрудников нужно чем-то кормить. И среди прочих сокращений уволила команду по поддержке питона. Вообще всех.
Было бы жёстко, если бы такое сделала Майкрософт. А в Гугле есть Go для разработчиков, а использующим Питон чувакам из DeepMind нафиг не упёрся единый Питон на всю контору. Консультировать по языку могут и свои внутренние нейросети. Думаю, что затраты на команду многократно превышали её полезность.
Здравствуйте, cppguard, Вы писали:
C>"Питон не нужОн" (с) Google
По сути вся компьютерная индустрия построена на двух языках.
1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си.
2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
Иногда происходят пересечения. Просто те кто сейчас топят за питоны, расты, гоу и прочие языки напоминают мне себя из 2000-ых, когда я сьехал с C++ ради .NET.
Ну и где сейчас тот .NET. Именно тот, а не +100500 раз переделанный, когда от изначального не осталось ничего.
Большой корпорации гораздо проще избавиться от неугодных программистов, чем последним переучиваться на что-то ещё.
И речь не только о синтаксисе языка, но и о стиле мышления. Я просто когда-то давным давно натравливал на библиотеки программу и смотрел на чём пишет сам майкрософт.
Удивительно, но сами они писали что-то на Си, а что-то на C++. Лишь спустя много лет я добрался до красноглазых технологий. А у тех даже каталоги операционок заточены под эти языки.
Потому я уже много раз говорил людям, что если хотите узнать какие технологии лучшие, то смотрите не на зарплаты, не на количество вакансий, не на количество запросов в веб-поиске, смотрите то, на чём пишут сами корпорации.
Думаете ключевые технологии майкрософт сделаны на .NET. Или гугл переписал всё на Go. Или мозилла прямо пишет и пишет на Rust. Может Apple прямо не может без Swift.
Нет, всё это языки для устранения конкурентов. Это ловушка и даже не для программистов, а для бизнеса, который имеет деньги и хочет влезть в айтишечку.
Просто у самых богатых корпоратов есть средства содержать не рентабельные проекты при этом не раззоряясь.
А вот мелкие компании просто подохнут вместе со своими проектами, если заранее не продумают своё развитие.
V>Ну и где сейчас тот .NET. Именно тот, а не +100500 раз переделанный, когда от изначального не осталось ничего.
Подбное нытье напоминает мне старух, насквозь пропитанных дремучими мистическими суевериями, страдающих от того, что их ребёночек розовощекий карапузик вырос, женился и живет теперь в городе.
V>Удивительно, но сами они писали что-то на Си, а что-то на C++. Лишь спустя много лет я добрался до красноглазых технологий. А у тех даже каталоги операционок заточены под эти языки.
Действительно удивительно. Ведь должны были писать на ASM.
V>Думаете ключевые технологии майкрософт сделаны на .NET. Или гугл переписал всё на Go. Или мозилла прямо пишет и пишет на Rust. Может Apple прямо не может без Swift.
Думаем что на .Net Go Rust Swift не существовало в те былинные времена, а переписать на них ВСЁ в настоящем времени нет смысла.
V>А вот мелкие компании просто подохнут вместе со своими проектами, если заранее не продумают своё развитие.
Мелкие компании не ставят себе целью существовать вечно. Учредитель срубил бабла здесь и сейчас, а завтра — твои проблемы. Для этого годится любой инструмент.
Здравствуйте, Stanislaw K, Вы писали:
SK>Мелкие компании не ставят себе целью существовать вечно. Учредитель срубил бабла здесь и сейчас, а завтра — твои проблемы. Для этого годится любой инструмент.
Корпорации ставят себе цель существовать как можно дольше. Страуструп говорил, что программы должны работать спустя десятки лет потому, что этого ожидают заказчики.
А временщики не ставят себе целью сушествовать как можно дольше. Проблема здесь в том, что не все понимают, что выбирая определённый путь развития они ограничивают себя с самого начала.
Вот ты уверен, что конкретный бизнесмен вкладывая деньги в создание программы понимает, что выбранная технология недолговечна.
Может он просто не знает, что успешные продукты делают или на Си или на С++. Вот потому я и говорю программистам так то плевать на выбор технологии.
Они же стильные и молодёжные. Но настанет день и за выбранные решения придётся расплачиваться. И заметь расплачиваться будет бизнес, причём деньгами, а не лозунгами.
Просто большая корпорация может сбросить не нужный балласт, потому что основное направление на Си или С++ по прежнему рабочее.
История вообще-то не новая, когда пилят на питоне и перерастают его. А потом ищут кто бы мог всё это переписать на Си или С++.
А вот обратных примеров я не встречал. Даже интересно есть ли у кого такие случаи из статей или жизни.
SK>>Мелкие компании не ставят себе целью существовать вечно. Учредитель срубил бабла здесь и сейчас, а завтра — твои проблемы. Для этого годится любой инструмент.
V>Корпорации ставят себе цель существовать как можно дольше.
Не нужно выдумывать то, чего нет. Цель любой корпорации прописана во втором пункте учредительного документа. В первом записано кто создает, а во втором зачем. У всех коммерческих компаний, корпораций, во втором пункте зафиксировано "1) обогащение учредителей. 2) любым способом".
Если учредители корпорации найдут новый перспективный способ обогащения, дающий бОльшую прибыль, они не моргнув глазом свернут текущую деятельность. или избавятся от неё, продав другим учредителям.
V>Страуструп говорил, что программы должны работать спустя десятки лет потому, что этого ожидают заказчики.
Он наивный фантазер-идеалист.
V>Просто большая корпорация может сбросить не нужный балласт, потому что основное направление на Си или С++ по прежнему рабочее.
Потому что, переписывание легаси наследства — это чистые затраты и ноль прибыли.
V>История вообще-то не новая, когда пилят на питоне и перерастают его. А потом ищут кто бы мог всё это переписать на Си или С++.
Такое иногда возможно, если питон был прототипом продукта.
V>А вот обратных примеров я не встречал. Даже интересно есть ли у кого такие случаи из статей или жизни.
Здравствуйте, velkin, Вы писали:
V>Здравствуйте, Stanislaw K, Вы писали:
SK>>Мелкие компании не ставят себе целью существовать вечно. Учредитель срубил бабла здесь и сейчас, а завтра — твои проблемы. Для этого годится любой инструмент.
V>Корпорации ставят себе цель существовать как можно дольше. Страуструп говорил, что программы должны работать спустя десятки лет потому, что этого ожидают заказчики.
"Потому что Старуструп так сказал" так себе аргумент. Безотносительно того кто что ожидают, программы спустя десятки лет обычно все-таки не работают.
V>Может он просто не знает, что успешные продукты делают или на Си или на С++.
В этом утверждении не хватает кванторов.
"Некоторые успешные продукты делают или на Си или на С++" — ну да, есть такое
"Все/Большинство успешных продуктов делают или на Си или на С++" — нет, не правда
"Успешные продукты делают только или на Си или на С++" — тоже неправда.
V>История вообще-то не новая, когда пилят на питоне и перерастают его. А потом ищут кто бы мог всё это переписать на Си или С++. V>А вот обратных примеров я не встречал. Даже интересно есть ли у кого такие случаи из статей или жизни.
Конечно есть. Начинают проект на сишечке, спустя N лет — ноль результата. Увольняют сишников и пишут на шарпе/яве/питоне.
Здравствуйте, Константин Б., Вы писали:
КБ>Или тут имелось в виду что первый релиз ожидают только через десятки лет? 🤔 Тогда да. Тут только C/C++.
Открою один маленький профессиональный секрет — если за дело берётся профессионал, сроки создания продукта не будут зависеть от того, что (какой язык) выбрано.
Просто есть вещи, которые проще разрабатывать именно на Питоне, а есть — которые проще на C или C++.
Что касается десятков лет — я относительно недавно открыл книгу Чарльза Петзольда по программированию на WIN-API (книжка 1990-х).
Попробовал откомпилировать и запустить (Windows-10, MSVC-2019) несколько примеров — всё работало как швейцарские часы.
Так что Страуструп всё правильно говорил...
Здравствуйте, velkin, Вы писали:
V>Потому я уже много раз говорил людям, что если хотите узнать какие технологии лучшие, то смотрите не на зарплаты, не на количество вакансий, не на количество запросов в веб-поиске, смотрите то, на чём пишут сами корпорации.
Ну вот машинное обучение, нейросети, сейчас пишут почти исключительно на Python. Как-то незаметно вдруг так сложилось. Меня не то, что это радует или не радует, но альтернатив по сути нет.
Здравствуйте, AlexGin, Вы писали:
AG>Здравствуйте, Константин Б., Вы писали:
КБ>>Или тут имелось в виду что первый релиз ожидают только через десятки лет? 🤔 Тогда да. Тут только C/C++.
AG>Открою один маленький профессиональный секрет — если за дело берётся профессионал, сроки создания продукта не будут зависеть от того, что (какой язык) выбрано.
Практика опровергает это заблуждение.
AG>Что касается десятков лет — я относительно недавно открыл книгу Чарльза Петзольда по программированию на WIN-API (книжка 1990-х). AG>Попробовал откомпилировать и запустить (Windows-10, MSVC-2019) несколько примеров — всё работало как швейцарские часы. AG>Так что Страуструп всё правильно говорил...
И? WinAPI известен своей обратной совместимостью. С этим ни кто не спорит. Тут даже бинарник 10-летней скорее всего заработает.
Но причем тут C++? Почему на других платформах C++ такими волшебными свойствами не обладает?
Здравствуйте, velkin, Вы писали:
V>По сути вся компьютерная индустрия построена на двух языках. V>1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си. V>2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
Это общего назначения софт — которы бесполезен сам по себе.
Реальная польза людям идет от банальных бухгалтерских|ERP программ — чтобы вам зарплату платить, чтобы вы могли прийти в магазин и купить товар. Даже от таких сайтов — где можно обсудить. Это то, от чего наша жизнь зависит. Это наделяет смыслом все то низкоуровневое, что само по себе ну нужно.
Здравствуйте, cppguard, Вы писали:
C>TLDR: Google закосплеила слоупока и спустя лет 10 выяснила, что не нужно было набирать всех подряд, потому что рост компании не бесконечный, а индокитайцев сотрудников нужно чем-то кормить. И среди прочих сокращений уволила команду по поддержке питона. Вообще всех.
Здравствуйте, Nuzhny, Вы писали:
N>Было бы жёстко, если бы такое сделала Майкрософт. А в Гугле есть Go для разработчиков, а использующим Питон чувакам из DeepMind нафиг не упёрся единый Питон на всю контору. Консультировать по языку могут и свои внутренние нейросети. Думаю, что затраты на команду многократно превышали её полезность.
Питон — очень популярный и важных язык (хоть лично я сам его за человека не считаю). Уволив питонью команду, гугль лишился рычага влияния на питонью экосистему. Если учесть, что было там всего 10 человек, т.е., гугль на заправку кофе-машин в крупном офисе больше тратит, чем на содержание этой команды, этот поступок выглядит очень глупым. И навевает на разные размышления по поводу будущего гугля, как компании...
Здравствуйте, velkin, Вы писали:
V>Удивительно, но сами они писали что-то на Си, а что-то на C++. Лишь спустя много лет я добрался до красноглазых технологий. А у тех даже каталоги операционок заточены под эти языки.
Эти языки пришли из мира UNIX. Не удивительно, что они прихватили с собой некоторые тамошние традиции.
V>Думаете ключевые технологии майкрософт сделаны на .NET. Или гугл переписал всё на Go. Или мозилла прямо пишет и пишет на Rust. Может Apple прямо не может без Swift.
Сейчас важен не язык, как таковой, а экосистема этого языка.
Для C/C++, я извиняюсь, HTTP-клиента нормального не отыскать...
Здравствуйте, Stanislaw K, Вы писали:
SK>Мелкие компании не ставят себе целью существовать вечно. Учредитель срубил бабла здесь и сейчас, а завтра — твои проблемы. Для этого годится любой инструмент.
Когда Netscape (нонешняя Мозилла) изродила из себя JavaScript, она была маленькой нишевой конторкой. Однако от последствий рождения JS индустрия не скоро избавится (если избавится вовсе)
Здравствуйте, Константин Б., Вы писали:
КБ>"Потому что Старуструп так сказал" так себе аргумент. Безотносительно того кто что ожидают, программы спустя десятки лет обычно все-таки не работают.
Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
Здравствуйте, AlexGin, Вы писали:
AG>Открою один маленький профессиональный секрет — если за дело берётся профессионал, сроки создания продукта не будут зависеть от того, что (какой язык) выбрано.
Если за дело берётся профессионал, то маловероятно, что кто-то будет навязывать ему выбор языка (ну разве что кроме того случая, когда профессионал взялся за дело спасения очень гиблого, но очень важного проекта, в котором последствия принятия плохих решений зашли так далеко, что отменить их уже невозможно, и придется как-то выкручиваться — за большие деньги, разумеется).
Здравствуйте, Pzz, Вы писали:
Pzz>Питон — очень популярный и важных язык (хоть лично я сам его за человека не считаю). Уволив питонью команду, гугль лишился рычага влияния на питонью экосистему. Если учесть, что было там всего 10 человек, т.е., гугль на заправку кофе-машин в крупном офисе больше тратит, чем на содержание этой команды, этот поступок выглядит очень глупым. И навевает на разные размышления по поводу будущего гугля, как компании...
Разве у них было влияние? Влияет только Майкрософт, по-большому счету. У них есть go.
Здравствуйте, velkin, Вы писали:
V>Корпорации ставят себе цель существовать как можно дольше. Страуструп говорил, что программы должны работать спустя десятки лет потому, что этого ожидают заказчики.
Тут пробегало интервью чувака из онлайн геймдева, который в конце концов выбрал Го. Как раз по той причине, что требования меняются так быстро, что писать нетленку нет смысла. Надо очень быстро переписывать кучу кода, который живёт потом полгода-год. И С++ в этих условиях чрезвычайно дорог.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Константин Б., Вы писали:
КБ>>"Потому что Старуструп так сказал" так себе аргумент. Безотносительно того кто что ожидают, программы спустя десятки лет обычно все-таки не работают.
Pzz>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
Здравствуйте, Pzz, Вы писали:
Pzz>Питон — очень популярный и важных язык
И? Вбухивать в него свои деньги без какого либо практического выхлопа то нафига?
Pzz>Уволив питонью команду, гугль лишился рычага влияния на питонью экосистему.
А оно им надо? Тем более что того контроля, как над своими языками, у них никогда не будет, так что это сразу был чемодан без ручки.
Pzz> Если учесть, что было там всего 10 человек
А пофигу. Скорее всего посмотрели на отделы которые вообще никакой прибыли не генерят, даже косвенной, и рубанули косты.
Pzz>гугль на заправку кофе-машин в крупном офисе больше тратит, чем на содержание этой команды
Очевидно кофемашина приносит больше пользы
Pzz>И навевает на разные размышления по поводу будущего гугля, как компании...
Наоборот это больше похоже на оздоровление.
Вон, мамкиных террористов моментально выпнули на мороз, невзирая на заламывания левацких ручонок — тоже хороший признак
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, velkin, Вы писали:
V>Может Apple прямо не может без Swift.
Надо заметить что апологеты сего выкидыша у нас внутри стараются его присунуть куда только можно
Вот только язык совершенно не подходит для хоть чего либо системного.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pzz, Вы писали:
Pzz>Для C/C++, я извиняюсь, HTTP-клиента нормального не отыскать...
Define "нормальный клиент"
У меня вон самописный минимальный гоняет всякое с/на HTTPS/GoogleCloud и не кашляет
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Константин Б., Вы писали:
Pzz>>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
КБ>И тебе бы возразили что хэлоуволд из книги собирается: https://rsdn.org/forum/flame.comp/8739632
Здравствуйте, CreatorCray, Вы писали:
Pzz>>Для C/C++, я извиняюсь, HTTP-клиента нормального не отыскать... CC>Define "нормальный клиент" CC>У меня вон самописный минимальный гоняет всякое с/на HTTPS/GoogleCloud и не кашляет
Ну, для начала, не самописный. В самописный не честно, так я и сам могу.
Здравствуйте, velkin, Вы писали:
V>Страуструп говорил, что программы должны работать спустя десятки лет потому, что этого ожидают заказчики.
Проведя NN лет в аутсорсе, могу сказать: большинство заказчиков не ожидают десятков лет от программ. Данные — это да, вечная ценность. Если перед бизнесом будем дилемма что выбрать: расширение хранилища данных, чтобы туда поместился следующий операционный год, иди же ещё один год зарплаты программистам-авторам этого хранилища, то хранилище победит.
It's a tough day when everyone you work with directly, including your manager, is laid off -- excuse me, "had their roles reduced", and you're asked to onboard their replacements, people told to take those very same roles just in a different country who are not any happier about it. (It's almost like capitalism isn't actually good and you shouldn't want to live in the US.)
I suspect I'll be taking Akio on extra long walks for the time being.
Ключевое:
asked to onboard their replacements, people told to take those very same roles just in a different country
Т.е. по сути Гугл отдал поддержку Питона на зарубежный аутсорс. И значить это может вовсе не отказ компании от языка, а наоборот более широкое его применение, что требует расширить команду поддержки, но в текущей локации это будет слишком накладно по деньгам.
Здравствуйте, Pzz, Вы писали:
КБ>>"Потому что Старуструп так сказал" так себе аргумент. Безотносительно того кто что ожидают, программы спустя десятки лет обычно все-таки не работают.
Pzz>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
Здравствуйте, AlexGin, Вы писали:
AG>Что касается десятков лет — я относительно недавно открыл книгу Чарльза Петзольда по программированию на WIN-API (книжка 1990-х). AG>Попробовал откомпилировать и запустить (Windows-10, MSVC-2019) несколько примеров — всё работало как швейцарские часы. AG>Так что Страуструп всё правильно говорил...
Это не в плюсах дело. Микрософт первые двадцать лет основательно приседали с обратной совместимостью. Потому и получается, что можно откомпилировать и запустить.
А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Да и новые апишки у Микрософта тоже обратной совместимостью не блещут
Здравствуйте, CreatorCray, Вы писали:
CC>Define "нормальный клиент" CC>У меня вон самописный минимальный гоняет всякое с/на HTTPS/GoogleCloud и не кашляет
Что это за крутая экосистема, что приходится самописные http-клиенты лабать?
Здравствуйте, velkin, Вы писали:
V>По сути вся компьютерная индустрия построена на двух языках. V>1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си. V>2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну, для начала, не самописный. В самописный не честно, так я и сам могу.
Вот для этого и надо сделать define. Нельзя сказать, что на С++ их нет, они есть и в boost, и в Qt, и в userver, и в RESTinio. Что мы будем делать? Ты для каждого скажешь, чем он так плох?
Здравствуйте, velkin, Вы писали:
V>По сути вся компьютерная индустрия построена на двух языках.
Сишка просто исторически захавала мир системного и околосистемного программирования, начиная с UNIX.
Потом подтянулся С++, чтобы хоть как-то скомпенсировать примитивизм сишки, и хоть как-то взять на вооружение весь тот багаж достижений в языкостроении, хотя бы по части ООП.
В 90е и 2000е понаписали столько кода на этих ЯП, что переписывать всё не имеет смысла.
Но в 90е и 2000е веб ещё не был так развит, как сейчас.
V>1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си. V>2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
Именно. Это всё та ниша, из которой С и C++ сложно или нереально выбить, но индустрия этим не ограничивается.
Это системное и околосистемное ПО или ПО, где необходимы конкретные характеристики производительности, которых невозможно достичь на языках со сборщиком мусора и проч.
Но, если такую аналогию привести, только потому что в лесу по чаще и жиже может проехать только бульдозер или другой вездеход не значит, что вся транспортная индустрия базируется на вездеходах.
V>Иногда происходят пересечения. Просто те кто сейчас топят за питоны, расты, гоу и прочие языки напоминают мне себя из 2000-ых, когда я сьехал с C++ ради .NET.
Вообще ни разу не напоминают. Питон — это язык для автоматизации, у него совсем другая ниша, отличная от сишки и плюсов.
И потом, звучит это как будто был C++ и был .NET, и ничего кроме. .NET и шарп появились появился как клон Джавы, а до Джавы были другие высокоуровневые ЯП.
V>Ну и где сейчас тот .NET. Именно тот, а не +100500 раз переделанный, когда от изначального не осталось ничего.
А где сейчас C++98? Только в легаси остался. Современный C++23 — это нереальный монстр.
V>Потому я уже много раз говорил людям, что если хотите узнать какие технологии лучшие, то смотрите не на зарплаты, не на количество вакансий, не на количество запросов в веб-поиске, смотрите то, на чём пишут сами корпорации.
Да на чём угодно пишут, на винегрете, кто во что горазд.
Могу сказать на моем примере, что мы используем для внутрикорпоративного десктопного софта: C++, Java, C#.
Причем, я знаю людей, которые на плюсах пишут десктопный софт. Они просто ничего кроме плюсов не знают.
Это для высоконагруженных систем движки на плюсах, а для кучи корпоративного софта и веб-сервисов никто в трезвом уме не будет использовать C и C++.
Но можно продолжать думать, что продвижение новых ЯП — это не объективное проявление прогресса в технологиях, а заговор рептилоидов.
V>Нет, всё это языки для устранения конкурентов. Это ловушка и даже не для программистов, а для бизнеса, который имеет деньги и хочет влезть в айтишечку.
Секундочку, а вот почему Гугл взял Джаву за основу приклада для Андроида, хоть там и своя ВМ и библиотеки свои? Почему не изобрели собственный велосипед в виде нового ЯП?
А до свифта у них был обжектив-С, кто-нибудь его видел за пределами мира маков? Нахрен он не нужен никому кроме маководов, и никто из-за него не развалился.
Здравствуйте, Nuzhny, Вы писали:
Pzz>>Ну, для начала, не самописный. В самописный не честно, так я и сам могу.
N>Вот для этого и надо сделать define. Нельзя сказать, что на С++ их нет, они есть и в boost, и в Qt, и в userver, и в RESTinio.
Справедливости ради:
— в RESTinio клиента нет. Ну и мы бы забабахались делать свой нормальный парсер HTTP/1.1, поэтому используем наработки из nodejs;
— при наличии в Си отличной libcurl надобность делать своего клиента под большим вопросом (кому не хватает libcurl может взять Boost.Beast);
— уверен, что Pzz, мягко говоря, обкакался бы делавши свой нормальный HTTP-клиент для Си (ну чтобы оказался не хуже libcurl).
Здравствуйте, Pzz, Вы писали:
Pzz>Ну, для начала, не самописный.
А какой? Из под пера чата гопоты что ли?
Ну или вон готовый есть — WinHTTP.
Pzz> В самописный не честно, так я и сам могу.
Ну так моги, тебе шашечки или ехать?
HTTP клиент это не какой то rocket science, там самое сложное это TLS, но для этого и готовые библиотеки есть и системные API.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pauel, Вы писали:
P>Что это за крутая экосистема, что приходится самописные http-клиенты лабать?
Я сначала использовал готовый системный WinHTTP пока в какой то момент в очередном апдейте Wine что то в его ипмлементации не сломали. А поскольку мне надо было один и тот же бинарь гонять ещё и под маком, где он стал падать в потрохах Wine то быстренько написал свой клиент, он оказался значительно более удобный чем WinHTTP так что так и оставил.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Мне тут в глаза бросилось другое: MD>It's almost like capitalism isn't actually good and you shouldn't want to live in the US.
Пошёл по ссылке и почитал что оно ещё пишет и репостит — и там wokeism во все поля и поддержка хамасских террористов.
Похоже гугл их рубанул с плеча в том числе по этой причине.
Поделом.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
Pzz>>Ну, для начала, не самописный. CC>А какой? Из под пера чата гопоты что ли? CC>Ну или вон готовый есть — WinHTTP.
Кому он вообще нужен? Он только под венду...
Pzz>> В самописный не честно, так я и сам могу. CC>Ну так моги, тебе шашечки или ехать? CC>HTTP клиент это не какой то rocket science, там самое сложное это TLS, но для этого и готовые библиотеки есть и системные API.
Там самое сложное — не насвистеть в нюансах, которых там много.
Здравствуйте, Pzz, Вы писали:
Pzz>Кому он вообще нужен? Он только под венду...
Софту под винду
Pzz>Там самое сложное — не насвистеть в нюансах, которых там много.
В каких именно?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
MD>Ключевое: MD>asked to onboard their replacements, people told to take those very same roles just in a different country
MD>Т.е. по сути Гугл отдал поддержку Питона на зарубежный аутсорс. И значить это может вовсе не отказ компании от языка, а наоборот более широкое его применение, что требует расширить команду поддержки, но в текущей локации это будет слишком накладно по деньгам.
@timthelion They're not my replacements, but yes, I know. I'm not doing so out of love for the company or anything.
Фраза
people told to take those very same roles just in a different country who are not any happier about it. (It's almost like capitalism isn't actually good and you shouldn't want to live in the US.)
в машинном переводе звучит так
людям предлагают занять те же самые должности, только в другой стране, и они от этого ничуть не счастливее. (Это почти похоже на то, что капитализм на самом деле не так хорош, и вы не должны хотеть жить в США.)
Возможно это не про замену, а про предложение по релокации, причем не факт что он говорил именно про их питонье подразделение, а не про другие сокращения
Здравствуйте, CreatorCray, Вы писали:
Pzz>> В самописный не честно, так я и сам могу. CC>Ну так моги, тебе шашечки или ехать? CC>HTTP клиент это не какой то rocket science,
В этом нерокетсаенсе полно дыр и уязвимостей в реализациях от передовиков индустрии
Здравствуйте, CreatorCray, Вы писали:
Pzz>>Кому он вообще нужен? Он только под венду... CC>Софту под винду
Pzz>>Там самое сложное — не насвистеть в нюансах, которых там много. CC>В каких именно?
Здравствуйте, Pzz, Вы писали:
Pzz>>>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
КБ>>И тебе бы возразили что хэлоуволд из книги собирается: https://rsdn.org/forum/flame.comp/8739632
Здравствуйте, Nuzhny, Вы писали:
N>Было бы жёстко, если бы такое сделала Майкрософт. А в Гугле есть Go для разработчиков, а использующим Питон чувакам из DeepMind нафиг не упёрся единый Питон на всю контору. Консультировать по языку могут и свои внутренние нейросети. Думаю, что затраты на команду многократно превышали её полезность.
Go и прочий языковый флейм тут не при чем.
Команда главным образом отвечала за поддержание внутренней инфраструктуры, а не помогала развитию языка. В любой мегакорп без подобной команды не обойтись. Гугл просто решил создать новую команду в Мюнхене, удалив существующую в Калифорнии.
TL;DR oбычный внутренний аутсорс в более дешевую локацию.
Здравствуйте, CreatorCray, Вы писали:
CC>Пошёл по ссылке и почитал что оно ещё пишет и репостит — и там wokeism во все поля и поддержка хамасских террористов.
Это тех, которых сейчас евреи десятками тысяч сейчас косят?
Здравствуйте, Pauel, Вы писали:
P>А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Да, я в курсе (уже последние лет 8-мь).
Но здесь есть мааааленькое "если": если ты живёшь чистым POSIX — обратная совместимось всё-же считай что есть.
Но — шаг влево или вправо (к применению библиотек/фреймворков) — расстрел...
N>Тут пробегало интервью чувака из онлайн геймдева, который в конце концов выбрал Го. Как раз по той причине, что требования меняются так быстро, что писать нетленку нет смысла. Надо очень быстро переписывать кучу кода, который живёт потом полгода-год. И С++ в этих условиях чрезвычайно дорог.
У этих языков разные области применения. Очевидно же, что на бэкенде С++ — безумие, там нужен managed язык. Почему именно Go, ну тут все зависит от личных ощущений выбирающего — что бы такого изучить, чтоб потом дороже стоить на рынке труда.
__>Секундочку, а вот почему Гугл взял Джаву за основу приклада для Андроида, хоть там и своя ВМ и библиотеки свои? Почему не изобрели собственный велосипед в виде нового ЯП?
Потому что они стартап купили с уже работающим продуктом. На основе Java.
CC>Я сначала использовал готовый системный WinHTTP пока в какой то момент в очередном апдейте Wine что то в его ипмлементации не сломали. А поскольку мне надо было один и тот же бинарь гонять ещё и под маком, где он стал падать в потрохах Wine то быстренько написал свой клиент, он оказался значительно более удобный чем WinHTTP так что так и оставил.
При всем моем уважении к макам, на работе перешел на виндовс-машину. Ибо, блин, дебажить что-угодно-.NET на маке та еще морока. Да, кстати, скажи там вашим в Rosetta2, что они чего-то там перемудили, и даже под эмуляцией x64 версия dotnet падает с segmentation fault. Хотя ровно то же запущенное на KVM (через UTM) работает отлично.
Здравствуйте, so5team, Вы писали:
S>- при наличии в Си отличной libcurl надобность делать своего клиента под большим вопросом (кому не хватает libcurl может взять Boost.Beast);
Плюсую. Libcurl — замечательный. Уже полгода как ни одного переполнения буфера. Месяц назад обнаружили утечку памяти, но это ерунда я считаю.
Здравствуйте, Константин Б., Вы писали:
S>>- при наличии в Си отличной libcurl надобность делать своего клиента под большим вопросом (кому не хватает libcurl может взять Boost.Beast);
КБ>Плюсую. Libcurl — замечательный. Уже полгода как ни одного переполнения буфера. Месяц назад обнаружили утечку памяти, но это ерунда я считаю.
По уверениям экспертных экспертов программы на С++ должны падать, как минимум, раз в сутки. На этом фоне libcurl просто образчик качества и надежности.
Здравствуйте, Pauel, Вы писали:
P>Urlencoded
Элементарно
P> formdata
Это вообще не задача самого клиента, скорее wrapper над контентом.
P> multipart
Аналогично
В целом не вижу в чём тут могут быть сложности — написал, работает.
P> etag
А нафига оно во встраиваемом в аппу клиенте?
P> content range
А что с ним? Банальная сборка/отправка фрагментов
С клаудом вся работа из них и состоит вкупе с мультипарт + auth.
P> sse
Это не делал
P>connection reuse
Не заметил каких то проблем при имплементации
P> proxy
Это тоже не делал
P> authentication (basic, bearer, oidc)
Не задача самого клиента вообще, пришлёпка сверху
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, SkyDance, Вы писали:
SD>Ибо, блин, дебажить что-угодно-.NET на маке та еще морока.
Нафига тебе дотнет на маке?
SD>Да, кстати, скажи там вашим в Rosetta2, что они чего-то там перемудили, и даже под эмуляцией x64 версия dotnet падает с segmentation fault.
Ты запускаешь JIT внутри AOT и удивляешься что получается что то странное
Rosetta не предполагалась запускать самомодифицирующийся код.
SD> Хотя ровно то же запущенное на KVM (через UTM) работает отлично.
KVM юзает под капотом QEMU, который делает очень многое сильно медленнее
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pauel, Вы писали:
P>А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Смотря где. У glibc, которая отвечает за POSIX API, с совместимостью всё хорошо. Прям даже очень хорошо. Ну а более другие библиотеки, с ними по-разному.
Здравствуйте, so5team, Вы писали:
S>- при наличии в Си отличной libcurl надобность делать своего клиента под большим вопросом (кому не хватает libcurl может взять Boost.Beast); S>- уверен, что Pzz, мягко говоря, обкакался бы делавши свой нормальный HTTP-клиент для Си (ну чтобы оказался не хуже libcurl).
А что есть нормальный? libcurl не плох, но у него есть статические состояние и явная инициализация/деинициализация. Как следствие, его нельзя поместить в загружаемый плагин — если в соседнем плагине тоже libcurl окажется, быть беде.
Pzz бы не обкакался, но отдает себе отчет в масштабе этой деятельности.
У меня никогда не стояло задачи написать универсальный HTTP-клиент общего назначения, но специализированные клиенты для конкретных надобностей писать приходилось. Даже и для Go, как не удивительно.
Здравствуйте, CreatorCray, Вы писали:
Pzz>>Там самое сложное — не насвистеть в нюансах, которых там много. CC>В каких именно?
Ну, начнем с простого вопроса. Ты знаешь, как выглядит HTTP URL с IPv6 literal address? А что такое zone suffix и в какое место он в этом URL-е пишется, знаешь? А в каких случаях его надо вписывать, а когда нет — знаешь?
Здравствуйте, Pzz, Вы писали:
Pzz>>>Там самое сложное — не насвистеть в нюансах, которых там много. CC>>В каких именно?
Pzz>Ты знаешь, как выглядит HTTP URL с IPv6 literal address?
Ожидаемо, чо.
Ты лучше скажи знаешь ли ты что эти навороты ну просто нахрен не нужны в зоопарке?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pzz, Вы писали:
P>>А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Pzz>Смотря где. У glibc, которая отвечает за POSIX API, с совместимостью всё хорошо. Прям даже очень хорошо. Ну а более другие библиотеки, с ними по-разному.
Здравствуйте, CreatorCray, Вы писали:
Pzz>>Ты знаешь, как выглядит HTTP URL с IPv6 literal address? CC> Ожидаемо, чо. CC>Ты лучше скажи знаешь ли ты что эти навороты ну просто нахрен не нужны в зоопарке?
Здравствуйте, AlexGin, Вы писали:
AG>Открою один маленький профессиональный секрет — если за дело берётся профессионал, сроки создания продукта не будут зависеть от того, что (какой язык) выбрано.
Несколько лет назад я уже видел в КСВ точно такое же утверждение. Я тогда же привёл опровержение.
Может, если сроки не зависят от инструмента, писать на ассемблере вообще всё?
AG>Что касается десятков лет — я относительно недавно открыл книгу Чарльза Петзольда по программированию на WIN-API (книжка 1990-х). AG>Попробовал откомпилировать и запустить (Windows-10, MSVC-2019) несколько примеров — всё работало как швейцарские часы.
Так это не про время разработки, а про обратную совместимость. Так я больше скажу: наш проект на Фортране работал вообще везде: на ЕС-1036, в реальном режиме МС ДОС, с ДОС-экстендером, в Полуоси, в разных версиях Винды.
Здравствуйте, CreatorCray, Вы писали:
P>>Urlencoded CC>Элементарно
Все фичи по отдельности простые. А вот все вместе, или хотя бы большую часть, да с нормальным апи, перформансом, секурити да без дыр из за указателей и буферов парсинге, да что бы кроссплатформенным — вот это сиплюсное сообщество так и не осилило.
Потому клиент всегда идет как часть платформы — тк здесь конское количество кода.
P>> formdata CC>Это вообще не задача самого клиента, скорее wrapper над контентом.
Это вы на консумера собираетесь переложить? Ну-ну
P>> multipart CC>Аналогично CC>В целом не вижу в чём тут могут быть сложности — написал, работает.
Вам нужен и парсер, и рендерер. А ну как сервер ответит мультипартом?
P>> etag CC>А нафига оно во встраиваемом в аппу клиенте?
Трафик экономить, перформанс, условные запросы делать.
P>> content range CC>А что с ним? Банальная сборка/отправка фрагментов
На этой банальной сборке-отправке срезалось огромное количество передовиков.
P>> authentication (basic, bearer, oidc) CC>Не задача самого клиента вообще, пришлёпка сверху
Это смотря что вы под клиентом подразумеваете. Аутентификация должна идти внятным апи, что бы консумерам не надо было раскорячиваться, если вдруг ресурс поменяет схему аутентификации.
Здравствуйте, Nuzhny, Вы писали:
N> Что мы будем делать? Ты для каждого скажешь, чем он так плох?
Они все хуже libcurl как минимум по фитчам. При этом самому libcurl тоже далеко до идеала. Ну а "самописный http-клиент" ничего, кроме улыбки, конечно не вызывает.
Здравствуйте, Pauel, Вы писали:
P>Потому клиент всегда идет как часть платформы — тк здесь конское количество кода.
Как часть платформы идёт всемогутер, со всеми проблемами что ты тут описал. Которые там появились именно потому, что писали всемогутер.
P>Это вы на консумера собираетесь переложить? Ну-ну
На функцию-препроцессор, который payload для HTTP запроса готовит.
P>>> multipart P>Вам нужен и парсер, и рендерер.
Рендерер чего? Я не браузер делаю а data transport
P> А ну как сервер ответит мультипартом?
Ну он мне и отвечает мультипартом, а как ещё большие блобы из облака доставать?
CC>>А нафига оно во встраиваемом в аппу клиенте? P>Трафик экономить, перформанс, условные запросы делать.
Какой трафик экономить? Если я уж куда лезу, мне надо то, что с той стороны отдают.
CC>>А что с ним? Банальная сборка/отправка фрагментов P>На этой банальной сборке-отправке срезалось огромное количество передовиков.
P>Это смотря что вы под клиентом подразумеваете.
Аппликуху, заточенную на работу с конкретными источниками данных.
P>если вдруг ресурс поменяет схему аутентификации.
Это настолько в обсуждаемом контексте маловероятно что даже не интересно обсуждать.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, SkyDance, Вы писали:
SD>Теперь уже не нужно. Но пока не было виндо-машины, приходилось на маке.
А был нужен на маке зачем?
SD>Но у кого-то там руки почесались приделать розетту туда.
Потому что розетта сильно быстрее.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>>>Для чего именно? Pzz>>Для комммуникации с сетевыми устройствами с использованием протокола на основе HTTP.
CC>Ты часом не математик? (С)
Интересно, задавая этот вопрос, какого ответа ждал ты?
Здравствуйте, Pzz, Вы писали:
CC>>Для чего именно? CC>>Ты часом не математик? (С) Pzz>Интересно, задавая этот вопрос, какого ответа ждал ты?
Который из двух вопросов?
На первый — ситуации где такое в реальной жизни понадобилось.
Второй вопрос уже был риторический.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Что выдали, тем и пользовался. Допускаю, что от меня не ожидали вгрызания в самые потроха, и предполагали, что я обойдусь раздачей указаний, и кто-то другой будет ковырять реальный код. Но, оказывается, большинство "писателей на C#" не только понимают, как работает .NET runtime, но им даже и в голову не приходит, что это ж open source, можно все самому посмотреть, и объяснить, какого рожна паузы на GC подпрыгивают с 20 до 200 мс., таймаутя запросы.
Мне в принципе-то Мак нравится, особенно тот что 14 про в полной комплектации, но беда в том, что серверный софт весь x64. А изучать дампы без WinDBG и вовсе оказалось тем еще мазохизмом.
CC>Потому что розетта сильно быстрее.
Да в миллион раз! Вместо того, чтоб минуту анализировать дамп, через 0.1 сек падает со словами segmentation fault. Кстати, а есть ли какое-нибудь заклинание, чтоб docker не дурил, а запускал QEMU с полной эмуляцией? Мне пофигу, что будет не 5, а 50 секунд анализировать.
Здравствуйте, SkyDance, Вы писали:
SD>Что выдали, тем и пользовался. Допускаю, что от меня не ожидали вгрызания в самые потроха, и предполагали, что я обойдусь раздачей указаний, и кто-то другой будет ковырять реальный код.
А, понятно тогда.
SD>Но, оказывается, большинство "писателей на C#" не только понимают, как работает .NET runtime, но им даже и в голову не приходит, что это ж open source, можно все самому посмотреть, и объяснить, какого рожна паузы на GC подпрыгивают с 20 до 200 мс., таймаутя запросы.
Это во все поля, да.
SD>беда в том, что серверный софт весь x64. А изучать дампы без WinDBG и вовсе оказалось тем еще мазохизмом.
+1 Тулсет для системщины под винду до сих пор сильно лучше.
SD>Да в миллион раз! Вместо того, чтоб минуту анализировать дамп, через 0.1 сек падает со словами segmentation fault.
Во!
SD> Кстати, а есть ли какое-нибудь заклинание, чтоб docker не дурил
Тут я хз, меня минула сия напасть.
Может кто другой подскажет, напиши отдельный топик (прям тут, в КСВ, и сразу с ноги "докер гуано!", чтоб сразу гневно набежали и объяснили как его надо правильно готовить) а то тут могут и не дочитать.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, SkyDance, Вы писали:
SD>Ты настолько не ожидал услышать сарказм от Артема, что даже не распознал?
За много лет уже выяснено что Артём не умеет в сарказм, а если кажется что умеет — то это совпадение.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>На первый — ситуации где такое в реальной жизни понадобилось.
Для работы с устройствами (принтерами, сканерами), которые умеют в zeroconf, driverless и ipv6. Типа, воткнул и сразу заработало. Сейчас все новые так умеют.
При использовании ipv6, если "нормальные" адреса не настроены (что является частым явлением), то используются link-local, а в них используются зоны.
Здравствуйте, Pzz, Вы писали:
Pzz>Для работы с устройствами (принтерами, сканерами), которые умеют в zeroconf, driverless и ipv6. Типа, воткнул и сразу заработало. Сейчас все новые так умеют. Pzz>При использовании ipv6, если "нормальные" адреса не настроены (что является частым явлением), то используются link-local, а в них используются зоны.
Можешь же когда захочешь!
Сразу бы так...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
Pzz>>При использовании ipv6, если "нормальные" адреса не настроены (что является частым явлением), то используются link-local, а в них используются зоны. CC>Можешь же когда захочешь! CC>Сразу бы так...
Здравствуйте, Pzz, Вы писали:
Pzz>Так ты непонятно спросил...
Хм казалось бы...
Речь шла о нужности сих наворотов.
Ты сказал что они тебе таки пригодились, я спросил "для чего?".
Сей вопрос в контексте темы предполагает описание ситуации, в котором данные навороты пригодились, а не ответ в стиле "рация работает на танке", который и так очевиден.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, cppguard, Вы писали:
C>https://habr.com/en/news/811227/
C>TLDR: Google закосплеила слоупока и спустя лет 10 выяснила, что не нужно было набирать всех подряд, потому что рост компании не бесконечный, а индокитайцев сотрудников нужно чем-то кормить. И среди прочих сокращений уволила команду по поддержке питона. Вообще всех.
C>Это жёстко. Когда метокнига сперва набрала отдел HHVM (из бывших сотрудников MS, работавших над CLR), а потом расформировала, то им хотя бы предложили перейти в другие команды.
сегодня очередной фейспалм случился.
парню в чате понадобился склонятор для дотнета, бесплатный ед-ный чел удалил с нугета и гита. морфер 500К
предложил братии питона модуль, так меня на смех подняли — запили сам, ахахаха
Здравствуйте, CreatorCray, Вы писали:
P>>>> multipart P>>Вам нужен и парсер, и рендерер. CC>Рендерер чего? Я не браузер делаю а data transport
рендерер мультипарт запроса. Или у вас рендерер это "когда картинко" ?
CC>>>А нафига оно во встраиваемом в аппу клиенте? P>>Трафик экономить, перформанс, условные запросы делать. CC>Какой трафик экономить? Если я уж куда лезу, мне надо то, что с той стороны отдают.
Похоже, вы начали изобретать веб
ETAG нужен, в частности, что бы не качать гиг контента и потом выяснить, что изменений не было.
Говорите серверу "дай мне всё если поменялось с прошлого раза", а он вам "304 Not Modified"
Здравствуйте, cppguard, Вы писали:
C>TLDR: Google закосплеила слоупока и спустя лет 10 выяснила, что не нужно было набирать всех подряд, потому что рост компании не бесконечный, а индокитайцев сотрудников нужно чем-то кормить. И среди прочих сокращений уволила команду по поддержке питона. Вообще всех.
Просто кризис в индустрии теперь добрался и до гигантов, и даже фаанг приходится оптимизировать контингент.
Здравствуйте, Артём, Вы писали:
Аё>Всегда думал, что Гугл отбирает 1% лучших от 1% всех программистов, а тут вон оно что- этим лучшим нужна помощь с Питоном.
Им и уборщица не нужна. Сами могут с тряпкой управиться, лучшие же.
Здравствуйте, velkin, Вы писали:
V>По сути вся компьютерная индустрия построена на двух языках. V>1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си. V>2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
И что, это вся компьютерная индустрия? Что, никому нафиг де сдались корпоративные приложения? Которые не Си и не С++? Что, никому нафиг не сдались всякие нейросети, как и вся математика оптимизационная, которая сплошняком на Питон? И это, всякие фронтэнды — я вот пропустил, с каих пор JS или на худой конец TypeScript стал не нужен?
И в конце концов, сколько в наше время операционок, баз данных, веб серверов? 3 операционки распространенных — Windows, Linux, Mac OS плюс вариации вроде Android и iOS. Баз данных порядка пяти, а для РФ в свете импортозамещения вообще только PostgreSQL. Движки и все такое — таких тоже не сильно густо на деле (ну десяток можно наскрести), основной гемор не в движках, а в логике.
А основная разработка — это именно что корпоративная разработка. Даже не основная старается от Си и Си++ держаться подальше. А уж мейнстримовая — там у них проблема в основном не с языком, им нужно на деле причитать какую научную статью в рецензируемом научном журнале и далее то, что там написали, как то закодить самостоятельно чтоб тоже было круто.
Здравствуйте, Pauel, Вы писали:
P>Просто кризис в индустрии теперь добрался и до гигантов, и даже фаанг приходится оптимизировать контингент.
А кризис ли? Может до этого с жиру бесились, нанимая всех подряд, а теперь за ум взялись? Или даже такое конспирологическое предположение: до этого завлекали инвесторов ростом компании, но уперлись в порог (вечно же штат раздувать нельзя), теперь завлекают "оздоровлением" компании. Когда там упрутся, чтобы поддерживать инвестиции опять начнут рост изображать.
Здравствуйте, Pauel, Вы писали:
P>рендерер мультипарт запроса. Или у вас рендерер это "когда картинко" ?
multipart это scatter/gather логика а не render
P> Похоже, вы начали изобретать веб
Запросы данных из data source это не веб вовсе, там просто транспорт через HTTP
P>Говорите серверу "дай мне всё если поменялось с прошлого раза", а он вам "304 Not Modified"
Ни один из моих data source не возвращает 304 в принципе. Они банально на своей стороне не хотят ничего за тебя отслеживать.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, elmal, Вы писали:
E>всякие нейросети, как и вся математика оптимизационная, которая сплошняком на Питон?
Питон там клей, сами нейросетки совсем не на питоне
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pauel, Вы писали:
P>Просто кризис в индустрии теперь добрался и до гигантов, и даже фаанг приходится оптимизировать контингент.
Пока выглядит как те, кто щас увольняет шодурной, в 2020-21м нанимали шодурные
Пережрали, теперь сбрасывают балласт
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pzz, Вы писали:
Pzz>Если за дело берётся профессионал, то маловероятно, что кто-то будет навязывать ему выбор языка (ну разве что кроме того случая, когда профессионал взялся за дело спасения очень гиблого, но очень важного проекта, в котором последствия принятия плохих решений зашли так далеко, что отменить их уже невозможно, и придется как-то выкручиваться — за большие деньги, разумеется).
+100500
Здесь никто не спорит — выбор инструментария, конечно же, за исполнителем.
Но, возможны разные варианты (в т.ч. и указанный выше тобой).
P.S. Всё же в основном разработчики понимают "нишевость" того или иного инструмента (и прежде всего языка программирования). Поэтому и утверждать, что "A", "B" или "C" — не нужно IMHO бессмысленно, не представляя контекст разработки. То есть — особенности применения, обычно оговоренные в ТЗ на продукт.
Здравствуйте, пффф, Вы писали:
Pzz>Смотря где. У glibc, которая отвечает за POSIX API, с совместимостью всё хорошо. Прям даже очень хорошо. Ну а более другие библиотеки, с ними по-разному.
П>безгуйных демонов можно писать, да
Так и не только демонов.
Обычные CLI приложения, которые так популярны по сей день в Linux, также создаются в POSIX API легко и просто!
Здравствуйте, CreatorCray, Вы писали:
CC>Пока выглядит как те, кто щас увольняет шодурной, в 2020-21м нанимали шодурные CC>Пережрали, теперь сбрасывают балласт
Задним числом все умны. Если яблоко тряхнет по какой причине, будет ровно то же.
Просто яблоко ориентировано на дорогой сегмент в продуктах, потому пока сидит ровно.
Здравствуйте, CreatorCray, Вы писали:
P>>рендерер мультипарт запроса. Или у вас рендерер это "когда картинко" ? CC>multipart это scatter/gather логика а не render
Это вы про ваше апи клиента или особенности реализации этого компонента.
Render это перевод данных из одной репрезентации в другую. Parse — обратный процесс.
Вам нужно и то, и другое.
P>> Похоже, вы начали изобретать вебн CC>Запросы данных из data source это не веб вовсе, там просто транспорт через HTTP
HTTP это основа веба.
P>>Говорите серверу "дай мне всё если поменялось с прошлого раза", а он вам "304 Not Modified" CC>Ни один из моих data source не возвращает 304 в принципе. Они банально на своей стороне не хотят ничего за тебя отслеживать.
Подождите пару лет, поработайте с самыми разными датасорсами, хттп-рест-апи итд, и увидите во что превратится ваш хттп клиент.
Здравствуйте, AlexGin, Вы писали:
П>>безгуйных демонов можно писать, да AG> AG>Так и не только демонов. AG>Обычные CLI приложения, которые так популярны по сей день в Linux, также создаются в POSIX API легко и просто!
Посикс здесь ни при чем. CLI приложения на порядки проще своих аналогов но с GUI. Интерактив минимальный или вовсе отсутствует. Если вам вдруг вздумается запилить CLI приложение с тяжелым развесистым интерактивом, посикс на этом фоне будет в микроскоп не виден.
Т.е. в норме фронтенд для какой консольной утилиты занимает кодом в десятки или сотни раз больше нежели сама утилита.
Здравствуйте, Shmj, Вы писали:
V>>По сути вся компьютерная индустрия построена на двух языках. V>>1. Операционка, драйвера, базы данных, веб-серверы и прочее на Си. V>>2. Графические, физические, игровые движки, САПР, и куча других проектов на C++.
S>Это общего назначения софт — которы бесполезен сам по себе.
S>Реальная польза людям идет от банальных бухгалтерских|ERP программ — чтобы вам зарплату платить,
Какая интересная у человека картина мира! Его жизнь — это только торговля.
Ничего другого человек не замечает. Вот вообще. Ни науку, ни технику (автомобили те же самые), ни бытовые действия, ни медицину.
P>Просто яблоко ориентировано на дорогой сегмент в продуктах, потому пока сидит ровно.
Есть и другой фактор. В отличие от всех этих гуглов-фейсбуков, Яббл нанимает по старинке, в конкретные команды. То есть не просто "наберите мне 3000 человек, чем занять — потом придумаем" (как по мне так ужасный подход, но почему-то двигаемый как "новаторский"), а именно что "нам нужен инженер в команду распределенной билд-системы для внутренней автоматизации".
Я не знаю, совместим ли такой подход с традиционным для фейсбука "мы открываем новое направление, прайваси, и даем туда 3,000 инженерного поголовья" — что ведет к массовым миграциям всех карьеристов на new shiny thing.
Здравствуйте, alpha21264, Вы писали:
A>Какая интересная у человека картина мира! Его жизнь — это только торговля.
Верно, без игрушек прожить можно — а без торговли нельзя и это нужно для каждой страны и даже каждого крупного предприятия уникальное, нет универсального решения для всех.
A>Ничего другого человек не замечает. Вот вообще. Ни науку, ни технику (автомобили те же самые), ни бытовые действия, ни медицину.
Наука и медицина — это там, на западе — этим занимается высшая цивилизация. У нас какая может быть наука? Медицинские приборы все так же оттуда.
Я это не отрицаю, но здесь собрались простые смертные — это не нашего уровня материи.
Здравствуйте, Pauel, Вы писали:
P>Render это перевод данных из одной репрезентации в другую. Parse — обратный процесс.
"На берегу реки доярка доила корову, а в воде отражалось всё наоборот" (С)
P>HTTP это основа веба.
Веб нынче это куда больше чем просто HTTP
P>Подождите пару лет, поработайте с самыми разными датасорсами, хттп-рест-апи итд, и увидите во что превратится ваш хттп клиент.
Первая имплементация была почти ровно 10 лет назад, в апреле 2014го. С тех пор датасурсы только добавляются. И клиент ни во что так и не превратился.
Народ на backend ж не тупой — в крайности не ударяется, API у всех максимально простой как доска.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, AlexGin, Вы писали:
Pzz>>Смотря где. У glibc, которая отвечает за POSIX API, с совместимостью всё хорошо. Прям даже очень хорошо. Ну а более другие библиотеки, с ними по-разному.
П>>безгуйных демонов можно писать, да AG> AG>Так и не только демонов. AG>Обычные CLI приложения, которые так популярны по сей день в Linux, также создаются в POSIX API легко и просто!
Ну да, потому все эти GNU/Linux'ы до сих пор в жопе и сидят, что ничего большего стабильного, кроме POSIX, так и не смогли сделать. И ладно бы была одна экосистема, как у яблочников, в рамках которой они запланированно вводят несовместимость раз в N поколений, у этих же десятки разнородных экосистем
Здравствуйте, CreatorCray, Вы писали:
P>>Подождите пару лет, поработайте с самыми разными датасорсами, хттп-рест-апи итд, и увидите во что превратится ваш хттп клиент. CC>Первая имплементация была почти ровно 10 лет назад, в апреле 2014го. С тех пор датасурсы только добавляются. И клиент ни во что так и не превратился. CC>Народ на backend ж не тупой — в крайности не ударяется, API у всех максимально простой как доска.
Это какой то совсем вырожденный случай.
На это говорит тот факт, что вы например про етаг не в курсе.
В норме апи бакенда эволюционирует, тк потребности внешнего мира меняются.
Выглядит так, что у вас не хттп клиент, а частный случай под набор крайне консервативных бакендов.
Здравствуйте, Pauel, Вы писали:
P>Здравствуйте, AlexGin, Вы писали:
П>>>безгуйных демонов можно писать, да AG>> AG>>Так и не только демонов. AG>>Обычные CLI приложения, которые так популярны по сей день в Linux, также создаются в POSIX API легко и просто!
P>Посикс здесь ни при чем. CLI приложения на порядки проще своих аналогов но с GUI.
Это иногда так, а иногда и совсем не так. Есть CLI приложения и "демоны" имеющие большую алгоритмическую сложность (анализ спектра сигнала, поиск и т.д.).
По сравнению с этими алгоритмами — реакция на события и отрисовка ректангуляра, что характерно для GUI-application, не выглядит сложно.
Часто даже в сложных приложениях с GUI, кажется что именно поддержание работы графического интерфейса — одна из рутинных несложных функций.
P>Интерактив минимальный или вовсе отсутствует. Если вам вдруг вздумается запилить CLI приложение с тяжелым развесистым интерактивом, посикс на этом фоне будет в микроскоп не виден.
Интерактив кстати имеется — им надо уметь воспользоваться.
P>Т.е. в норме фронтенд для какой консольной утилиты занимает кодом в десятки или сотни раз больше нежели сама утилита.
Опять же — зависит от...
Не думаю, что в бухгалтерских аппликухах самое сложное будет ГУЙ. Скорее криптография.
Здравствуйте, Pauel, Вы писали:
P>Это какой то совсем вырожденный случай.
У меня ж не Web. Я тупо json/xml получаю в ответ на запрос. Ну и гугловский OAUTH2 + запулить/стянуть блоб.
P>На это говорит тот факт, что вы например про етаг не в курсе.
Я его вживую не встречал вообще нигде откуда данные таскаю.
P>Выглядит так, что у вас не хттп клиент, а частный случай под набор крайне консервативных бакендов.
Я в нём имплементирую именно то, что мне требуется.
Понадобится — допишу
Писать сразу всемогутор — смысл?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, AlexGin, Вы писали:
AG>Не думаю, что в бухгалтерских аппликухах самое сложное будет ГУЙ. Скорее криптография.
Он и будет.
А для криптографии там используются готовые готовые крипртопровайдеры и криптоAPI от OS.
Здравствуйте, AlexGin, Вы писали:
AG>По сравнению с этими алгоритмами — реакция на события и отрисовка ректангуляра, что характерно для GUI-application, не выглядит сложно.
Отрисовка ректангуляра — такими вещами можно пренебречь, это примитивы которые берутся забесплатно. В UI самое сложное это стейт-менеджмент.
AG>Часто даже в сложных приложениях с GUI, кажется что именно поддержание работы графического интерфейса — одна из рутинных несложных функций.
В примитивных приложениях так и будет, но это скорее исключение.
P>>Интерактив минимальный или вовсе отсутствует. Если вам вдруг вздумается запилить CLI приложение с тяжелым развесистым интерактивом, посикс на этом фоне будет в микроскоп не виден. AG> AG>Интерактив кстати имеется — им надо уметь воспользоваться.
Где можно посмотреть на чудеса интерактива в терминале?
P>>Т.е. в норме фронтенд для какой консольной утилиты занимает кодом в десятки или сотни раз больше нежели сама утилита. AG>Опять же — зависит от... AG>Не думаю, что в бухгалтерских аппликухах самое сложное будет ГУЙ. Скорее криптография.
Ога — в бухгалтерских приложениях вы криптографию сами никогда не пишете. Все ваши усилия уйдут на реализацию БЛ связанную с изменениями в законодательстве, куче всевозможных форм-отчетов итд итд.
Здравствуйте, Pauel, Вы писали:
P>Здравствуйте, AlexGin, Вы писали:
AG>>По сравнению с этими алгоритмами — реакция на события и отрисовка ректангуляра, что характерно для GUI-application, не выглядит сложно.
P>Отрисовка ректангуляра — такими вещами можно пренебречь, это примитивы которые берутся забесплатно. В UI самое сложное это стейт-менеджмент.
Всё больше приложений, которые выглядят как сайт. Ну по сути браузер и сверстанные странички. Я понимаю, когда это делает условная Meta, у них уже есть условный Facebook с тоннами затраченных усилий на фронтэнд, и дешевле все готовое перенести на тот же Андроид в приложение.
Но иногда и сайта нет, чисто приложение, но для него всё равно берут браузерный движок и делают гуй на html. Не понимаю логику, разве что фронтэндщики идут по 5 копеек за пучок
Здравствуйте, wl., Вы писали:
wl.>Всё больше приложений, которые выглядят как сайт. Ну по сути браузер и сверстанные странички. Я понимаю, когда это делает условная Meta, у них уже есть условный Facebook с тоннами затраченных усилий на фронтэнд, и дешевле все готовое перенести на тот же Андроид в приложение.
UI нужно пилить на мейнстриме, это дешевле и в краткосрочной, и в долгосрочной перспективе. Сейчас мейнстрим это веб-технологии.
wl.>Но иногда и сайта нет, чисто приложение, но для него всё равно берут браузерный движок и делают гуй на html.
Собственно приложение с браузерным движком при желании легко сделать сайтом — у вас почти что одна кодовая база будет на все случаи
> Не понимаю логику, разве что фронтэндщики идут по 5 копеек за пучок
Платформенные разработчики тоже стоят денег. И пилить хотя бы две платформы — так себе идея.
AG>Не думаю, что в бухгалтерских аппликухах самое сложное будет ГУЙ. Скорее криптография.
А что вообще сложного может быть в криптографии? Если не ударяться в cutting edge со всякими там key derivation, все остальное уже очень хорошо изучено и понятно.
Здравствуйте, Pauel, Вы писали:
P>Посикс здесь ни при чем. CLI приложения на порядки проще своих аналогов но с GUI. Интерактив минимальный или вовсе отсутствует. Если вам вдруг вздумается запилить CLI приложение с тяжелым развесистым интерактивом, посикс на этом фоне будет в микроскоп не виден.
Ну, я бы поспорил. Не надо путать содержательную сложность со сложностью интерфейса.
Я бы не сказал, что gcc — простая программа, хоть она и cli. Или что cups — простая программа, хоть он и бессловестный демон.
P>Т.е. в норме фронтенд для какой консольной утилиты занимает кодом в десятки или сотни раз больше нежели сама утилита.
При таком раскладе глупо писать гуевую обертку над консольной утилитой, лучше встроить ее функционал в гуевую программу и упростить себе жизнь, не трахаясь со стыком утилиты и морды к ней.
И если "утилита" сама по себе нетривиальна, нередко это приводит к разрезанию ее на содержательную библиотеку, общую для gui и cli, и интерфейсную часть.
wl.>Но иногда и сайта нет, чисто приложение, но для него всё равно берут браузерный движок и делают гуй на html. Не понимаю логику, разве что фронтэндщики идут по 5 копеек за пучок
Сейчас сайта нет, завтра есть — так что на браузерном движке может быть более futureproof. Опять же, проще переносить между платформами.
Хотя, разумеется, качественное приложение должно быть native
Здравствуйте, Pauel, Вы писали:
AG>>По сравнению с этими алгоритмами — реакция на события и отрисовка ректангуляра, что характерно для GUI-application, не выглядит сложно.
P>Отрисовка ректангуляра — такими вещами можно пренебречь, это примитивы которые берутся забесплатно. В UI самое сложное это стейт-менеджмент.
Я думаю, в UI самое сложное — это формулирование системы метафор, позволяющих изложить происходящее под капотом понятным человеку образом.
И с этой сложностью часто не справляюсь, погрязая на этапе стейт-менеджмента. В результате получаются программы, которые невозможно понять, и поэтому ими невозможно пользоваться.
Здравствуйте, SkyDance, Вы писали:
SD>А что вообще сложного может быть в криптографии? Если не ударяться в cutting edge со всякими там key derivation, все остальное уже очень хорошо изучено и понятно.
Самое сложное в криптографии — это понимание границ своей компетентности и воздержание от их перехода. В криптографии очень легко насвистеть так, что это долго никто не заметит. А потом заметят нехорошие какие-нибудь люди.
Здравствуйте, Shmj, Вы писали:
S>Верно, без игрушек прожить можно — а без торговли нельзя и это нужно для каждой страны и даже каждого крупного предприятия уникальное, нет универсального решения для всех.
Без компилятора тоже прожить нельзя. Без него не будет ни игрушек, ни программ для торговли, ни вообще ничего.
S>Наука и медицина — это там, на западе — этим занимается высшая цивилизация. У нас какая может быть наука? Медицинские приборы все так же оттуда.
Если бы вы на Украине не майданили, а высшую цивилизацию строили, глядишь, и войны бы не понадобилось. К тому же, мы вам после Союза оставили великолепный задел. Вы даже самолеты умели делать и моторы к ним. А сейчас уже не умеете. А скоро и посолнечник выращивать разучитесь.
S>Я это не отрицаю, но здесь собрались простые смертные — это не нашего уровня материи.
Здравствуйте, Pauel, Вы писали:
P>В норме апи бакенда эволюционирует, тк потребности внешнего мира меняются. P>Выглядит так, что у вас не хттп клиент, а частный случай под набор крайне консервативных бакендов.
HTTP бывают не только в мире веба. Мои, например, с принтерами-сканерами разговаривают, они теперь тоже отдаются (в локальную сеть) по HTTP с хитрыми надстройками над ними. Поэтому они не знают про етаг, и никогда не будут, но зато знают много всего разного про литеральные IP-адреса и умеют разговаривать с устройствами нежно, не злоупотребляя их, устройств, знаниями про тонкости HTTP, потому что у них, устройств, всякие непонятки могут и к перезагрузке привести или просто зависанию, экспериментальный факт. Но зато я умею парсить битый multipart, потому что не все устройства умеют возвращать нормальный.
Pzz>Самое сложное в криптографии — это понимание границ своей компетентности и воздержание от их перехода.
Мы все еще о бухгалтерии? Какие там могут быть границы, когда там все или регламентировано, или украдено задолго до нас? Или речь о чем-то отдаленно бухгалтерском, ну типа криптовалют, где действительно нужно разбираться в вопросе, а не просто следовать best practices?
Здравствуйте, Pauel, Вы писали:
P>Здравствуйте, wl., Вы писали:
P>UI нужно пилить на мейнстриме, это дешевле и в краткосрочной, и в долгосрочной перспективе. Сейчас мейнстрим это веб-технологии.
ИМХО тут всё зависит от задачи. Если можем развернуть web-сервер и при этом задача относительно простая — тогда именно так.
Если задача сложная, уложить её в прокрустово ложе web-a вряд-ли получится (а уж красиво реализовать — точно не получится).
Тем более, далеко не всегда и не всё возможно проделать при помощи web-броузера и его UI.
Вот тут и потребуется профессиональная разработка GUI.
Если тут искать майнстрим — то скорее всего это будет .NET/WPF.
Хотя лично мне всё же симпотичнее C++ Qt.
Здравствуйте, AlexGin, Вы писали:
AG>ИМХО тут всё зависит от задачи. Если можем развернуть web-сервер и при этом задача относительно простая — тогда именно так. AG>Если задача сложная, уложить её в прокрустово ложе web-a вряд-ли получится (а уж красиво реализовать — точно не получится). AG>Тем более, далеко не всегда и не всё возможно проделать при помощи web-броузера и его UI.
Все пихают в web, вне зависимости от сложности и удобства, на самом деле неудобства интерфейса.
AG>Вот тут и потребуется профессиональная разработка GUI. AG>Если тут искать майнстрим — то скорее всего это будет .NET/WPF. AG>Хотя лично мне всё же симпотичнее C++ Qt.
В web пихают даже те кто смог в 0-е обалденно сделать бухгалиерско-учетную-документооборотную систему на голом WinAPI
И пихают не только из-за моды и доступности на разных системах и гаджетах, но для принуждения пользователей хранить данные в облаках и платить абонентскую плату за пользование программой, а не покупать программу.
Пример у меня есть перед глазами.
Здравствуйте, pagid_, Вы писали:
_>Все пихают в web, вне зависимости от сложности и удобства, на самом деле неудобства интерфейса.
Да, именно неудобство web интерфейса, которое проявляется при росте сложности задачи.
Почему-то разработку (полноценную) софта; проектирование сложных устройств; управление объектами — всё настолки (по сей день).
Но оплатить за телефон, что в любом случае не является сложной функцией, можно и через web-интерфейс...
P.S. Что же касается разработок начала 2000-х на WinAPI, то мне кажется — что они автоматизировали относительно несложный функционал.
Такой функционал на сегодняшний день — легко и просто воплотить как в web-приложении, так и в настольном.
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Что же касается разработок начала 2000-х на WinAPI, то мне кажется — что они автоматизировали относительно несложный функционал.
Там полная бухгалтерская, учетная системы с элементами ERP и документооборот со сдачей отчетности в гос.органы. Но это конечно не заказная, де-факто "коробочная" программа.
AG>Такой функционал на сегодняшний день — легко и просто воплотить как в web-приложении, так и в настольном.
Так они и реализовали, в следующем воплощении системы, с точки зрения пользователя удобство интерфейсное снизилось на порядок. Но функций добавилось, вплоть до видеоконференций и всех-всех-всех корпоративных дел.
Здравствуйте, AlexGin, Вы писали:
AG>Да, именно неудобство web интерфейса, которое проявляется при росте сложности задачи. AG>Почему-то разработку (полноценную) софта; проектирование сложных устройств; управление объектами — всё настолки (по сей день).
Похоже, за новостями вы не следили. Всё больше крупного софта выставляется в веб.
Здравствуйте, Pauel, Вы писали:
P>Похоже, за новостями вы не следили. Всё больше крупного софта выставляется в веб.
В реальном мире, где реальные пользователи пользуются реальным софтом, этого не наблюдается.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, pagid_, Вы писали:
AG>>Такой функционал на сегодняшний день — легко и просто воплотить как в web-приложении, так и в настольном. _>Так они и реализовали, в следующем воплощении системы, с точки зрения пользователя удобство интерфейсное снизилось на порядок. Но функций добавилось, вплоть до видеоконференций и всех-всех-всех корпоративных дел.
Когда переходили с MSDOS на виндовс, первое время тоже было многое неудобным. Находились кадры, которые сетовали на это чуть не до конца 00х
С другой стороны, веб-технологии для UI применяются с конца 90х. До недавних пор их очень сильно ограничивал браузер. Сейчас стало гораздо проще.
Я думаю, что лет через десять UI на вебтехнологиях будет вообще нормой для десктопных приложений
Здравствуйте, Pzz, Вы писали:
Pzz>Я думаю, в UI самое сложное — это формулирование системы метафор, позволяющих изложить происходящее под капотом понятным человеку образом.
Pzz>И с этой сложностью часто не справляюсь, погрязая на этапе стейт-менеджмента. В результате получаются программы, которые невозможно понять, и поэтому ими невозможно пользоваться.
В данный момент RAD стредства для UI на веб-технологиях довольно хилые. Нет способа перебрать по бырому пару-тройку вариантов и взять лучший. UI все еще плохо поддаётся рефакторингу, в отличие от обычного кода.
Здравствуйте, CreatorCray, Вы писали:
P>>Похоже, за новостями вы не следили. Всё больше крупного софта выставляется в веб. CC>В реальном мире, где реальные пользователи пользуются реальным софтом, этого не наблюдается.
Здравствуйте, Pzz, Вы писали:
Pzz>Я бы не сказал, что gcc — простая программа, хоть она и cli. Или что cups — простая программа, хоть он и бессловестный демон.
P>>Т.е. в норме фронтенд для какой консольной утилиты занимает кодом в десятки или сотни раз больше нежели сама утилита.
Pzz>При таком раскладе глупо писать гуевую обертку над консольной утилитой, лучше встроить ее функционал в гуевую программу и упростить себе жизнь, не трахаясь со стыком утилиты и морды к ней.
Какая разница? Всё равно UI кода будет на порядки больше. UI не может быть компактным — это всегда хранзнаетсколькилион мелких кейсов-фич-итд. Здесь же нет ограничителя в виде спецификации к компилятору, количество фич ограничено только хотелками и бюджетом-временем.
Здравствуйте, AlexGin, Вы писали:
AG>Если задача сложная, уложить её в прокрустово ложе web-a вряд-ли получится (а уж красиво реализовать — точно не получится). AG>Тем более, далеко не всегда и не всё возможно проделать при помощи web-броузера и его UI.
Что за задача то такая? Уже даже CAD в web есть. Офисные пакеты есть. IDE есть. Какие сложные задачи то остались? 🤔
Здравствуйте, Константин Б., Вы писали:
КБ>Что за задача то такая? Уже даже CAD в web есть.
Кривой косой и дохнущий на более менее серьёзных задачах
КБ> Офисные пакеты есть.
Такие же убогие
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pauel, Вы писали:
P>Когда переходили с MSDOS на виндовс, первое время тоже было многое неудобным. Находились кадры, которые сетовали на это чуть не до конца 00х
В DOS-овской полноэкранной программе было немыслимо, чтобы программа уже актиривовала поле ввода (куда печатать), потом полминуты инициализировалась, а потом затерла нахрен всё, что пользователь к этому моменту в это поле ввода успел напечатать.
В вендовых программах такое вообще в порядке вещей и никто даже и не жалуется. Кроме инвалидов умственного труда, типа меня, которые успели застать лучшие времена.
P>Я думаю, что лет через десять UI на вебтехнологиях будет вообще нормой для десктопных приложений
Здравствуйте, Pzz, Вы писали:
Pzz>В вендовых программах такое вообще в порядке вещей
Huh?
Сколько уже десятков лет пользуюсь виндой и чота мне такой софт (не путать с вебовщиной) не попадался.
Есть пример кто так делает?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Константин Б., Вы писали:
КБ>>Что за задача то такая? Уже даже CAD в web есть. CC>Кривой косой и дохнущий на более менее серьёзных задачах
Да нет, нормальный
КБ>> Офисные пакеты есть. CC>Такие же убогие
Здравствуйте, CreatorCray, Вы писали:
CC>Сколько уже десятков лет пользуюсь виндой и чота мне такой софт (не путать с вебовщиной) не попадался. CC>Есть пример кто так делает?
Здравствуйте, Константин Б., Вы писали:
КБ>В этом утверждении не хватает кванторов. КБ>"Некоторые успешные продукты делают или на Си или на С++" — ну да, есть такое КБ>"Все/Большинство успешных продуктов делают или на Си или на С++" — нет, не правда КБ>"Успешные продукты делают только или на Си или на С++" — тоже неправда.
- На чём написан мобильный клиент ВК?
— ВК написан на KittenPHP( или kphp ),это транслятор кода php в c++, сам же kphp написан на c/c++, данный транслятор был создан самой компанией ВКонтакте.
Хотя Google официально не объявляла, сколько человек она уволила в этом раунде, 24 апреля она подала уведомление согласно закону штата Калифорния об уведомлении об адаптации и переподготовке работников (The Worker Adjustment and Retraining Notification Act, WARN). Он требует от работодателей со штатом в более 100 сотрудников предоставлять уведомления об увольнении за день до принятия решения. В уведомлении Google указано, что компания сократит 50 сотрудников в трёх офисах.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, CreatorCray, Вы писали:
CC>Сколько уже десятков лет пользуюсь виндой и чота мне такой софт (не путать с вебовщиной) не попадался. CC>Есть пример кто так делает?
Смешной аргумент. Переход c MSDOS на виндовс у большинства произошел в середине 90х. Смотрите софт того времени — т.е. виндовс 3.0...4.0
1. при переводе софта с мсдос на винду первое время мало у кого сразу получалось приспособиться к окнам. Т.е. не было хорошего примера, потому лепили разновидности mdi, и прочие вещи, управляли фокусом и переключением окон вручную. Типичная картина — юзеру надо судорожно искать то самое окно.
2. Попытки запустить части приложения в разных потоках и даже разных процессах, что давало постоянный геморрой почти у всех участников.
Первая внятная реализация такого подхода получилась наверное у Хрома к середине 00х
3. ActiveX добавлял разнообразия в этот хаос.
4. отсюда росли проблемы с инпутом — UI уже появился, а вот внутренняя механика еще не раскочегарилась.
Уже потом, когда научились оконный интерфейс, подобрали внятный вариант mvc (стейт-менеджмент того времени), научились готовить многопоточку итд, выбросили ActiveX, стало гораздо интереснее.
UI в МСДОС первое время действительно работал лучше, т.к. сама модель примитивная — однопоточка, одно окно, примитивнейшая разновидность MVC, и отрисовка шлёпаньем буфера по адресу B800
Скажем, реализация текстового просмотра для файла произвольной длины и строками произвольной длины с поддержкой курсорных, страничных и тд клавиш занимала ажно пару часов времени и выполнимый файл ажно 400 байт (четыреста байт). Hex — это еще + 100 байт. Редактирование по месту — еще 100 байт. Поиск по тексту — еще 100 байт.
Повторить такое чудо в оконном интерфейсе нужно было в разы больше времени.
Здравствуйте, Pauel, Вы писали:
P>Смешной аргумент. Переход c MSDOS на виндовс у большинства произошел в середине 90х. Смотрите софт того времени — т.е. виндовс 3.0...4.0
Этот софт не на пустом месте возник, а косплеил на новой элементарной базе давным давно написанный и обкатанный X11/Motif, сам по себе основанный на еще более древних идеях от Xerox.
Так что это не открытие Америки, а просто PC стали уже достаточно мощными, чтобы худо-бедно начать вливаться в общую струю.
И сама по себе эта общая струя с нашествием венды никуда не девалась, а тихо-мирно развивалась у себя там в альтернативной реальности, и постепенно вылилась в современные GTK и Qt. У которых, да, с вендой много взаимного влияния.
Но продумана эта система изначально была плохо, и за прошедшие годы появились модные тени под окнами и красивые кнопки с полупрозрачными гранями (за что спасибо железячникам, тихой самой воткнувшим в видеокарту сотню процессоров почти что общего назначения, способных все эти тени рассчитывать в реальном времени), но в идеологическом плане особо-то легче не стало.
P>UI в МСДОС первое время действительно работал лучше, т.к. сама модель примитивная — однопоточка, одно окно, примитивнейшая разновидность MVC, и отрисовка шлёпаньем буфера по адресу B800
Ну я б не сказал, что достаточно развитая оконка в стиле Turbo Vision, такая уж простая штука.
Здравствуйте, Pzz, Вы писали:
Pzz>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично...
Не, как раз таки то, что было написано десятки лет назад с читстым Makefile или с autotools и сейчас собирется через ./configure && make && make install. Раньше внешних зависимостей было мало. В мире С++ самая плохая ситуация с тем, кмк, что было написано лет 5-15 назад: системы сборки самые невероятные и куча внешних зависимостей.
Здравствуйте, Pauel, Вы писали:
P>А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Не затруднит привести примеры где POSIX ломал обратную совместимость?
Здравствуйте, Константин Б., Вы писали:
КБ>Но причем тут C++? Почему на других платформах C++ такими волшебными свойствами не обладает?
На каких и при чем тут язык?
Здравствуйте, Pauel, Вы писали:
P>Посикс здесь ни при чем. CLI приложения на порядки проще своих аналогов но с GUI. Интерактив минимальный или вовсе отсутствует.
Я поддерживаю приложение, где одни и теже опции можно задать через графический или командый интерфейс, код для командного интерфейса намного сложнее.
Здравствуйте, Pzz, Вы писали:
P>>UI в МСДОС первое время действительно работал лучше, т.к. сама модель примитивная — однопоточка, одно окно, примитивнейшая разновидность MVC, и отрисовка шлёпаньем буфера по адресу B800
Pzz>Ну я б не сказал, что достаточно развитая оконка в стиле Turbo Vision, такая уж простая штука.
Турбовижна было целых два — компактный на паскале, и чудовищно монструозный на плюсах
На паскалевском довольно просто было, студенты первого курса факультета радиотехники и электроники писали на нем курсовые.
Здравствуйте, Skorodum, Вы писали:
P>>Посикс здесь ни при чем. CLI приложения на порядки проще своих аналогов но с GUI. Интерактив минимальный или вовсе отсутствует. S>Я поддерживаю приложение, где одни и теже опции можно задать через графический или командый интерфейс, код для командного интерфейса намного сложнее.
Значит чтото вы делаете не так
В чем сложность командной строки? Парсер написать, который изучают на первом курсе непрофильной специальности?
Здравствуйте, Pzz, Вы писали:
Pzz>В вендовых программах такое вообще в порядке вещей и никто даже и не жалуется. Кроме инвалидов умственного труда, типа меня, которые успели застать лучшие времена.
Не только в вендовых. Я в ведроидной программе как-то пробовал дату ввести. Дак она мне вместо стандартного виджета показала три списка (день, месяц, год). Я кое-как выбрал. Увидел в поле ввода результат, год оказался на единицу меньше, хотя я выбрал правильно (я потом ещё десяток раз проверял). При попытке поправить дату, программа показала не то, что я ввёл уже, а выставила снова свои умолчания.
Короче, дату в той софтине я так и не ввёл. Софтину снёс.
Тот же сервис в Винде из-под браузера отработал нормально.
Здравствуйте, Pauel, Вы писали:
P>Значит чтото вы делаете не так
Или вы
P>В чем сложность командной строки? Парсер написать, который изучают на первом курсе непрофильной специальности?
Парсер это меньшая часть работы и велосипед этот писать обычно не надо. В графическом интерфейсе намного проще ограничить что и когда пользователь может вводить.
Здравствуйте, Skorodum, Вы писали:
P>>В чем сложность командной строки? Парсер написать, который изучают на первом курсе непрофильной специальности? S>Парсер это меньшая часть работы и велосипед этот писать обычно не надо. В графическом интерфейсе намного проще ограничить что и когда пользователь может вводить.
Непонятно, где у вас сложность в консольном приложении
Здравствуйте, Pzz, Вы писали:
Pzz>В DOS-овской полноэкранной программе было немыслимо, чтобы программа уже актиривовала поле ввода (куда печатать), потом полминуты инициализировалась, а потом затерла нахрен всё, что пользователь к этому моменту в это поле ввода успел напечатать.
Pzz>В вендовых программах такое вообще в порядке вещей и никто даже и не жалуется. Кроме инвалидов умственного труда, типа меня, которые успели застать лучшие времена.
Не связано ли это как-то с наличием многозадачности? 🤔
Думаю если вернуть вас в эти светлые однозадачные времена — вы взвоете.
Собственно кто и что вам мешает поставить DOS и пользоваться им? 🤔
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, Pzz, Вы писали:
Pzz>>Я б тут ехидно заметил, что программы на C++ через десятки лет и собрать-то проблематично... S>Не, как раз таки то, что было написано десятки лет назад с читстым Makefile или с autotools и сейчас собирется через ./configure && make && make install. Раньше внешних зависимостей было мало. В мире С++ самая плохая ситуация с тем, кмк, что было написано лет 5-15 назад: системы сборки самые невероятные и куча внешних зависимостей.
А давайте проверим. Дайте пример таких чудесных искходников и мы попробуем их собрать.
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, Константин Б., Вы писали:
КБ>>Но причем тут C++? Почему на других платформах C++ такими волшебными свойствами не обладает? S>На каких и при чем тут язык?
Тут сверху есть кнопочка "показать положение в теме". Там можно посмотреть всю переписку и ознакомится с контекстом обусждения.
Да сколько можно уж говорить, что все эти пертурбации ничего не говорят ни о языках, ни о технических возможностях. А лишь о политических играх в корпорации.
Здравствуйте, Константин Б., Вы писали:
Pzz>>В вендовых программах такое вообще в порядке вещей и никто даже и не жалуется. Кроме инвалидов умственного труда, типа меня, которые успели застать лучшие времена.
КБ>Не связано ли это как-то с наличием многозадачности? 🤔
А что, притормозить активацию поля ввода до окончания инициализации в условиях многозадачности мешает отсутствие в природе какого-то необыкновенного примитива синхронизации?
КБ>Думаю если вернуть вас в эти светлые однозадачные времена — вы взвоете. КБ>Собственно кто и что вам мешает поставить DOS и пользоваться им? 🤔
Ты не поверишь, в 90-е я написал TELNET-клиента для MS-DOS, который поддерживал одновременно несколько активных терминальных сессий, плюс в нем был встроенный FTP-сервер, для обмена файлами между рабочим местом на MS-DOS и удаленным UNIX-ом, и он тоже не ограничивал количество активных сессий единицей, плюс много чего еще другого было.
У меня была встроенная самодельная многопоточность. Я тогда не умел еще делать столько параллелизма в одном потоке.
Оно даже продавалось в России и даже отбивало мою зарплату.
Здравствуйте, SkyDance, Вы писали:
S>>Вместе с командой Python Google уволила команды Flutter и Dart
SD>Да сколько можно уж говорить, что все эти пертурбации ничего не говорят ни о языках, ни о технических возможностях. А лишь о политических играх в корпорации.
Абсолютно согласен. Как-то глянул мельком на эти Flutter и Dart — сложилось впечатление, что двигаются в сторону упрощения программирования, в отличие от того же монструозного С++, который наоборот двигается в сторону усложнения
Здравствуйте, wl., Вы писали:
wl.>в отличие от того же монструозного С++, который наоборот двигается в сторону усложнения
C++ в этом смысле уникален: с каждым новым стандартом язык становится все сложнее и сложнее (честно говоря вообще не представлю, как новичков можно обучать C++20), но вот программировать с современным C++ становится проще.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Константин Б., Вы писали:
КБ>>Думаю если вернуть вас в эти светлые однозадачные времена — вы взвоете. КБ>>Собственно кто и что вам мешает поставить DOS и пользоваться им? 🤔
Pzz>Ты не поверишь...
Конечно поверю. Так кто и что мешает поставить DOS и пользоваться им?
Здравствуйте, so5team, Вы писали:
S>C++ в этом смысле уникален: с каждым новым стандартом язык становится все сложнее и сложнее
Ну дык новые фичи впихивают
S>Но вот программировать с современным C++ становится проще.
Скорее удобнее. Ну и опять таки никто ж не заставляет использовать все новые фичи
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
S>>C++ в этом смысле уникален: с каждым новым стандартом язык становится все сложнее и сложнее CC>Ну дык новые фичи впихивают
Ну да. Причем иногда кажется, что впихивают вещи, которые сделаны более сложными, чем должны были бы быть (ИМХО, яркими примерами таковых являются модули в C++20 и deducing this в C++23, хотя и концепты в C++20 не сказать, что просты и очевидны).
S>>Но вот программировать с современным C++ становится проще. CC>Скорее удобнее. Ну и опять таки никто ж не заставляет использовать все новые фичи
В таких-то случаях "удобнее" становится тождественным "проще". Например: structured binding, fold expression и if constexpr в C++17, spaceship operator и designated intializers в C++20.
Здравствуйте, Pauel, Вы писали:
P>Непонятно, где у вас сложность в консольном приложении
Раз непонятно, то надо прочитать еще раз: код для обработки параметров переданных через командную строку сложнее, чем код для задания тех же параметров через графический интерфейс, особенно для позиционных параметров. Причины этого очевидны: в графическом интерфейсе можно сразу ограничить что и когда пользователь может вводить.
Здравствуйте, Константин Б., Вы писали:
КБ>А давайте проверим. Дайте пример таких чудесных искходников и мы попробуем их собрать.
Например Постгрес, 7.4.8 — версия которую я использовал ~18 лет назад.
Чтение документации — 2 минуты. Сборка — 20 секунд:
SECONDS=0
sudo apt install tar make wget gcc-9
wget https://ftp.postgresql.org/pub/source/v7.4.8/postgresql-7.4.8.tar.bz2
tar -xvjf postgresql-7.4.8.tar.bz2
cd postgresql-7.4.8/
./configure --without-readline
make CC=/usr/bin/gcc-9 -j
echo $SECONDS
...
All of PostgreSQL successfully made. Ready to install.
20
КБ>...и мы попробуем их собрать.
Зачем говорить о себе во множественном числе?
Здравствуйте, Pzz, Вы писали:
Pzz>А что, притормозить активацию поля ввода до окончания инициализации в условиях многозадачности мешает отсутствие в природе какого-то необыкновенного примитива синхронизации?
Это продвинутый стейтменеджмент, на самом деле. Статус инициализации это значит, что у вас более-менее внятная модель приложения, в которой есть такая капабилити.
бОльшая часть приложений такого не имела. И вообще, великие сиплюсники такими мелочами не заморачивались UI тех времен это нашлепать OnButtonPressed, накорябать DoDataExchange и на этом все.
Здравствуйте, Skorodum, Вы писали:
S>Раз непонятно, то надо прочитать еще раз: код для обработки параметров переданных через командную строку сложнее, чем код для задания тех же параметров через графический интерфейс, особенно для позиционных параметров. Причины этого очевидны: в графическом интерфейсе можно сразу ограничить что и когда пользователь может вводить.
Вы снова говорите что сложнее чего. Пример командной строки у вас есть?
И почему вы сравниваете фрагмент кода с другим фрагментом, а не все приложение с другим? У вас что, ui только проверкой параметров занимается?
Здравствуйте, Skorodum, Вы писали:
P>>А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены. S>Не затруднит привести примеры где POSIX ломал обратную совместимость?
Ловко вы целое подменили частью. Или для вас это одно и то же?
Здравствуйте, Pauel, Вы писали:
P>Вы снова говорите что сложнее чего. Пример командной строки у вас есть?
Да пожаулйста, что-то типа такого:
- опция 1:
* допустимое значение 1
* допустимое значение 2
* допустимое значение 3
— опция 2:
* диапазон от -100 до 100
— опция 3:
* путь к файлу
— опция 4 выбор между:
* 4.1
* допустимое значение 1
* допустимое значение 2
* 4.2
* допустимое значение 1
* допустимое значение 2
Все это не прибито гвоздями в коде, а задано во время исполнения через какой-нибудь JSON или XML.
P>И почему вы сравниваете фрагмент кода с другим фрагментом, а не все приложение с другим? У вас что, ui только проверкой параметров занимается?
Потому что это сравнение яблок с яблоками. Про сравнение приложений в целом уже хорошо ответил Pzz
Здравствуйте, Pauel, Вы писали:
P>Ловко вы целое подменили частью. Или для вас это одно и то же?
Для начала определитесь что для вас целое в исходном утверждении
Это не в плюсах дело. Микрософт первые двадцать лет основательно приседали с обратной совместимостью. Потому и получается, что можно откомпилировать и запустить.
А вот тот же фокус повторить с апи линукса или макоси у вас уже не получится — эти товарищи обратной совместимостью не озабочены.
Про "можно откомпилировать и запустить" привел пример тут
Например, Постгрес 7.4.8 — версия которую я использовал ~18 лет назад.
Чтение документации — 2 минуты. Сборка — 20 секунд:
SECONDS=0
sudo apt install tar make wget gcc-9
wget https://ftp.postgresql.org/pub/source/v7.4.8/postgresql-7.4.8.tar.bz2
tar -xvjf postgresql-7.4.8.tar.bz2
cd postgresql-7.4.8/
./configure --without-readline
make CC=/usr/bin/gcc-9 -j
echo $SECONDS
...
All of PostgreSQL successfully made. Ready to install.
20
Здравствуйте, Pauel, Вы писали:
Pzz>>У меня была встроенная самодельная многопоточность. Я тогда не умел еще делать столько параллелизма в одном потоке.
P>А вот интересно, как вы многопоточность делали в досе?
Здравствуйте, Pauel, Вы писали:
Pzz>>А что, притормозить активацию поля ввода до окончания инициализации в условиях многозадачности мешает отсутствие в природе какого-то необыкновенного примитива синхронизации?
P>Это продвинутый стейтменеджмент, на самом деле. Статус инициализации это значит, что у вас более-менее внятная модель приложения, в которой есть такая капабилити.
Ужось. А если одна часть приложения обратится к другой части приложения, а та еще не готова, это тоже продвинутый стейтменеджмент? Или ну его нафиг, пользователь сам быстро разберется, что перед приложением лучше не дышать, пока лампочка диска мигает и еще секунд 15 после того?
Здравствуйте, Pzz, Вы писали:
Pzz>Ужось. А если одна часть приложения обратится к другой части приложения, а та еще не готова, это тоже продвинутый стейтменеджмент?
Именно. Вам же надо не абы как обратиться.
Вам нужно выстроить такую коммуникацию. В ui это делается через тот самый стейт менеджмент, т.е. в любой момент времени вам точно известно состояние каждой из частей приложения.
Здравствуйте, Pauel, Вы писали:
P>Механизм переключения какой был, если в кратце?
Скорее всего через прерывания таймера, перед возвратом подменяешь SP на SP из "другого потока", а SP от этого "потока" ныкаешь в карман. В итоге ты из прерывания вымаргиваешь уже в другой контекст.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
P>>Механизм переключения какой был, если в кратце? CC>Скорее всего через прерывания таймера, перед возвратом подменяешь SP на SP из "другого потока", а SP от этого "потока" ныкаешь в карман. В итоге ты из прерывания вымаргиваешь уже в другой контекст.
Меня интересует конкретный вариант, тк на ассемблере я сам такое пробовал.
Здравствуйте, SkyDance, Вы писали:
S>>Вместе с командой Python Google уволила команды Flutter и Dart
SD>Да сколько можно уж говорить, что все эти пертурбации ничего не говорят ни о языках, ни о технических возможностях. А лишь о политических играх в корпорации.
Ты так серьезно? Вообще это шутка была!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Pauel, Вы писали:
Pzz>>Путем переключение стеков. Что именно рассказать?
P>Механизм переключения какой был, если в кратце?
Ну, кооперативная, конечно. Когда одна нитка чего-нибудь ждала, вызывался скедулер, который переключался на следущую готовую для исполнения нитку. В целом, это совсем несложная вещь.
Здравствуйте, Pzz, Вы писали:
P>>Механизм переключения какой был, если в кратце?
Pzz>Ну, кооперативная, конечно. Когда одна нитка чего-нибудь ждала, вызывался скедулер, который переключался на следущую готовую для исполнения нитку. В целом, это совсем несложная вещь.
А можно подробнее, как вы это ожидание определяли?
Здравствуйте, Pauel, Вы писали:
Pzz>>Ну, кооперативная, конечно. Когда одна нитка чего-нибудь ждала, вызывался скедулер, который переключался на следущую готовую для исполнения нитку. В целом, это совсем несложная вещь.
P>А можно подробнее, как вы это ожидание определяли?
У меня были обертки для всего, что мне надо, в таком блокирующемся POSIX-ном стиле. Скажем, функция n_read(), которая читала из сетевого сокета. Если в сокете было чего читать, она это сразу возвращала. А если читать было нечего, она вставляла текущую нитку в список ниток, которые надо разбудить, когда появится, пинала отдельную нитку, которая мониторила все сетевые сокеты и засыпала. Ну а когда в каком-то из сокетов что-то появлалось, мониторащая нитка это обнаруживала и будила всех, к кому это относится.
Здравствуйте, Pzz, Вы писали:
P>>А можно подробнее, как вы это ожидание определяли?
Pzz>У меня были обертки для всего, что мне надо, в таком блокирующемся POSIX-ном стиле. Скажем, функция n_read(), которая читала из сетевого сокета. Если в сокете было чего читать, она это сразу возвращала. А если читать было нечего, она вставляла текущую нитку в список ниток, которые надо разбудить, когда появится, пинала отдельную нитку, которая мониторила все сетевые сокеты и засыпала. Ну а когда в каком-то из сокетов что-то появлалось, мониторащая нитка это обнаруживала и будила всех, к кому это относится.
Я вот такое попробовал на жээсе замутить, что бы можно было полностью отделить приседания с бд, хттп и подобными вещами от логики, но пока что влип по самые нидерланды.
Идея в том что бы сделать многозадачный процессор всякой фоновой мешанины, которая зависит друг от друга
Здравствуйте, Pauel, Вы писали:
P>Я вот такое попробовал на жээсе замутить, что бы можно было полностью отделить приседания с бд, хттп и подобными вещами от логики, но пока что влип по самые нидерланды. P>Идея в том что бы сделать многозадачный процессор всякой фоновой мешанины, которая зависит друг от друга
Go, со всеми своими легковесными потоками, примитивами синхронизации и т.п., умеет компилироваться в JS. И там у них работает ну примерно вообще всё, кроме того, что в JS в принципе невозможно (например, ходить по сети, куда хочешь).
Но я боюсь, для более-менее осмысленных применений это довольно толстенький JS получится
Здравствуйте, Pzz, Вы писали:
Pzz>Но я боюсь, для более-менее осмысленных применений это довольно толстенький JS получится
Не думаю, что это прям огромная какая-то проблема. Вон, ren'py умеет в wasm https://www.renpy.org/
я для прикола загрузил игрулю на сайт и запустил с мобилки. Ну да, поначалу тупит и грузит ассеты, но не прям критично и неюзабельно, учитывая, что изначально там python
Здравствуйте, wl., Вы писали:
wl.>Не думаю, что это прям огромная какая-то проблема. Вон, ren'py умеет в wasm https://www.renpy.org/ wl.>я для прикола загрузил игрулю на сайт и запустил с мобилки. Ну да, поначалу тупит и грузит ассеты, но не прям критично и неюзабельно, учитывая, что изначально там python
В проекте чем меньше языков и платформ, тем лучше, особенно, если вы один это мейнтейните
Васм это отдельная платформа, го — тоже, плюс сам жеес- и вы уже погрязли непойми в чем
+ ограничения из за васм. Просто так расширить уже ни-ни
Вот казалось бы простая задача, вытащить часть вычислений в васм. А хрен там — для более менее взрослой модели вам придется все держать внутри васм, те фактически разработка перелезет в го