>>223409302 (OP)Ебать, декораторы он изучает.Мой тебе совет - пока тебе они не понадобятся, ты их не изучай. У многих джунов есть ахуительная привычка наизучать кучу паттернов, модного синтаксического сахара, а потом вставлять это куда не попадя. Простой по своей сути модуль превращается в спаггети с кучей callback-ов "для универсальности кода", декораторов для соблюдения функционально го стиля и прочего дерьма.Для каждого на ворота языка или архетиктурного на ворота существует свое УЗКОСПЕЦИАЛИЗИРОВАННОЕ применение
>>223409698Если бы это было так просто>>223409709Не могу придумать лучших хоббей. ЛЮблю компутеры>>223409773Как отрасль?
>>223409848> Для каждого Не для каждого. Даун гвидон наворотил половину говна, которая вообще нахуй никому не нужна, это как с жс примерно.
>>223409899Разобрался бы с базовыми парадигмами программирования сначала. А то у зумерков вроде тебя такая каша в мозгах что я регулярно на собесах охуеваю.
>>223409302 (OP)сука ебать, мамина илита, нахуя хелловордщику паттерны? Сука пиздос, тебе от них толку 0 хер десятых, без опыта даже ООП непонятно, не то что паттерны.
>>223410010Вот например for else, серьезно блять чем надо было думать чтобы это родить сука, увидел на кодревью у какого-то зумера это охуел блять сука, стоял у меня в углу в опенофисе на коленях два часа за это, сука.
>>223409965>Иди почитай что такое фп, манюньЯ так и представил как ты на фп строишь архитектуру с тестами. Змейку пишешь 10 лет?
я в свое время неплохо в ООП продвинулся, в том числе декораторы были, но уже два года ни строчки кода не написал, теперь заново вкатываюсь, но уже в питон. понимаю что это бесперспективно, но у меня все равно тян нет, поэтому можно хуйней маятся
>>223409899Сирсли время зря теряешь. Синтаксис такой финтифлюшки выучить - 10 минут дела. А вот сферу применения сейчас ты не осознаешь, потому что эти туториалы говно.Вот когда ты разбираешься реальный проект, где это используется, то ты задаёшься вопросом "а почему тут именно так а не иначе?" И только тогда ты начинаешь понимать, что эта хуйня зависит от той хуйни, а та от этой, и если я здесь напишу по другому, то вот там код будет неочевидным и затраты на его поддержку возрастут. А на синтетических примерах из книжки - бесполезно
>>223409302 (OP)>5 вкладок ютуба>2 вкладки форчана>вместо прочтения 5-ти минутной статьи создает тред на дваче>ЯИЗУЧАЮПРОГРАММИРОВАНИЕВидос в тикток с консольным калькулятором уже записал?
>>223410768Он рассказал как примерно работает декоратор раут во фласкекакое же это говно, реальный пример
про юзер агент то же интересно я вообще не изучаю, чтобы найти работу. во всяком случае в ближайшем будущеммне кажется что я слишком туповат для такого
>>223409302 (OP)Это то же самое что учить ООП не имея опыта. Вроде круто все выглядит, принципы наследования, полиморфизма. И ты такой начинаешь писать базовый объект, от него наследуешь частные реализации, протаскиваешь вокруг всего этого логику, а потом хуяк - оказывается что у наследников начал расходиться функционал. И ты начинаешь кидать костыль на костыль, а потом и вовсе упираешься в ограничение архетиктуры.Но с инкапсуляцией то точно все норм, да? Особенно когда тебе надо чтобы функция выполнялись по разному в зависимости от каких-то обстоятельств. Начинается либо прокидывание ста параметров, либо какая-нибудь костыльная статика/синглтоны, куча if/else и код превращается в лапшу.Я к чему это. Нихуя теоретического не работает в первозданном виде. Под несколькими строчками объяснений скрывается цельный океан подводных камней
>>223411219>базовый объект, от него наследуешь частные реализации, протаскиваешь вокруг всего этого логику, а потом хуяк - оказывается что у наследников начал расходиться функционалНедели кодинга экономят часы проектирования
>>223411221Я делал вообще что можно самому функцию задавать и потом её пользоваться, синусы, косинусы, возведение в произвольную степень и тд. В страуструпе было такое задание.
>>223409302 (OP)Блять, Питон это такой пиздец, что просто пиздец.Костыль на костыле.Однопоточной производительности нет, нормальной многопоточности нет.Мне реально интересно - как эта хуйня стала популярной в сфере Data Science? Ведь нативный код работает крайне медленно, и приходится юзать костыли вроде Numba и Numpy, чтобы получить хоть какую-то производительность.К использованию Питона для написания простеньких админских скриптиков вместо Баша вопросов нет, тут он в масть.
Не так сложно заниматься чем-либо, как завалить свое тупое ебало и продолжать заниматься этим покуда во всяком случае не будет чего приличного сказать
>>223411297Очень зависит от размера таски. Для некоторых время для проектирования сопоставимо с временем туц-туц по клавиатуре. Плюс, если пишешь не для себя, то накладывается ещё куча помех в виде недостатка инфоомации
>>223411377Да того же, как и на ЖС теперь десктопные приложухи пишут - а дебильная НОДЭ ЖЭСЭ работает внутри безголового хрома внутри нгинкс внутри убунты
>>223411377>Data Science>Tensorflow>Written in C++,CUDA>neoml>Written in C++>Theano>Python, CUDA>Pandas>Cytpon,CИ так далее, питон это обёртка, никто не будет на нём петабайты данных обрабатывать, на нём матрицы 1000х1000 умножить за приличное время то не выйдет
>>223411429Как я понял, анон хотел чтоб на вход ты принимал выражение типа "((2+3)/6)*5" а на выходе давал ответ. Рекурсивный спуск тут идёт обратно порядку действий
>>223411669Ну. А я сделал не только это, а чтобы там были степени, косинусы, синусы, можно было самому функции задавать и использовать внутри выражений потом.
>>223411669>чтоб на вход ты принимал выражение типа "((2+3)/6)*5" а на выходе давал ответ. Рекурсивный спуск тут идёт обратно порядку действий>Не, я думал что он сам функцию обработки на С++ задавал, вот и прихуел немножко, как это он С++ код в рантайме интерпретирует
>>223411777Иди нахуй со своими AbstractSingeltonFactoryBean abstractSingeltonFactoryBean = new AbstractSingeltonFactoryBean();
>>223411825А прикинь как пиндосамАбстрактнаяОдиночнаяФабричнаяФасоль абстрактнаяОдиночнаяФабричнаяФасоль = новая АбстрактнаяОдиночнаяФабричнаяФасоль();
>>223411633Да понятно, что обёртка.Но ёбаный Pandas использует для всех вычиселний только одно ядро. ОДНО ЯДРО, СУКА! Просто сидишь и смотришь, как твой 11 из 12 ядер твоего Райзена простаивают. И это самая популярная либа среди датасаентистов.А когда твоя задача хоть немного отличается от типовой, уже имеющей реализацию в либах, начинается жопа.Вдруг оказывается, что чтобы написать какую-то обработку данных в цикле с вменяемой производительностью, нужно использовать @numba.jit(nopython=True), с конвертацией привычных объектов в массивы Numpy и обратно.Или, к примеру, хочешь ты написать многопоточный веб-краулер, и вдруг оказывается, что из-за ебучего GIL у тебя нормально задействуется только одно ядро ЦП, а остальные простаивают.
>>223411823Нихуя он не проще.На жаве или сисярпе ты пишешь что только в голову взбредет, и это все равно можно как-то поддерживать.На питоне ты написал строчку не так или забыл что-то задокумкетировать - добро пожаловать в страну говнокода
>>223411966Ну-ну. На джаве и с сишарпе пиши что в голову взбредет и добро пожаловать в страну говнокода. C# заточен под использование паттернов и со своей лапшой-спагетти что ты называешь кодом можешь в какой-нибудь убитой конторке за 24к сидеть. На серьезных собесах будешь жестоко унижен и обоссан за такие слова.
>>223410989Обожаю такие задания, блядь. Уровня "докажите что вольфрам расплавится на солнце". И ты сразу думаешь: из каких постулатов тебе это доказывать-то? Выводить почему на солнце именно такая температура нужно? Выводить из каких-нибудь околоклассических постулатов почему температура плавления вольфрама именно такая нужно? Или тебе квантомеханическое обоснование?Учитывать неравномерность температуры тебе нужно?В общем, либо пиши техзадание подробно, с описанием формата твоих выражений, и все такое, либо путешествуйте в общеизвестном направлении.
>>223411989В жс тоже var были. >>223411957Это бесполезное говно. Все пишут код в IDE, а не в блокноте. Единственное хоть какое-то применение - засовывать в try-with-resources, чтобы паровозик из потоков за край экрана не выходил.
>>223411956просто сделай 12 программ для разных участков данных и запускай на разных ядрахнапример в массиве с 0 до 500, пусть будет один скрипс 501 до 1000 другой
>>223411825std::unique_ptr<internal::vector_base<internal::details::user_reply_t,internal::details::user_reply_allocator_t,internal::user_reply_traits<internal::user_reply_t>>> m_user_replies{nullptr};
>>223412151>просто Это уже НЕ ПРОСТО блять.В той же жабе есть Stream API для этого, а тут - нихуя.И нахуя тогда вообще нужен Pandas?Есть, конечно, Dask, этакий многопоточный аналог, но там API не полностью совместимо и пользоваться им реально неудобно.Суть в том, что языки программирования общего назначения вроде Java или C# оказываются куда более удобными для обработки данных, чем дохуя датасаенсный Питон.
>>223411966>и это все равно можно как-то поддерживать.Нет, нельзя. Более того, в случае C#/Java этот говнокод будет перемешан с тоннами бойлерплейта. Попробуй, например, догадаться, что хранится в переменной result на пике.Говнокод можно специально создать на любом ЯП. Но в среднем количество говнокода обратно пропорционально порогу вхождения. В каком-то хацкеле, где за малейшую ошибку компилятор плюется тоннами непонятных ошибок, а без понимания концептов ЯП самостоятельно написать даже что-то тривиальное практически нереально, говнокода впринципе очень мало.
>>223412151>например в массиве с 0 до 500, пусть будет один скрип>с 501 до 1000 другойНа самом деле это может мало того, что не ускорить, так еще и замедлить общее время выполнения. На создание процесса затрачивается гораздо больше ресурсов, чем на создание потока, если процесс просущесвует 300 тактов процессора, то его создание явно не окупит результат, не говоря о том, что в итоге между ними нужна будет еще и синхронизация, чтобы собрать результаты в кучу. Если так перф нужен, то берешь плюсы с интел тбб и делоешь перфоманс, а не на петоне костылишь
>>223412151Я прекрасно знаю, как реализовать многопоточную обработку данных.Но я решительно не понимаю, какого хуя самая популярная Data Science-либа не умеет этого из коробки.
>>223412447там масив букв от а до ж, через запятую. запись макисмально уебанская, всратость и блевота.
>>223409302 (OP)Оп лучше носи миленькую одежду. Есть более простые способы рассказать миру что ты пидр.
>>223412572>там масив букв от а до ж, через запятуюНеверно.>запись макисмально уебанская, всратость и блевота.Постер выше говорил, что "это всё равно можно [будет] как-то поддерживать".
>>223412691вот эти блядь & << что ето нахуй такое, в каком веке для какого то тупейшей хуйни понадобились побитовые операторы
>>223412911Да вообще пиздец. Давай ка мы возьмём и наделим объект дополнительной функциональностью, потому что можем, это же так удобно.
>>223409302 (OP)А вот что реально нужно, так это чистая архитектура. Правильно выстраивай зависимости, соблюдай S и I, это самое главное
>>223413171Графика в играх не развивается, а жрет больше ресурсов. Значит они уже давно вместо битовых операций bool переменные хуячат.
>>223412733>Ты просто тут запутываешь побитовыми операциямиПобитовые операции здесь цветочки. Обе можно заменить на Math.Pow(n, 2), но это не делается для оптимизации (компилятор шарфика вообще практически не умеет в подобные оптимизации).>Так в реале никто не напишетЭтот код был выдран со специальной олимпиады, где один шарпист решал c помощью этого кода вполне практическую задачу.>>223412750>& Битовый И (AND)><< Битовый сдвиг влево (BIT SHIFT LEFT)>для какого то тупейшей хуйни понадобились побитовые операторыКомпилятор шарфика не умеет в оптимизацию математических операторов в дешёвые битовые.
>>223413171раздался вскрик со стороны паяльников, но инженеров не спрашивали смузигоспода, а ведь им предстояла длинная и тяжелая ночь ебли с даташитами...Железка и не меняется на протяжении всего цикла эксплуатации в отличии от прикладного ПО, хуле не говнокодить? то что заработало однажды - будет работать все время, пока кто-нибудь не въебет туда свой бэкдор.
>>223413375Вы работаете в интеле? Реалтеке? Бродкоме? ИМЦ?Я покушал российской микроэлектроники, надежно, но довольно брутально. А ведь это был обычный термодатчик с выводом данных в обычную локалку.>>223413421Знаю. Это я так провокационно пошутил.
>>223413238>Значит они уже давно вместо битовых операций bool переменные хуячат.Так почти всегда было (кроме совсем уж доисторических времён). Просто раньше писали на ЯП, которые могут в оптимизацию.Сейчас чаще всего пишут либо на интерпретируемой дрисне, либо на ЯП от таких же индусских компаний, где если продукт работает - уже хорошо, а как - не важно, маркетологи продадут и про полторы оптимизации подадут так, будто они ускоряют код в 5 раз и есть только здесь. Проверка на возможную замену математической операции битовой в рантайме выходит дороже, чем экономия от такой замены.>>223413466>Всегда ли можно заменить?Для двойки (и её степеней) - да. Разве что при переполнении они будут вести себя по-разному, но шарп вообще не об этом.
>>223413526Че прям в самом линукс? Может тогда расскажете на чем в линуксе компы работают? На какой ОС?
>>223413511Раз никто не догадался, напишу. Нахождение powerset.>>223413597>Побитовые операции там где их не должно быть == говнокодОни там должны быть, т.к. компилятор шарпа не умеет в такую оптимизацию, а действие там происходит в лупе, причём в O(2^n) алгоритме.
>>223413642Да ладно, я тоже там работаю где-то. ОС называется ЕМАКС, хорошая, правда текстовый редактор не могут для нее написать уже почти полсотни лет.
>>223413688> компилятор шарпа не умеет в такую оптимизациюКакая разница, что там в байткоде, если выполняется это всё на виртуальной машине?
>>223413973>если выполняется это всё на виртуальной машине?Из байткода .NET можно генерировать нативные бинарники (из коробки). Никаких дополнительных оптимизаций при этом, конечно же, не задействуется.
>>223414028Хардвер вообще довольно примитивен. Там всего две цифорки. Что еще ожидать от тех кто с ним работает?
>>223413973>Какая разница, что там в байткодеАлсо, т.к. там JIT, то в лупе во второй и последующие разы выполняться будет уже нативный код без оверхеда на его генерацию. Оптимизации всё равно важны в таком случае.
>>223414061>Никаких дополнительных оптимизаций при этом, конечно же, не задействуется.И тут ты такой с пруфами.У майков есть охуенный компилятор MSVC, плюс они вваливают огромное бабло в развитие Шарпа.Намеренно не реализовывать оптимизации было бы крайне тупым шагом, а в МС работают отнюдь не дураки.
>>223414103>Но почему?Потому что ngen (утилита для генерации нативного кода) - это де-факто тот же интерпретатор от VM, только результат он сохраняет в отдельный бинарник, а не сразу исполняет.
>>223414183Современные канпилятры могут не оптимизировать такую хуйню просто потому, что там идет работа с битами, что дает нам зависимость от аппаратки на которой будет выполняться код. А следовательно можно попасть на неопределенность. Чего лучше избегать.Вот допустим я придумал причину.
>>223409302 (OP)Будучи бекендером, имя опыт на php и ruby, стоит ли перекатываться в джаву? Привлекают сложность бекендов, которые предстоит строить. Смущает пониженная оплата на период освоения нового стэка (испытательный срок)
>>223414183>компилятор MSVCКакое отношение он имеет к шарпу? Там так-то оптимизации есть, но до классики жанра (gcc, clang) ему ещё очень далеко. Там вон пару лет назад в C треде обсуждали, что он mov eax, 0 вместо xor eax, eax генерирует.>Намеренно не реализовывать оптимизации было бы крайне тупым шагомПрактически все оптимизации шарпа делаются в момент интерпретации байткода, а не в момент транспиляции в этот байткод (кроме выбрасывания мёртвого кода, конечно). Байткод генерируется не под конкретную архитектуру, соответственно не может применять оптимизации для этой конкретной архитектуры (x86-64).В рантайме замена математических операций зачастую выходит дороже, чем выигрыш от такой замены (но не в случае лупа) и заметно усложняет код интерпретатора.
>>223410997WSL. Linux на домашнем десктопе ставить это пиздец маразм. В линухе даже сранного аппаратного ускорения для хрома нету. Включаешь видео на ютубе и проц жрёт по 50%, хотя на винде тоже самое ест только 5.Интересно что в андроиде и хром ос оно есть, а сам линукс пососал член.
>>223414465> Байткод генерируется не под конкретную архитектуру, соответственно не может применять оптимизации для этой конкретной архитектуры (x86-64).А JIT компиляции там нет чтоли?
>>223414268>Вот допустим я придумал причину.Так канпелятор C# генерирует на выходе байткод.А когда происходит трансляция в бинарь на конечной машине, то транслятор уже точно знает, что именно поддерживает установленный процессор и как это можно использовать для оптимизации.
>>223414465>Какое отношение он имеет к шарпу? Такое, что создан в стенах той же компании, так что использовать те же скиллы в других проектах труда не составит.>Там так-то оптимизации есть, но до классики жанра (gcc, clang) ему ещё очень далеко.Из личного опыта могу сказать, что майнер, собранный MSVC работает на пару процентов быстрее вариантв с GCC.
>>223414465>В рантайме замена математических операций зачастую выходит дороже, чем выигрыш от такой замены (но не в случае лупа) и заметно усложняет код интерпретатора.Трансляция производится один раз, обычно еще при установке .NET приложения на машину, так что занимаемое ей время особого значения не имеет.Чтобы найти в коде вещи типа деления/умножения на степень двойки, особой магии не надо.Все, что доступно в обычных компиляторах, можно применить и тут.
>>223411529Согласен, этот блеклайфовый маразм уже заебал. В каждую сука документацию, В КАЖДУЮ БЛЯТЬ ПИХАЮТ drf, parcel ебать итд
>>223414580>А JIT компиляции там нет чтоли?Есть. Но пост ты читаешь жопой, конечно:>В рантайме замена математических операций зачастую выходит дороже, чем выигрыш от такой замены (но не в случае лупа) и заметно усложняет код интерпретатора.>>223414651>использовать те же скиллы в других проектах труда не составит.Составит, если проекты не связаны, и используют совсем другие механизмы кодогенерации.>майнер, собранный MSVC работает на пару процентов быстрее вариантв с GCCИнтересно было бы с icc сравнить, который во многих бенчмарках держит первенство.
>>223414517>лолХуйлол.Винда как была, так и остается самой популярной ОС.Office все так же стоит на каждом первом офисном пека.
>>223414543>WSLCUDA под ним недоступна. Вроде обещают запилить в WSL2, но когда - хуй знает, а работать надо уже щас.>В линухе даже сранного аппаратного ускорения для хрома нету.Зато в Фуррифоксе точно есть.
>>223414740>так что занимаемое ей время особого значения не имеет.Но вот только ngen (генератор нативного кода) - это кусок интерпретатора виртуальной машины с выводом в бинарник.>особой магии не надо.В рантайме (момент интерпретации) дорого, во время транспиляции делает ЯП привязанным к архитектуре. Я это уже описал выше.>можно применить и тут.Тем не менее - не применяют.
>>223414501Это single responsibility principle and interface segregation principle из акромегалии SOLID
>>223414996Начнём с того, что в шарпе даже целочисленных степеней нет - в любом случае придётся конвертировать int в double и вызывать метод Pow().Вот, например, на пике пруфы того, что умножение на два и соответствующая битовая операция не равны. Релиз, оптимизации включены. Вот минимальный код, необходимый для повторения опыта:int x, y, z;x = int.Parse(Console.ReadLine());y = x << 1;z = x * 2;Console.WriteLine("{0}, {1}", y, z);Как видно на пике, в случае y используется shl (битовый сдвиг влево), в случае z - умножение.
>>223415478>Начнём с того, что в шарпе даже целочисленных степеней нет - в любом случае придётся конвертировать int в double и вызывать метод Pow().Так и в железе поддержки целочисленных степеней нет.Если так хочется, напиши свою реализацию.>Как видно на пике, в случае y используется shl (битовый сдвиг влево), в случае z - умножение.Надо смотреть уже машинный код на целевой машине, по байткоду нельзя судить об итоговой оптимизации.
>>223414850WSL2 уже давно есть в последней обнове винды. Годнота, быстрее раза в 3 чем первый но файловая система менее удобно устроена
>>223411956pandas - замена экселю, он не предполагает имения датафреймов жирнее нескольких ГБ. А векторные вычисления он поддерживает. Всякие групбай-каунты делает бодро, а больше от него и не надо нихуя. Хочешь быстро ворочать большими объёмами данных - это во всякие спарки смотреть надо
>>223415970cuDF охуенен, правда, пока еще не полностью API Pandas поддерживает, но проект очень быстро развивается.
>>223415786>Надо смотреть уже машинный код на целевой машинеЖду его от тебя, код я тебе предоставил. Там на выходе нечитабельная дрисня, но, тем не менее, imul (0x6B) там определенно есть, и представить его применение для чего-то другого в таком коротком бинарнике без инлайна функций я не могу.>по байткоду нельзя судить об итоговой оптимизации.Ты думаешь, что в рантайме перед каждым умножение делается проверка на ноль? Ты понимаешь, что в рантайме ветвление может быть заметно дороже потенциального выигрыша от такой оптимизации?Алсо, как я уже не раз повторял, ngen - это выдранный кусок рантайма шарфика.
>>223416377То, что он не делает каких-либо дополнительных оптимизаций кроме тех, что делаются в рантайме.
>>223416407Да ты книжку прочитал и специалиста из себя строишь. На такие темы можно общаться только с CLR architect.
>>223416560>Да ты книжку прочиталМимо. Всё получено горьким опытом, где "базовая" оптимизация деления битовыми операциями в лупе давала бешеный прирост производительности.>На такие темы можно общаться только с CLR architect. Шарфик-то опенсорс. Давай, притащи код, где в компиляции инструкции байткода mul делается проверка на 2 перед превращением в нативный mul.