Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Ну то есть фронт таки использует TS, не так ли? V>>Сам с собой решил поспорить? НС>Нет, с тобой.
Не вижу возражений моим тезисам.
Вижу спор с голосами в голове.
V>>Ты пока что продолжаешь косячить — споришь не с моими тезисами, а с голосами в голове. НС>КОсячишь пока тут только ты, выдавая раз за разом бред, и прикрывая свои просеры личными нападками.
Да задолбала твоя демагогия. ))
Степень упоротости можно было и контроллировать...
V>>>>А взять сайты и embedded сниппеты от того же гугла — там вообще непонятно, то ли с Dart этот автогенерённый код, то ли с TS, то ли еще с чего. НС>>>Зато с ангуляром гугловым все понятно. V>>Ангулар — это не готовое приложение, а лишь ср-во для построения оного. НС>И что?
Ты допустил широкое толкование в пользу любой из противоположных точек зрения на исходный тезис.
Т.е. опять накосячил с аргументацией.
Упоминаемый всуе "детсад" на этом ресурсе — это именно оно, отсутствие базовых навыков спора.
Будешь злостно продолжать в том же духе, будешь записан в разряд шимжи и прочих упоротых.
V>>И даже применение Ангулара не требует применения TS в целевом проекте, аналогично с Vue. НС>Одно время требовало. Сейчас очень рекомендуется. V>>Но главное — мне (и не только) скучно спорить со слабым собеседником НС>И опять прикрываешь свой просер манерами бомжа. У тебя все собеседники, как я погляжу, херовые. Один ты стоишь весь в белом красивый.
Не все, а два с половиной тут, вы одни и те же уже скоро лет 20.
Раньше вас было на двоих-троих больше, но они отсохли уже.
Собсно, характерный для RSDN "стиль", обстёбанный даже в Лурке, когда-то не без твоего участия был сформирован.
Да чего уж там преуменьшать — ты активнейший спорщик все года, даром что второй ник завёл.
Хотя, понимаю, светить упоротостью на весь интернет — то еще позорище.
V>И да, сейчас получить указатель непосредственным образом можно только на статические методы. V>Ниже в сырцах можно подсмотреть, как получить указатель на экземплярный метод и как вызывать затем.
Предпочтительный способ для размещения среды выполнения .NET Core в .NET Core 3.0 и более поздних версиях — это библиотеки API nethost и hostfxr. Эти точки входа решают все сложности по поиску и настройке среды выполнения для инициализации, а также поддерживают как запуск управляемого приложения, так и вызов статического управляемого метода.
А что касается упрощения вызовов можно через Source Generator нагенерить методов типа
static T WrapClassMethod(int i,param1,param2,...)
и солнце б утром не вставало, когда бы не было меня
Re[32]: MS забило на дотнет. Питону - да, сишарпу - нет?
V>Просто на Си (даже не С++) инструментарий обыгрывания различий удобнее из-за макропроцесора. V>"Удобнее" означает меньше трудозатрат в пересчёте на каждое такое обыгрывание. V>Плюс, по правилам велосипедостроения, уже очень мало кто изобретает велосипеды, т.к. эти задачи давно и многократно решены, т.е. стоимость "обыгрывания" порой примерно нулевая.
Ну условная компиляция тоже напрополую применяется в том же C# для Андроид, Windows, Linux и не поверишь даже для WinCE
и солнце б утром не вставало, когда бы не было меня
Re[52]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, vdimas, Вы писали:
НС>>Нет, с тобой. V>Не вижу возражений моим тезисам.
Я возражаю не тезисам, а приводимому тобой "факту".
V>Да задолбала твоя демагогия. ))
А что ты ожидал в ответ на постоянные личные наезды? Типа ты тут срешь другим на головы, а остальные должны общаться с тобой конструктивно?
V>Степень упоротости можно было и контроллировать...
Ну так контролируй, чего ты распускаешься аки папоротник на Купалу?
V>>>Ангулар — это не готовое приложение, а лишь ср-во для построения оного. НС>>И что? V>Ты допустил широкое толкование в пользу любой из противоположных точек зрения на исходный тезис.
Опять нужна ссылка на видео. Я не допускаю ничего, я прямо опровергаю твою ложь об отсутствии TS на фронте фактами.
V>Т.е. опять накосячил с аргументацией.
Косячишь тут пока ты, не приведя ни одного факта, только свое великое мнение, перемешанное с базарным хамством.
V>Будешь злостно продолжать в том же духе, будешь записан в разряд шимжи и прочих упоротых.
Тебе это уже не грозит, угу.
V>Хотя, понимаю, светить упоротостью на весь интернет — то еще позорище.
Ну так не свети, побереги байтики.
V>>>Image: cec2b007d6f062695f3fd0b8a7df66ec.png НС>>Ссылка на исследование где? Откуда эти данные, как и когда получены?
V>Очередное ЧТД. V>"- Где ссылки???!!!111"
Так где?
V>Это тупо демагогические приёмы.
Нет, демагогические приемы это вброс непонятно откуда взятых данных.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[50]: MS забило на дотнет. Питону - да, сишарпу - нет?
Ну ангулар это в основном TS. Asp.Net для фронта это больше TS.
Vue тоже TS использует https://ru.vuejs.org/v2/guide/typescript.html
Просто TypeScript удобен как для интеллисенса и поиском сиснтаксических ошибок на этапе компиляции, а значит и ускорения разработки
и солнце б утром не вставало, когда бы не было меня
Re[51]: MS забило на дотнет. Питону - да, сишарпу - нет?
S>Просто TypeScript удобен как для интеллисенса и поиском сиснтаксических ошибок на этапе компиляции, а значит и ускорения разработки
Я не пытался спорить о преимуществах или недостатках TS, тем более, сам голосую за типизированные языки.
Речь шла о том, насколько быстро, начиная с 2012-го (годы выхода TS) он вытесняет чистый JS.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
S>>Ну ангулар это в основном TS.
V>И популярность его не просто не самая большая, а тупо падает. V>https://habr.com/ru/company/ruvds/blog/516306/
А где динамика, что бы понять, что падает. А так он на уровне реакта. JQury это просто обертка. Ему далеко до
S>>Просто TypeScript удобен как для интеллисенса и поиском сиснтаксических ошибок на этапе компиляции, а значит и ускорения разработки
V>Я не пытался спорить о преимуществах или недостатках TS, тем более, сам голосую за типизированные языки. V>Речь шла о том, насколько быстро, начиная с 2012-го (годы выхода TS) он вытесняет чистый JS.
Ну динамика то быстрая особенно по сравнению с Dart https://habr.com/ru/post/543346/
Круче всех!
Здравствуйте, Ikemefula, Вы писали:
I>>>Если тренировать вкус, то рано или поздно начнешь чувствовать оттенки. N>>Оттенки я чувствую. Но зачем это вообще, если, повторюсь, единственная польза — чтобы не уснуть когда надо продержаться? I>Я пью кофе не шоб штырило, а для удовольствия. Т.е. вопрос "не уснуть" как правило не стоит. Поэтому хватает с утра две-три чашки за завтраком.
"Хватает" 2-3 чашки за завтраком?
Не, ну есть коллега, которому 6 чашек надо чтобы проснуться, но у него какая-то дикая ВСД (да, я знаю, что это не научный термин). Но по-моему 2-3 за один завтрак это уже лёгкая наркомания.
I>Раньше разгонялся кофием, но отошел от этого году в 14м.
Если 2-3, то не отошёл. Разве что слегка слез с иглы.
I>А вот чтоб не уснуть, здесь лучше работает физическая активность, упражнения, прогулка итд.
Гм, представляю себе это посреди лекции...
The God is real, unless declared integer.
Re[41]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Serginio1, Вы писали:
V>>На один кадр могут быть миллионы вызовов, в нейтиве это быстро — на миллион вызовов будет что-то 350 микросекунд расходов, а в твойм случае 16 миллисекунд только стоимость самих вызовов, это 60 FPS ограничение сверху еще безо-всякой полезной работы, в нейтиве ограничение на той же сцене будет под 3 тыс FPS. S> Нахрена тогда манагед код? Манагед как ты говоришь это скрипты, а тут он пополам с нативным кодом работает
Это в продолжении разговора, почему managed-код не используется для графических движков.
По моему ИМХО — из-за дорогого вызова нейтивных вещей.
Даже из обычного VB нейтивные ф-ии вызывались мгновенно.
V>>Открой Visual Studio Installer и установи тулчейн под Андроид. V>>Вот какой пустой проект генерится: S>И где там .NetStandard? там есть TargetFrameworkVersion>v11.0</TargetFrameworkVersion> S>а он поддерживает .Net Standard 2.1
ОК, проверил — поддерживает.
Но продукт портировали на .Net Core пару лет назад.
Думается, ранее выхода очередной LTS-версии смысла дергаться нет.
V>>Почему я должен что-то признавать, если наш продукт, например, поставляемый в виде либы, на Андроиде заведомо не заведётся? V>>Пока что только винды, линуха и макось. V>>С Андроидом пока некоторая борьба. S> Потому что платформозависимый? Или все таки сделанный под .NetStandard 2.1?
Конечно, платфрменнозависимый.
С другой стороны, там под капотом обычные линуха, поэтому, вполне возможно, что Андроид будет окучен.
Тем более, что рядом подсказали, что .Net 6.0 должен заменить собой моно-рантайм Хamarin-а.
(надо будет проверить при выходе)
V>>Зачем же тогда нужен Xamarin, если тогда можно было бы пользовать WPF? )) S>Нет поэтому и помечаются как платформозависимые. Часть можно сделать через условную компиляцию.
ЧТД.
Через условную компиляцию ты будешь транзитивно порождать платформенно-зависимые бинари, прощай обещанная "чистая кроссплатформенность". ))
Нам пока удаётся сохранять один бинарь подо-все платформы.
Тут работает тот факт, что пока до вызова помеченной DllImport ф-ии дело не дошло, то реального ресолвинга не происходит.
S>Поэтому и развивают Xamarin.Forms где тот же гуй один для всех, а реализация для каждой платформы своя.
Тебя самого не смущает, что ровно с этой же целью был разработан Silverlight, WPF и прочие?
Или вот MAUI вышел.
Глаза не разбегаются от родственных технологий? ))
V>>Из них чуть ли не половина — вспомогательных для этих сред, в основном для целей разработки. V>>А целевых прикладных — тут до нейтива как до Европы раком еще. S> Да любые библиотеки начиная от xml,json заканчивая EntityFramework и прочими тяжеловесными продуктами.
))
V>>Т.е., завернуть, приготовить, упаковать и отправить в некую "черную дыру" (по вашим представлениям), где всё полезное и происходит, собсно. S>Там есть апи, и довольно жидкое. А вот EntityFramework там и генерация кода в рантайме и тот же любимый сишниками Sourcecode Generator.
Ну, в C++ изначально маппинг прост, поэтому, выделенные ORM непопулярны.
Да и банальный шаблон Фасад ничего не стоит в рантайме, т.е. штрафа за абстракцию нет.
Что касается общения с БД — в плюсах принято вручную контроллировать ресурсы, например, самим управлять пулом соединений, самим решать, как именно посылать запросы к базе (синхронно, безблокировочно или асинхронно), как ожидать ответ и т.д. В дотнете же это всё "даётся сверху" без малейшей возможности настроить под себя. Просто тебе дан некий "наиболее общий сценарий", скажи спасибо и за это.
Ну и, низлежащие драйвера связи с БД дают доступ к памяти прочитанной строки БД, т.е., в отличие от дотнетных дров, нет надобности копировать эти данные, да еще в "вертикальное" представление в памяти, когда каждый столбец рекордсета представлен массивом. Прямо из поданной драйвером памяти данные непосредственно используются по чтению.
В общем, практики резко другие.
Тиков проца потребляется в разы меньше.
Особенно когда речь идёт о локальных in-proc базах-хранилищах и непосредственного использования их низкоуровневого АПИ, там и вовсе эффективность на порядки выше.
В последних дотнетах тоже есть возможность переписать драйверы общения с БД на похожий манер (через упомянутую сборку Unsafe), но вряд ли это сделают, бо легаси такое легаси...
И да, в плюсах полно реализаций "самого общего сценария" https://oatpp.io/docs/components/orm/
(с полутыка найдёшь еще несколько)
Но как-то явного лидера не выявилось, по всем перечисленным причинам.
В общем, не та область, которая требует тщательного предварительного окучивания.
В нейтиве выгодней делать DAL прямо на уровне DB-провайдера, а не абстрагировать ORM от DB-провайдера, как это сделано в дотнете и ссылке выше на плюсовый проект.
Это тоже важная причина, ИМХО, потому что позволяет написать наиболее эффективный код под каждого провайдера.
Абстрагировать выгодней россыпь хелперов в DDD-стиле, причём, через compile-time абстракции, т.е. через шаблонный код, где хелперы переиспользуются в конкретных реализациях DAL.
V>>Да задолбала твоя демагогия. )) НС>А что ты ожидал в ответ на постоянные личные наезды?
"Ты написал бред", "твои технологии г-но" — это, конечно, не личные наезды.
Хотя, мне вообще плевать на "личные" и не "личные".
Имеет значение только только хамство vs порядочность.
У вас с Синклером устоялась манера общения на форуме в виде наездов, просьба хотя бы быть мужиками и не спрашивать "а нас-то за что?".
Млин, устал на это морщиться...
И опять испытывать то самое чувство, когда стыдно за другого человека.
НС>Нет, демагогические приемы это вброс непонятно откуда взятых данных.
При желании понятно.
Нет желания — сразу досвидан, ты здесь не за истиной.
Re[53]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Serginio1, Вы писали:
V>>И популярность его не просто не самая большая, а тупо падает. V>>https://habr.com/ru/company/ruvds/blog/516306/ S>А где динамика, что бы понять, что падает. А так он на уровне реакта. JQury это просто обертка. Ему далеко до
Там же на диаграммах:
35.8% ранее использовавших Ангулар не собираются использовать его вновь.
ИМХО, самым вменяемым является реакт (в общении с Ikemefula подробно объяснял — почему).
Ну и этот простенький Vue — там всё понятно, это простой шаблонизатор с "низкой планкой входа", но он заточен под обычный JS, под самый беспроблемный конфиг окружения.
Но реакт у больших ресурсов не очень популярен, бо слишком жрет тики проца на клиенте.
Но самый вменяемый архитектурно...
Но требовательный к ресурсам...
В общем, я когда смотрю на современное состояние веба — жесть...
Сейчас происходит то самое "смутное время", т.е. разгребать итоги стоит не ранее, чем лет через 10.
А пока слишком много метаний.
"35.8% использовали, но больше не хотят" — об одной из 3-х самых популярных всокоровневых технологий.
И на первом месте чистый jQuery...
Да это эталонный северный пушной зверёк. ))
V>>Я не пытался спорить о преимуществах или недостатках TS, тем более, сам голосую за типизированные языки. V>>Речь шла о том, насколько быстро, начиная с 2012-го (годы выхода TS) он вытесняет чистый JS. S> Ну динамика то быстрая особенно по сравнению с Dart
По сравнению с Dart разве что.
Но Dart неплохо потеснил react-native в Андроиде.
Лично мне неудивительно.
А еще обрати внимание на долю TS в мобильной разработке — в 2.7 раза ниже, чем у Dart.
S> А вот в бэке всего в 2 раза уступает JS и на фронте в 2.5.
Отож.
А прошло уже 9 лет, на минуточку, а это уже можно делать выводы.
Например, C# отгрыз себе за 9 лет развития примерно ту долю, в которой обитает и сейчас.
Жаль, что они не проводили многомерные опросы в прошлом — теперь стоит ждать год-другой повторения опросов, чтобы понять динамику.
Но что-то мне подсказывает, что роста в 3% в год для TS не будет, что он уже в стадии насыщения.
О чем я и высказался, что "TS вытесняет обычный JS весьма неспешно".
S> Тьфу ты это же DOU.UA . Но все равно показатель!
Чего??
Hacker Noon — американское медиа, которое фокусируется на новостях о технологиях, стартапах, искусственном интеллекте, разработке программного обеспечения и блокчейн-технологии.
Аудитория медиа — в основном, читатели из США, Индии, Великобритании, Канады и Германии. Медиа базируется на пользовательском контенте: любой пользователь может зарегистрироваться на ресурсе и предложить статью для публикации.
...
Ресурс HackerNoon был основан в 2016 году, а к 2020 достиг 4 млн посещений в месяц без платных методов продвижения. Команда разработала CMS (систему управления контентом, на которой работает HackerNoon.com) и программное решение для голосования пользователей (на котором работает платформа с наградами Noonies.Tech). У компании также есть подкаст и платформа для публикаций вакансий от технологических компаний в Америке. Hacker Noon зарабатывает от рекламы на ресурсах.
...
Во второй четверти 2020 на ресурсе публиковалось до 30 статей в день.
Мы уже обсуждали эту "статистику".
Это опрос "а вот что вам интересно?"
Интересно обычно то, что на слуху, но что сам еще не трогал.
Rust интересен даже мне, если что.
Но я его уже потрогал, поэтому мой интерес не столь высок.
Увы, это не "серебрянная пуля", это жесткая система ограничений, т.е. избалованные вседозволенностью JS-программисты взвоют на первых же сниппетах в Rust, где компилятор будет ругаться на каждый чих, например, при попытке просто выполнить a = b.
Не выполнится в 90% случаев, если не понимать, в чём прикол. ))
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, vfedosov, Вы писали:
V>>Если проект в одно рыло пишешь, то пайтон делает шарп в разы по скорости разработки.
НС>Можно пример именно логики, которую в разы быстрее на пайтоне?
Ну вот к примеру +- типичная задача: нужно развернуть индекс: есть индекс по одному ключу, надо построить по другому. В пайтоне решается так:
names2data = {"name1": (1, 3, "str1"), "name2": (2, 4, "str2")}
data2names = {data[1]: name for name, data in names2data.items()}
я не в курсе, может последние версии шарпа позволяют коротко эту задачу решить — уж лет 6-7 не работаю с шарпом, но пайтон и 10 лет назад это поддерживал. Насколько кратко можно проинициализировать сложную структуру данных и насколько легко с ней работать! Кстати работает мега быстро в отличии от довольно медленного Linq.
Или обработка массивов float — работает почти как на плюсах по скорости. Имеем двумерный numpy массив — картинку (яркости пикселей нормированы к 1.0), надо сделать ярче в 1.5 раза, но значения не должны быть больше 1.0:
array_2d = np.min(array_2d * 1.5, 1.0)
Может слегка с синтаксисом в примерах накосячил (влом проверять) — но суть такая.
Представь чего на шарпе придется нагородить для этого и сколько это работать будет по времени. Работа с массивами в numpy вообще впечатляет — очень элегантно. Занимаясь имадж процессингом, я понял, что плюсы не нужны почти нигде — все можно сделать на пайтоне — и не будет тормозить! На шарпе это невозможно.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, vfedosov, Вы писали:
Б>>>>На питоне приятно писать — быстро и удобно.
M>>>А вот тут я бы поспорил
V>>Работал и на шарпе и на пайтоне. Пайтон впечатлил в плане скорости реализации логики. Если проект в одно рыло пишешь, то пайтон делает шарп в разы по скорости разработки. При командной разработке есть нюансы. Например, пайтон располагает к использованию tupple, которые по сути помойка с данными и разбираясь в чужем коде, сложно понять чего там конкретно лежит. Ну и прочие минусы отсутствия строгой типизации начинают вылазить. Думаю, что для коммандного проекта средней сложности, выгода от использования пайтона не так очевидна. А при высокой сложности, сопровождение может стать проблемой. Но это в комманде. А когда работаешь один — наслаждаешься эффективностью.
M>После тыщи-двух строк кода, даже своего, любой проект на питоне скатывается в лютое гавно, в котором хрен разберёшься. Годен только как замена башу или bat-файлам
Да ладно — текущий проектик у меня уже 5 тыс строк — это только начало. Особых проблем нет. Ввожу больше типизации сейчас, чтобы не скатываться. Заменяю tupple на dataclass, как тут коллега советовал. Все не так плохо, если структуировать код. Я сразу начал с построения архитектуры. У меня эти 5 тыс строк раскиданы по где-то 25-30 файлам — есть иерархии классов, слои, Dependency Injection и т.д. Говнякать можно на любом языке. Но на Пайтоне можно и сопровождаемый код писать — все для этого есть.
Re[41]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, netch80, Вы писали:
I>>Я пью кофе не шоб штырило, а для удовольствия. Т.е. вопрос "не уснуть" как правило не стоит. Поэтому хватает с утра две-три чашки за завтраком.
N>"Хватает" 2-3 чашки за завтраком?
Это же эспрессо, проция 30мл Я еще прошу пролив покороче делать, что бы меньше кофеина было.
Здравствуйте, vdimas, Вы писали: V>Это одна из практик проектирования ПО, только здесь в области деплоя. V>То бишь, конечные библиотеки и программы не должны самостоятельно заботиться о своём обновлении.
Это и так понятно. V>Понятно, что в Windows это десятилетиями было не так, отсюда у тебя сложности с пониманием пресловутого unix way.
И в виндах это всю жизнь так. Windows way отличается от unix way в этом месте только тем, что апдейтер отделён от инсталлятора, и что апдейтер тащит каждая программа с собой.
При этом сама программа, естественно, ничего не знает об апдейтере. Исключений — единицы. Вроде торрент-клиентов, которые свои апдейты вытаскивают через торрент V>В виндовых классических Win32 API программах часто сидит собственный/уникальный менеджер пакета, связанный с некоей личной точкой деплоя в сети.
Он сидит не в программе, а рядом. S>>То есть именно он является результатом труда разработчика. Сборка пакета является частью билд-системы, за которую отвечает собсно исходный автор.
V>Не всегда, вернее, почти никогда.
Первое, что попалось — MongoDB: https://github.com/mongodb/mongo/blob/ccae51b66b6c1fb5ae852b4faca5396d18833a2a/buildscripts/packager.py
Комментарии разработчика (https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/):
The mongodb package provided by Ubuntu is not maintained by MongoDB Inc. and conflicts with the official mongodb-org package. If you have already installed the mongodb package on your Ubuntu system, you must first uninstall the mongodb package before proceeding with these instructions.
V>Ментейнеры линухов собирают свои сборки из многих тысяч программ/библиотек. V>И тот факт, что программы "не знают" о пакетах как раз позволяет это делать.
В основном им позволяет это делать лицензия на эти программы. На винде Хром обновляется при помощи процесса Google Update, на линухе — через package manager.
Java на винде обновляется через java update, а на линухе — через package manager.\
Microsoft Office на винде обновляется через Windows Update, а на линухе — никак.
Как видим, дело не в мифическом windows/unix way, а в лицензии. V>Это мейнстримовый случай в никсах чуть ли не от рождения.
Исходно — да. Сейчас пакеты для основных дистрибутивов и докерные имаджи для всего более-менее нормального софта маинтейнят производители.
Потому что нет ни малейшего желания зависеть от воли и ресурсов меинтейнеров дистрибутивов.
V>Что-то мне подсказывает, что будь у тебя желание, ты бы мог сам найти произвольное кол-во ссылок на эти темы.
Вопрос у вас какой? Что непонятно?
V>Тебе разве в детстве не говорили, что Деда Мороза не существует? V>Вот, говорю.
Зачем мне Дед Мороз? Можно же на гитхаб сходить, посмотреть, как что устроено.
V>Еще раз (в третий) — в описанной Алексом системе каждая программа/либа тащит с собой свои зависимости. V>Неважно, статически или динамически линкованные, в последнем случае тащит их как файлы, копируемые в некую личную для программы директорию.
Алекс изначально описывал bazel, который ничего подобного не требует. То, что он предлагает тащить с собой мини-окружение для каждой программы, было репликой в сторону.
И да — такое решение позволяет избежать решения потенциально несовместной системы уравнений на версии пакетов; и да — тот же докер (а, точнее, сама идея контейнерной виртуализации) позволяет как раз не раздувать в терабайты расход дискового пространства и RAM. В отличие, естественно, от честного копирования реплик всех бинарей на файлуху. V>В классическом unix way зависимости повторно не тащат, поэтому на выходе сумма. V>Доходчиво на пальцах объяснил?
Это было и так понятно. Я вообще про вот эту тему ничего не говорил, а обсуждал исключительно ветку про зависимости вида Requires xxx >= X.Y.0 (невозможность которых вы критиковали в базеле) и про воспроизводимость билдов V>Вдогонку — и да, в одной системе могут сосуществовать одни и те же либы разных своих версий.
Ещё можете про SxS в винде почитать
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[45]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Debugging и Profiling API в дотнете это тоже для отладки. И вывод в лог должен быть не разовой операцией, а постоянной настраиваемой через конфиги фичей. Слышал, к примеру, про open telemetry?
Кто кому должен? Я же не собираюсь прерывать отладку, пересобирать все, если мне понадобилась новая утилита прямо по ходу отладки. А потом, через полчаса еще одна. И так, пока баг не найдется.
I>>Это слабенько
НС>Что слабенько? Слабенько это закат солнца вручную, который ты продемонстрировал.
Это просто дергается обычный код, только хук новый, тк именно хук мне и понадобился.
Что бы воспроизвести баг, проще кое что подпатчить на лету. Не нужен хук — можно и что другое дернуть.
I>>, нужно иметь заготовки на все случаи жизни.
НС>Какие такие заготовки? О чем ты?
Чтобы вызвать код, он где то должен быть написан до момента вызова. Или в заготовке, или в репл.
Где мне взять код утилиты, которая мне вот только что понадобилась, а именно — выводит в консоль кое что из запроса.
Re[32]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, vdimas, Вы писали:
V>Именно так. V>Под каждую такую задачку — отдельная мини-борьба с кроссплатформенностью.
Ну вы же это подаёте так, как будто у вас там прямо разное приложение под каждую платформу. А не 95% единой кодовой базы, с тщательно изолированными платформенно-специфичными 5%. V>Это был просто один из примеров, который дотнет еще не покрыл. V>Я не сомневаюсь, что рано или поздно донет покроет последние дыры, как грится, это просто пример того, что "кроссплатформенность" в своей сути — это умение обыгрывать различия платформ на некоем уровне, давая возможность приложению в целевом уровне оставаться одинаковым для большого кол-ва платформ.
А то.
V>Просто на Си (даже не С++) инструментарий обыгрывания различий удобнее из-за макропроцесора. V>"Удобнее" означает меньше трудозатрат в пересчёте на каждое такое обыгрывание.
Да вы смеётесь? Как вы обыграете отсутствие eventfd на винде при помощи "макропроцессора"?
У вас будет ровно то же самое — слой абстракции, который реализован сильно по-разному под винду и под линукс. Максимум, чего можно получить макропроцессором — это автоматического выбора нужного названия класса или семейства функций в месте их вызова.
То есть то, что в дотнете мы будем решать или при помощи DllImport, который стреляет в .dll / .so, или при помощи отдельной менеджед библиотеки, которая собирается из разных исходников в зависимости от target, из исходников с #ifdef.
V>Плюс, по правилам велосипедостроения, уже очень мало кто изобретает велосипеды, т.к. эти задачи давно и многократно решены, т.е. стоимость "обыгрывания" порой примерно нулевая.
Если задачи решены — то вопросов нет.
V>Вот здесь на входе три массива: V>https://docs.microsoft.com/ru-ru/dotnet/api/system.net.sockets.socket.select?view=net-5.0
Так кто вам мешает написать свою функцию Select?
Там кода — полстранички. Делаете её Select<T> where T: IList<Socket>, и она сохраняет совместимость со старой версией. При этом она будет уметь принимать не только массивы сокетов, но и Span-ы, и при этом благодаря рантайм-специализации уйдет почти вся косвенность вместе с нагрузкой на GC.
V>ОК, сейчас проверю опять. V>О да, сейчас до 64 элементов создают через stackalloc: V>https://github.com/dotnet/runtime/blob/57bfe474518ab5b7cfe6bf7424a79ce3af9d6657/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketPal.Windows.cs#L914 V>Глядишь, к моей пенсии всем этим можно будет пользоваться...
Пользоваться можно и сейчас. Менеджед код писать очень легко. Это в JIT контрибутить трудно, и если он чего-то не умеет — то упс. V>А какие мы были молодые, когда всё это только начиналось? ))
Начиналось оно, прямо скажем, бледно. Первый дотнет был — обнять и плакать. И самое, конечно, поганое — в том, что его следы до сих пор сохраняются в дотнете.
Вот это вот наследование IEnumerable<T> от IEnumerable, или вот ваш же пример с IList (!) в качестве аргументов...
В общем, понятно, что передать дотнет в опенсорс надо было на десять лет раньше.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[46]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ikemefula, Вы писали:
I>Кто кому должен? Я же не собираюсь прерывать отладку, пересобирать все, если мне понадобилась новая утилита прямо по ходу отладки. А потом, через полчаса еще одна. И так, пока баг не найдется.
1) Для debugging и profiling api не нужно ничего пересобирать, подключаешься к работающему процессу.
2) Нормальное логирование и метрики — обязательное требование к production коду.
3) Любое выражение можно вычислить в отладчике в процессе отладки, не правя при этом код.
I>>>, нужно иметь заготовки на все случаи жизни. НС>>Какие такие заготовки? О чем ты? I>Чтобы вызвать код, он где то должен быть написан до момента вызова.
Совсем не обязательно.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, vdimas, Вы писали:
V>>>Да задолбала твоя демагогия. )) НС>>А что ты ожидал в ответ на постоянные личные наезды? V>"Ты написал бред",
Это уже в ответ на твою манеру тут общаться.
V>"твои технологии г-но" — это, конечно, не личные наезды.
Я не писал что твои технологии гавно. И нет, эпитеты по отношению к С++ это, конечно же, не личные наезды.
V>Хотя, мне вообще плевать на "личные" и не "личные".
Ну так а чего ты тогда удивляешься ответной реакции?
V>Имеет значение только только хамство vs порядочность.
Ну вот ты тут главный хам, и этого, похоже, даже не стесняешься.
V>И опять испытывать то самое чувство, когда стыдно за другого человека.
А за себя, что характерно, не стыдно, хотя казалось бы.
НС>>Нет, демагогические приемы это вброс непонятно откуда взятых данных. V>При желании понятно. V>Нет желания — сразу досвидан, ты здесь не за истиной.
Ну то есть можно окончательно констатировать — аргументы в споре ты привести не в состоянии, и окончательно поскипал весь конструктив, полностью переключившись на личности.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?