На это канале два вещателя. Один iPro, а а второго как звать? Так вот, я захожу на эхтримкод поржать, хорошо смешить получается у второго. А вот АйПро мне нравится его способ донесения теории заговоров, методичек всяких разных. Вот был видос с халфлайф на фоне с отличным саундтреком…. Вот хотелось бы побольше АйПро в этом аспекте
Сейчас процессоры умеют делать оптимизацию на лету, патамуша х86 это высокоуровневый ЯП. Ты лучше посмотри на кодинг К145ИК13, так сказать прочувствуй что такое дзен. В общем, на асме можно кодить потомуша могу и мне нравиться. Ещё для некоторых дисциплин так же необходимо. Ну и самое главное, если умеешь в ассемблер, то твой код на С/С++ будет как правило быстрей, потому что понимаешь во что эти конструкции с компилируются, и какие при этом могут проблемы. Погромист который не понимает ассемблер, и вообще плохо соображает как работает ЭВМ, в принципе не умеет в оптимизацию, и не умеет писать быстрый код. Ну только если совсем тупой от тупого.
у меня интересная история знакомства с ассемблером. весной прошлого года в один из туманных, холодных дней я сидел на скамейке в парке, смотрел как течет вода в речке. ко мне подошел мужик лет 45, попросил закурить, с виду был явно не очень трезвый. начал типичный разговор бухого дедка про "потерянное поколение", "молодежь не знает классику", "вот делали же раньше..." и подобное. в какой-то момент спросил чем я хочу заниматься, я ответил мол хочу программистом работать, веб разработчиком, осваиваю реакт и тд. он рассмеялся мне в лицо и ответил что-то типо "это не программирование, оставь версту сайтов для девочек, учи ассемблер и сможешь написать что угодно". оказалось этот дедок уже 20 лет работал с С и был каким-то там лидом в какой-то там компании. он рассказал мне в каких направления двигаться, как искать работу, из каких вузов чаще всего приходят хорошие джуны и закрыл много моих вопросов я иногда вспоминаю этот случай и думаю, что я возможно просто в тот момент словил шизу из-за завалов по учебе и прочих неприятностей в жизни. уж слишком в удачное время появился этот мужик и расставил все по местам в моей голове и уж слишком сюрреалистично ощущался этот парк
@@imyourliverмгу, бауманка, мирэа, мфти, мтуси. Топ5 по Москве, где дают хорошую базу и джуны оттуда золотые. Это по факту хорошие мидлы по знаниям, но из-за полного непонимания чо-кого в этих ваших больших конторах идут на джунов.
Смысл изучать ассемблер прост - любовь к своему делу. У истинного программиста нет цели, есть только путь. Изучение ассемблере просто развязывает руки программистам, даёт более глубокое понимание того, чем именно он занимается. Я думаю в наше время уже не актуально задаваться вопросом "А зачем ассемблер". Люди всё ещё учат скретч и делфи, что я считаю ещё более бессмысленным чем, учить ассемблер. На нём просто приятно писать, это уникальный опыт, который дарят многие эзотерические языки, только появившийся естественным путем. Программист банально должен уметь писать на разных "типах" языков, а языки ассемблера имеют уникальную сигнатуру, которую увы в наше время мало где встретишь. Касательно разделения труда, это всё конечно весело, но какой смысл заниматься IT, если ты ограничен в своей сфере деятельности? Так это превращает в работу, а не личную человеческую страсть. Если ты относишься к программированию исключительно как к способу заработка: Смело иди в веб, делай верстку сайта и зарабатывай, это не трудно, но если тобой движет сама философия программирования, то твой путь тернист и лежит с верхних уровней всё ниже и ниже, через сотни прожженных нервов и ебичества с компилятором, в конце пути тебя ждет финальный вид программы - исполняемый файл, который прочесть в таком виде, в котором он есть уже мало кто сможет. Обычно путь программиста кончается как-раз на ассемблере, это полностью ритуальный обряд, полное понимание того, какой путь проходит программа от написания до компоновки. P.S. Я знаю, что Ассемблер и Язык Ассемблера - разные вещи, но раз в видео на это забили, позволю себе забить тоже.
А кто будет сами компиляторы создавать без ассемблера, гений? Загрузчик операционной системы не пробовал писать? Эмулятор реального проца написать на другой платформе так, чтобы он не тормозил? Для отладки любого нативного софта может пригодиться. Я в шоке от подачи. Вместо того, чтобы рассказать, где ассемблер нужен, сказать, что это говно, которое нигде не используется...
Автор прав в том, что на сегодня эта тема слишком нишевая. Не знаю как сегодня, в начале нулевых спрос на ассемблерщиков был мега маленький и уровень оплаты низкий по сравнению со всем остальным.
@@СтороннийНаблюдатель-ч6ф Ну, тут очевидно, что речь шла о компиляторе в машинный кода. Есть такие, которые используют стадию трансляции в ассемблер, есть такие, которые транслируют напрямую в бинарное представление. В любом случае, такой компилятор должен знать структуру команд процессора, равно как и программист, его пишущий.
ЭкстримЦоде, как обычно, забывает о том, что кроме крутых мощных ПК и чуть менее крутых и мощных мобильных устройств есть ещё системы на микроконтроллерах, где важен буквально каждый байт итоговой программы и каждый такт её выполнения (атмега со встроенным клоком 8мгц передает привет) А более долгое и дорогое написание кода зачастую окупается экономией на комплектующих в массовом производстве. Я уже не говорю про системы, которые должны потреблять единицы - десятки микроамперметр для обеспечения вразумительной автономности
Программирование на ассемблере очень и очень полезно. Но ровно для того чтобы больше ценить языки высокого уровня, и более скептически относиться к оверинжинирингу.
Нет ничего лучше ассемблера, если ты пишешь код переключения контекстов для операционной системы. Нет ничего лучше ассемблера, если ты программируешь миллипиздрический микроконтроллер, у которого всё-таки есть пару прерываний и таймер. В остальных случаях - уже не нужен.
@@ZuratonEне обойтись, если прямо командами формируется сигнал на выходе МК - за команды ассемблера отвечаешь ты, а за команды от компилятора C отвечает компилятор, который со временем или в зависимости от настроек может начать делать что-то иначе. Ну и если МК очень мелкий и у него всего мало, то опытный человек может впихнуть в него невпихуемое, а компилятор - не всегда это сможет сделать.
Для контроллера С - это тема. Я в 1кБ втыкал работу с энкодером, управление адресной светодиодной лентой и вывод на экран на базе TM1637, количества светодиодов в ленте. Ну типа тестер для адресной ленты. На асм тоже самое было бы по объёму памяти.
Мне ассемблер нужен для отладки ARM, когда оно валится а ошибку шины приходится изучать сбойное место под луной чтобы понять что у тебя оказывается стек заехал на кучу и поломал там чертовски важный указатель и теперь он указывает вообще в рандомное место и туда происходит переход или типа того.
Ассемблер очень пригождается, когда необходимо впихнуть невпихуемое. Как-то раз делал прошивку на х51 семейство микроконтроллеров, так только с помощью ассемблера мне удалось вместить большой функционал, и то память была забита полностью. Ну и конечно, это актуально для тех, кто работает исключительно на отечественной элементной базе, характеристики которой оставляют желать лучшего.
@@milaro222 Это вы про домашние или мелкосерийные поделки. Я в 2006-2009 гг. работал в американской Genesis, мы разрабатывали первый в мире проц для однопроцессорного телевизора. Я занимался программированием звукового тракта. Так вот, звук обрабатывался встроенным DSP с командами VLIW, до 6 команд за такт. А вот FPU не было! И не потому, что не могли, а потому, что при тиражах с сотни миллионов каждый цент на счету! Так что выгоднее нанять программиста, который не боится асма, чем удорожать чип. Тогда много приходилось писать на асме + Си.
@@milaro222 если ты делаешь мигалку светодиодом для себя - да, но если у тебя серия пусть даже на несколько тысяч устройств, то стоимость разработки становится меньше выгоды от более дешевого железа
@@artemivanov3841 Серия на несколько тысяч устройств никогда не оправдает выбор МК с предельно низким объемом памяти с необходимостью писать на ассемблере, больше денег потратишь на разработку, позже выпустишь продукт, что может тебе стоить вообще не порядки больше.
Короче. Если посмотреть все видео экстримцоде, то получается следующее: ассемблер не учи, паттерны не учи, тестирование не нужно, качественный код не нужен. Получается, господа разработчики, нам остается только сидеть и пердеть в лужу 👍
@@nigredo79 он не кодер, а хайп блогер. регулярно сталкиваюсь с кодом таких супер "продвинутых" кодеров, после оптимизации "это" работает в 10~1000 раз быстрее и наконец-то начинает выполнять требования бизнеса ради чего и писалось...
@@xyzw777 Ты всё равно не будешь писать на Ассамблере , банально потому что это намного медленнее, да и хороший программист может написать плохой код , не стоит забывать что это зависит так же от сроков и заказчика.
Ассемблерные вставки нужны чтобы совершать манипуляции, которые на уровне языка на котором пишешь сделать не получится. В этом случае оптимизация и получается.
Тут есть ооочень важная оговорка. Не нужно учить асм, но обязательно нужно его потрогать. На том этапе, когда студент учит модель памяти, очень важно бегло пройтись по ассемблеру, в виде 5-10 лабораторных работ, как у нас в вузе. Чтобы он понял, что такое стек-поинтер, регистры, и прочие важные вещи, позволяющие грамотно работать с памятью во всех остальных высокоуровневых языках. Именно ботать асм и стремиться на нём что-то написать - идея, конечно так себе. PS: По рукам бы автору надавал, за то что пропагандирует питон как лёгкий язык для новичков XD. Пожалуй это худший язык с которого можно начать свой путь в программировании...
Муриканские вузы тоже так считают, как и львиная доля людей. На втором месте JS разумеется и по идее он полезнее, но пистон даёт больший простор для направлений деятельности.
Да, не больше 8 недель, иначе потом всю жизнь будет кипеть мозг от осознания того, что один оператор на том же питоне по КПД не лучше лампы накаливания, но светит же. Такое же чувство в супермаркете: смотришь на продукты и мысленно видишь, как с них стекает жир и всякие суррогаты, и твой выбор становится все скуднее и однообразнее. И вот ты уже никому не нужный гик, со своим устаревшим мировоззрением о ЗОЖ компьютера.
@@xor_ax_ax % энергии затраченой на освещение толи 5 толи 10 от общего энегопотребления(не суть но там мало). Если мы снижаем потребление в половину современными источниками света, то выигрываем аж целых 2%-5% энергии. Окей оптимизируем освещение дальше вкладываемся в НИИ и цепочки производства снижаем энергозатраты на освещение аж на 90% гороодимся, и получаем феерическую выгоду в 1-3% Упс... А оно надо? Все еэти игры в % надо внимательнее считать, иначе какнибудь купишь керамические втулки на велосипед с на 50% меньшим трением))).
Лет 20 назад изучал ассемблер просто так из любопытства, согласен, что никакой необходимости в нем нет сейчас, но я с удовольствием его изучал, было интересно, даже какие-то трюки делал) Я еще всегда был байтодрочером и мне нравилось, что програмка на асме весил несколько сотен байт или пару килобайтов, ощущал через это свою крутость (LOL).
Во времена DOS такие программки было удобно щёлкать. Теперь попробуй на ассемблере калькулятора графического написать. За неделю и несколько миллионов строчек кода управишься?
@@BestMovieActors в принципе легко, WInAPI изучил и давай вперёд, чуть сложней чем на С/С++. По крайней мере я эмулятор МК-61 делал на асме, правда потом на С++ переделал, там по проще.
@@ИзиБризи-с1х если напишешь хоть одну вставку в коде драйвера который должен быть заэмбежен на уровне ядра ос тебя сразу же уволят. это грубейшее нарушение, тебе даже ddk не даст такой код собрать
Эти знания не бесполезны. Они просто нужны в другой сфере. Допустим когда ты программируешь ту же ардуину на атмега 328 там уже можно обойтись и без знания ассемблера просто кодя на си(именно на с/с++ на на wiring). Но на той же атмега13 или атмега 10 памяти очень мало и поэтому там ассемблер будет очень выгоден по сравнению с си
7:50 оооооооо, в прошлом году как раз на курсе архитектура эвм собирали свой виртуальный мини процессор. Полностью с нуля. Довольно интересная штука была. Правда бОльшая часть студентов не справляется и просто покупают работы у старшаков и только 2-3 человека собирают полностью рабочий сами. И я с друзьями единственные из группы кто собрал. Так прикольно потом было, когда всё заработало писать мини программки под него.
Да куда там кэширование щупать))) Только теоретически прошли его принцип работы. Я не знаю как определять продвинутость проца потому, что единственный проц устройство которого я знаю - это мой, мне просто не с чем сравнивать)) Но все-таки кажется, что проц был самый-самый примитивный, второму курсу что-то сложное не получиться дать :) Плюс это еще и не наша главная ветвь обучения была. Проц состоял из операционного автомата (блок регистров, учёт флагов, АЛУ), управляющего автомата(декодер команд, чтобы из микрокода инструкции подгружать) и блока памяти. Там по вариантам надо было несколько команд реализовать, разные типы поддерживаемых операндов и их количество + еще второй алу у некоторых надо было сделать. Конкретно у меня были команды ADD, SUB, SHL, NAND, INC, LD, ST, SHR , JMP, JZ. Плюс пару тестовых программ для проверки работоспособности.
Почему знать ассемблер. 1. Оптимизировать код сделать его быстрее . 2. Посмотреть действительно ли код отрабатывает так как нужно. 3. Ты можешь модернизировать чужие программы. 4. Это интересно. 5. Пригодиться для безопасников ну или на обратной стороне (темной)
Проблема в том, что с каждым поколением, знающих специалистов этой технологии становится все меньше, пока не будет утеряна. Это как насо потеряла чертежи межпланетных кораблей, нет специалистов. А потом придётся изобретать велосипеды заново
У некоторых преподов инфаркт случится от заявления, что подавляющему большинству разрабов ассемблер не нужен. На моей памяти ассемблер использовали 2,5 человека для решения проблем с пик и авр микроконтроллерами в каких-то особо задротских случаях.
Про асмемблер очень хорошо сказано. А вот то, что автор поставил плюсы и жабу с петухоном в одно предложение - это уже осуждаю (шутка, если что, хотя для меня, как для плюсовика, это не шутка))
Дело говорит чел. Сам ниасилил, другим помог ниасилить. В этом несомненно есть плюс - вафельные мальчонки с маками, рисующие формочки думают что они программисты, а хардкорные ребята нагибают всех и в кс, и в айти, потому что умеют в этот самый ваш оссемблер. Лайк, ска, раунд.
Ассемблер больше всех в современном мире нужен на хорошем уровне чтения реверс инженерам (вирусные аналитики, пентестеры и всякие там "черные шляпы" для кряка и кей гена софта), а для написания жизненно важен для экплойт девелопмента. При эксплуатации бинарных уязвимостей нужно очень хорошо понимать как работают стек, куча, за что отвечают служеюные регистры, что бы составлять разные ROP цепочки, обходить защиты и в итоге передавать управление зачастую на собственно написанный shell code на чистом ассемблере естественно.
Видео из разряда: «появились калькуляторы - математика больше не нужна. Ребята, цените труды специалистов, которые разрабатывали калькуляторы и забудьте напрочь о математике» - Гениально)
Видео актуально. Сам изучаю все низа программирования и компьютерных технологий. В ассемблер лезть пока не хочу, но видеть дело не за горами. Чисто моё желание изучить как всё устроено, я не могу сидеть и красить кнопки, не зная как это происходит. Думаю данное веяние к низкому программированию обусловлен уж высокой языковой абстракцией и люди имеющие аналитический склад ума, задающие вопросы "откуда", "почему", "зачем" теряются во всем этом и им нужен первоисточник всего этого компьютерного.
Недавно пришлось кодить эмдед , чип имел всего 64 байта оперативы, да, байта, не килобайта. Вот там ассемблер пришлось вставлять, но 80% на плюсах норм ехало
Ну как сказать. Еще совсем недавно в 2007-9(не помню точно). Мне пригодился ассемблер, потому что модуль ядра для драйвера сетевой карты у eeepc был с асемблерной вставкой, в которой был баг. А нахер нужен ноут без сетевухи? Ну и типа вариантов не много: или фикси сам или жди пока пофиксит производитель драйвера. Я фиксил сам. Наверное я бы и без знания асма бы это пофиксил, но асму меня еще в школе учили(да и до школы, дед всякие приколюхи показывал). А еще асм нужен для работы со всякими контроллерами и тд. Короче полезно знать(да и знать там особо нечего, сплошные справочные данные, а принцип прост как апельсин).
По своему опыту скажу, что обогнать C++ компилятор вставками на Asm'е крайне трудно. В Asm'е есть смысл для задействования MMX/SSE, но задача должна максимально подходить под эти наборы инструкций, иначе преимущество сведётся к нулю (а, скорее всего, к минусу) из-за подготовки (упаковки/распаковки) данных под эти инструкции.
Врачам так-же необязательно знать как работает организм, они же лечат как - определяют болезни по симптомам и назначают лекарства или вмешательсво. Так-что врачам, как и программистам нужно знать симптомы и назначаемое лечение(API) а не принцип работы организма и возникновение болезней(Ассемблер и архитектура) Ну вот и подводя писю к носу, становится понятным: озвученная автором тенденция является истиной только потому, что бизнесу нужны кодящие люди и много, в результате низкоквалифицированные спецы пользуются спросом так-как способны решать задачи на прикладном уровне. Но абсолютно всегда такие "спецы" будут иметь более низкий приоритет перед людьми с академическими знаниями по предмету. Есть конечно исключения, но и эти самые исключения не застрахованы от тупых ошибок связанных с незнанием процессов которые протекают для них в "черной коробке". Ассемблер обязателен к изучению, кодить на нем вам может и не нужно, но знания некоторых принципов освобождает от знания множества фактов.
Когда-то без ассемблера было не реально обойтись. Например, на ZX Spectrum - там по ощущениям Бейсик раз в 20 тормознее. Поэтому, чтобы использовать всю мощь процессора было нужно говорить с ним напрямую. Сейчас-же это почти никому не нужно. И знание ассемблера нужно только для того, чтобы разобраться в чужой программе, не имеея ее исходников. Ну, чтобы, например, отучить игру от стима :) или улучшить графику до 4к и выше у старых игр.
Ну во времена Спектрума тоже можно было написать программу на встроенном Бейсике, или Си, и с помощью компилятора превратить ее непосредственно в машинные коды, и получить достаточно хорошую производительность. Знание ассемблера сегодня нужно, чтобы писать производительный код на любом языке, т.к. у вас есть понимание, во что ваш код превращается. Иными словами, чтобы стать программистом более высокого качества. Если у вас нет такой цели, то вам это знание не нужно.
@@cafedead о, опять свидетели производительного кода господин мертвое кафе, чтобы писать хороший производительный код нужно знать примерно дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта и знаете, вот знание ассемблер как-то не очень хорошо помогает, когда весь код занят банальными сисколлами и расходами с ними связанными сказки про то, что мол вот, знаешь ассемблер - значит знаешь все, далеко нерелевантны недавно мой коллега, который разрабатывает довольно высоконагруженную часть kv хранилища, написал поиск ключа в хэштаблице в питоне за линию при этом этот же человек половину ядра перехерачил, чтобы к нам неблокирующие дескрипторы завести про людей пишущих на интерпретируемых, или боже упаси на языках которых исполняет JVM, там вообще этот ассемблер не уперся никуда, там нужно знать еще как под капотом эта JVM работает и какой GC лучше использовать. не нужно в текуище время знание ассемблера 99% программистам, а те, кто этот производительный код будут писать (не дай бог), то они должны знать еще гораздо кучу более важных вещей, чем ваш этот ассемблер поганый
@@kostya48i57 А писать как-то без вот этого гонора вас учили? Пишите пожалуйста незнакомым людям вежливо. "чтобы писать хороший производительный код нужно знать примерно дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта" Ну может быть нужно, а может быть и нет. Вы ничем это свое балабольство не подтвердили. это для вас всего дохреналион того, чего вы не знаете, вот вы и предполагаете что это все то, чего нужно знать... Вы это себе вообразили от незнания предмета. Называйте это своими именами, пожалуйста. "и знаете, вот знание ассемблер как-то не очень хорошо помогает, когда весь код занят банальными сисколлами и расходами с ними связанными" Не помогает, потому что вы ничего не знаете ни про ассемблер, ни все весь некий "дохреналион". Ну вот я конкретный пример в комментариях под видео привел, когда Соер, не понимая сути конструкции switch/case, написал менее производительное решение FizzBuzz. Он знает ассемблер, но не вполне понимает. Как и вы, он не может связать код, который он пишет на языке высокого уровня, с тем, что исполняется на уровне процессора. Нет у него этой связи в голове, как и у вас. Ну а мне понимание ассемблера помогло написать более адекватный и производительный код решения этой задачи, производительнее Соера, и производительнее решения от chatGPT. Может просто ваше понимание ассемблера плохое, как и у Соера?! И причем тут в решении этой конкретной задачи "дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта"? Правильно. Вообще не при чем. Это просто ваше балабольство ни о чем. "сказки про то, что мол вот, знаешь ассемблер - значит знаешь все, далеко нерелевантны недавно мой коллега..." Это вот ваш пример нерелевантен. Какой коллега? Что написал? Как написал? К чему эта чушь здесь?! Сказки рассказываете здесь вы. Раз уж вы мне смеете подобное заявлять, держите и в ответку аналогичное обращение. Я тоже так умею, не вы один. "про людей пишущих на интерпретируемых, или боже упаси на языках которых исполняет JVM, там вообще этот ассемблер не уперся никуда, там нужно знать еще как под капотом эта JVM работает и какой GC лучше использовать." Я конкретный пример с Соером и Javascriptом привел. Конкретный пример. Имеем там конкретный результат. С пониманием работы switch/case - результат один, без понимания вариант Соера - результат другой. Что еще не понятно? "не нужно в текуище время знание ассемблера 99% программистам, а те, кто этот производительный код будут писать (не дай бог), то они должны знать еще гораздо кучу более важных вещей, чем ваш этот ассемблер поганый" Малолетние оценки того, в чем вы не смыслите. Желаю удачи с этим вашим мнением.
Сначала был машинный код, это был ад для програмистов, поэтому пирдумали ассемблер, потом решили что нужно развивать абстракцию и придумали высокоуровневые языки. Тоесть человек всегда ищет упрощений, выгоды и комфорта. С стремительным развитеем ИИ, очень скоро люди придут к еще одному упрощению и большой выгоде для бизнеса в первую очередь, это когда код будет писать ИИ. Все к этому идет. И вот в первую очередь как раз таки пострадают красильщики кнопок, гоняльщики jsonов и такого рода специалисты. Системные програмисты, безопасники пострадают в последнюю очередь. поэтому ассемблер знать полезно.
Ассемблер каждому прогеру действительно не нужен, но какое-то представление об архитектуре эвм иметь всё же нужно. Не говорю, что надо прям до байта всякие FAT таблицы разбирать, но как минимум знания о том как процессы и потоки работают и про всякие штуки типа API ОС, сетевые сокеты и виртуальная память надо хотя бы знать что они есть и зачем нужны. Новичков, понятно, этим всем лучше особо не пугать, но начиная с какого-то уровня про это странно не знать. Ну и некоторые идеи типо конвееризации и квантования сами по себе могут быть полезны как своего рода паттерны, так что тоже не помешает пожалуй А так, братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Питон сам по себе уникальный ЯП, для первого обучения он не подходить, не все основы в нем собраны, не все подробно объясняет синтаксис, допустим как в плюсах, ибо там всё подробно все скобочки и т.д. это не значит что их надо выучить или знать, но после изучения на плюсах массивов, процедур циклов и т.д. на др. ЯП будет проще. А учитывая что питон и так завален болванчиками, то делать там сейчас особо нечего, да и не особо он связан так программированием, больше с математикой. Но о практичном применении Асм я молчу, драйвера за тебя никто не напишет, человек всегда будет лучше писать код, чем компиляторы, другой вопрос, сколько это времени. Железяки более производительные, это не значит что нужно засирать их ресурсы. В одну кучу сложил плюсы джаву? Зачем, на плюсах ты не сможешь прогать микроконтроллеры и драйвера так как на Асм, в джава вообще так без доступа к памяти
Ассемблер помогает разобраться в вещах, которые еще не совсем довели до идела: JIT, например. В книжке Кокосы очень много вставок ассемблера, но он преподаётся не как знание, а как способ передать ключевую идею - например, что стракты JIT старается запихнуть в регистры или сейфпоинты Важен сам концепт: например, автовекторизация вычислений, какие подсказки нужно в хотпасах давай житу, как в принципе устроен процесс в ОС - что такое VAS, почему стек ограничен, почему фрагментация LOH вредна или как избегать полной сборки мусора И то. Ассемблер это только полбеды: есть lock free, есть хеши, есть асинхронность, есть векторизация - темы, не менее важные, чем ассемблер Потому и получается, что важна концепция/идея чего-либо, а не средство ее реализации - ассемблер, например. В общем оно нужно профессионалам, а в работе кроме байтоебства, ты не будешь это применять больше чем в 98% случаев
Самое прикольное, что ассемблер был стандартизирован в 1985 и стандарт был отозван в 2001, но его до сих пор можно купить. Ассемблер в основном используется когда нету другого выбора (например ядро ОС) или необходимо что-то оптимизировать (например facebook в свой библиотеке folly сделали кастомный memcpy /facebook/folly/blob/main/folly/memcpy.S ). В основном нету необходимости напрямую использовать ассемблер, т.к. есть intrinsics (это как обычные функции, но компилятор заменяет их на инструкции, а не вызов функции), есть assumption, по типу assume атрибута, которые подсказывают компилятору, что делает компилируемый код, есть выравнивание (alignment) структур данных, чтобы улучшить взаимодействие с кэшем процессора и чтобы улучшить генерацию инструкций компилятором, и есть флаги компиляции говорящие генерировать более производительные инструкции под более специфичные машины.
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Давайте признаем, что С++ и Ассемблер - достаточно, чтобы переписать код вселенной. На Асме задаем правила и физические законы, а на плюсах пишем планетки там, черные дыры, с помощью Qt делаем это все красивым. И на системном уровне запрещаем делать сайтики. Поэтому JS-никам придется учить Асм, чтобы красить кнопочки и попивать смузи.
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Ну вот когда у меня программисты уперлись в уебищную производительность библиотечной функции Фурье преобразования, их спас я написав за пару ночей оптимизированную на асембли нативную библиотеку. А я олдфаг - аккаунт менеджер, который ничего новее плюсов так и не освоил. Шах и мат совремменные кодеры.
Когда я начинал писать программы, то начинал с машинных кодов. Потому что ассемблера на руках не было для того процессора, для которого писал. Код вбивался в отладчике в виде 16 ричных знаков. "Компиляция" - руками по таблицам в книжках, линковка - в тетрадке. Ничо - не помер. И от того что схемотехникой процессоров и периферийных устройств и прочей лабудой позже занимался - тоже не помер, и эта информация не является вредной. Нужно ли это всем сейчас - нет. Пожалуй соглашусь. Как написать на ассемблере игру ААА класса? - ответ никак, понадобятся промежуточные уровни абстракций и их придется писать. Никто же чайной ложкой на даче не копает под картошку... Вопрос в другом, насколько Вы контролируете тот продукт, что Вы производите, используя чужие библиотеки и компиляторы? Примерно никак. В среднем современная разработка - магия, написал print(1+1), а как оно вычислилось и вывелось - хер его знает. Ну ок, ок. А автор библиотеки, которой Вы пользуетесь был под эффективным менеджментом, торопился, в ущерб качеству, или осознано закладку в код библиотеки положил. А вы нареактили с этой библиотекой. Чтож потом не удивляйтесь... И обрастает это всё входными проверками библиотек и компиляторов на закладки. И процесс разработки превращается в такой адъ, что порой не знаешь что лучше, через ИБ стороннюю либу провести в контур разработки, или свою написать.
Меня вот что больше беспокоит - Почему каждое обновление приложений, в телефоне например, становятся все объемнее? Внешне ничем приложение от предыдущего не отличается. Что это? Оптимизация? Тел через год начинают тормозить ибо не могут быстро переварить ту увеличившуюся простыню кода. Жаль я не программист. Но хотелось бы чтоб ктото из знающих эту тему немного расскрыл. На старый комп установил winXP. Шустрый, зараза 😅, но старый.
Новые приложения гораздо больше, в них очень много сторонних компонентов. Разработчики допускают ошибки, думая "потом оптимизирую" и используют слишком много всякого говна
@@i-am-ultra пробовал написать простенькую программу, типа калькулятора. А он в несколько мб весит. В ассемблере если писал, думаю весил бы намного меньше. И я вынужден с вами согласиться, в языках высокого уровня на выхлопе много лишнего. Увы, не стал изучать ассемлер и копаться в коде той програмки дабы узнать правду.
Cumulative patch. Ты когда обновление выпускаешь, ты не знаешь какая версия текущая у клиентов, и ты запихиваешь в нее все изменения начиная с какой-то версии, чтобы у всех точно обновилось и ничего не закирпичилось. Когда зайдешь на 4pda чтобы поставить root, и охренеешь от того как все на соплях держится что вот для такой версии именно такой файлик нужен, а не другой ОЙ ЭТО СТАРАЯ ИНСТРУКЦИЯ НЕ ЧИТАЙТЕ... - тогда и поймешь что скачанные лишние мегабайты стоят того чтобы не проебаться где-то с версиями.
Согласись, что без байтодрочеров все давно пошло бы по одному месту. Даже в ААА проекте жытыа из-за дырявого подхода "все уже давно за вас придумали" написали какую-то хуйню, которая грузилась миллион лет, пока не нашелся человек, которого это заебало и не исправил. Парируй
Как человек с 12 годами опыта работы на всякоразном низкоуровневом от С и плюсов до древних версий CUDA заявляю: вам asm на**й не нужен. Иногда полезно уметь читать асм для анализа и дебага, но за годы работы системщиком или ембеддедщиком вы лайкли ни строчки не напишите на асме. Компилер напишет лучше, кроме тех случаев когда у вас есть надежные аргументы уровня диссертации. Понимание архитектуры полезно… но только если вы пишете критичный к производительности лоу-левел
Ассемблер бывает необходим для низкоуровневой инициализации. При взаимодействии с периферией может возникнуть необходимость вставки пустых инструкций. Процессор может иметь расширение инструкций не поддерживаемых компилятором. Так же на нем реализуют функции деления, умножения, и всего того что не поддерживает компилятор непосредственно, и процессор посредством соответствующих инструкций. Так же он бывает необходим при отладке приложений. Вопрос актуальности ассемблера возникает только у тех, кто не копается с железом непосредственно. Ассемблер не устарел, и его, в общем, ни чем и не заменили. Он не золото и не говно, он составная часть. До сих пор можно попросить си компилятор сгенерировать ассемблерный файл, и это порой бывает просто необходимо.
Хороший программист - это программист, который знает абстракцию на 1 уровень ниже, чем ему это требуется в повседневной работе. В этой одной фразе больше смысла, чем во всем ролике. С чем и откланяюсь.
На 1 уровень ниже для среднего разработчика стоит ОС (если не считать транслятор языка). Про неё действительно какие-то вещи нужно знать, например, без знаний о работе процессов, потоков и механизмов синхронизации может быть тяжко, если придётся параллельный код писать. Тут с вами трудно не согласиться. Но в ролике больше про ассемблер говорится и про тезис, что "не знаешь ассемблер - не программист". И тут уже с тем что сказано в ролике трудно не согласиться: ассемблер - лишь инструмент, и если разработчик им не пользуется, то и знать этот инструмент необязательно. Более того, знание ассемблера само по себе и не даёт знания "на 1 уровень абстракции ниже". На самом деле действительно раздражает подобный снобизм (в ВУЗе навидался этого), так что автора лично я полностью поддерживаю в данном вопросе.
@@const8576 знание ассемблера дает понимание на два уровня абстракции ниже. Верхний - это наш код на интерпретируемом языке программирования, уровень ниже - байт-код, в который это все транслируется, и уровень ниже - это ассемблер, в который был скомпилирован си-шный исходник интерпретатора. Знание ассемблера даст вам примерное понимание того, во что превратится в конечном итоге ваш исходный код на языке высокого уровня. Незнание - не даст. Ну поддерживайте автора, на здоровье. Оставайтесь плохим программистом, на здоровье. Зачем вам вообще ВУЗ? Вы не цените данные вам знания. Я вот, например, не учился в ВУЗе на программиста, и все это был вынужден сам изучить, потому что мне было это интересно. И как я должен воспринимать написанное вами здесь?
@@const8576 код ОС стоит на том же уровне абстракции, что и код интерпретатора, исполняемый в этой ОС. Абстракции - это вообще не о том. Абстракции - это вот интерпретируемый байт-код, работающий с кучей и стеком, ниже - ассемблер, ниже - логические элементы процессора, ниже транзисторы процессора, с помощью которых эти логические элементы собраны. Вам ВУЗ ничего не дал. Ничего не понимаете.
Нашел это видео в ютубе. После первой минуты замьютил, так как слушать этот бред невозможно. Начал читать комментарии и понял, сколько же безграмотных и попросту тупых людей в этом мире. А ведь они еще при этом работают программистами и зарабатывают деньги. Стоит обществу об этом задуматься.
1. как все сказали ассемблер сейчас нужен для ревёрса. 2. а я вот хочу свой язык написать, я буду его как компилировать? конвертировать в c++? конечно же я возьму ассемблер
Неа, ты еще можешь взять виртуальные машины вроде жабаскриптовой, жабы, шарпов и еще некоторые с возможностью потом юзать сопутствующие языки что бы брать оттуда библиотеки и пользоваться фреймворками. Я вот недавно у тсодинга увидел на что способен ерланг с его вм. Это вам не это нихрена, это все не просто так придумали.
@@artemivanov3841 да и прогресс людей пойдёт лестницей вниз. Разве не интереснее самому изучить ассемблер, архитектуры и написать компилятор с парсером языка?
Иногда полезно посмотреть, как компилятор интерпретировал твой код. Иногда можно увидеть очень тупые ошибки в результате работы компилятора и исправить их. Но это, только если ты понимаешь ассемблер.
Подскажите пожалуйста на каком железе Вы работаете и в каких проектах, если Вам необходимо делать ассемблерные вставки или вообще писать весь проект на ассемблере. Почему не хватает производительности например того же Си?
@@segeus , вопрос не ко мне, но как вариант... Я работаю на винде и занимаюсь обработкой звука в реальном (близком к реальному) времени ;) P.S. Сей у меня нет. Но есть встроенный ассемблер в Делфи.
так вы посмотрите что этот сишный компилятор генерирует. это же ужас. по части некоторых оптимизаций, например деления на константы, компилятор лучше. там у них тыща заготовок на такие случаи и это хорошо. но глубоко анализировать они не умеют. смотреть на циклы, например это и смешно и грустно
Когда изобретут квантовый компьютер (скоро) и появятся кубиты, все твои 99% разработчиков остануться с лапками, а господа ассемблерщики будут как рыба в воде на новой архитектуре
Ассемблер нужен больше для отладки\исправления чужого скомпилированного кода. И в тех местах, где иначе никак - отсутствует компилятор более высокого уровня, а есть только транслятор ассемблера в железке (ОС может и не быть вовсе).
компилятор ассемблера переводит буковки в циферки и иногда может помочь с арифметическими действиями. так что весь код зависит только от тебя, это и есть машинный код только написанный буквами.
Если бизнесу будет нужна твоя оптимизация, он сам скажет ее сделать. В противном случае, "оптимизатор" в пустую проебывает деньги бизнеса, выделенные на его позицию, еще и усложнаяется работу (== делает дороже) другим.
Пониимание ассемблера в первую очередь нужно для понимания самой сути программирования В первую очередь это банально " чистый код " когда ты знаешь как твой код компилируется ты уже понимаешь какие правильно конструкции/операторы использовать, банальное использование функций и указателей . Во вторых это это трезвая оценка сил того или иного языка ЯП , что бы не плодить Костыли ! Из за того что ты не знаешь что твой язык может а что не может, Ну и в третьих это быть душнилой и на любом интерьвью грузить тех кто пытается тебя завалить! Ну и Естественно Ассемблер может все ! А ваш ЯП? Может все? Не думаю
Вообще, именно из-за того, что нынешнее поколение программистов напрочь забивает на оптимизацию, мы имеем веб-интерфейсы и браузеры, которые умудряются лагать даже на RTX4090Ti+Ryzen 5950, а также игры (даже не обязательно Triple-A) весом по 150 гигабайт, да и рабочие пакеты типа Адобе стремительно "жиреют". Не в последнюю очередь ещё и потому что модным становится всюду прикручивать нейросети, модели к которым весят по несколько гб сами по себе. И это при том, что в каком-нибудь 2012 можно было иметь диск C размером 40 гб и установить туда: Автокад, 3дмакс, Cinema4D, Maya, весь Adobe Master Collection, весь MS Office, FL Studio, Cubase 5, маткад, матлаб, ещё кучу всякой повседневной мелочи вроде кодеков, и ещё место останется на сохранёнки. В конце концов, производители жёстких дисков и всё более и более мощного железа тоже в доле...
Я считаю, что в будущем врубится конкуренция: найдутся люди, которые сделают правильный софт вместо этого всё более рукожопого. И тупые раздолбаи пойдут на дно. Чем больше времени деградации происходит, тем больше потенциал к радикальным изменениям.
@@VladimirKolontsov Современный положняк очень надёжно поддерживается кризисом производства и перепотребления, а горящие дедлайны, не позволяющие доделать всё по-человечески, подкидывает сама индустрия. На Медиуме ещё в 2016 вышла хорошая статья с заголовком "Почему мой телефон не обновится до нового андроЕда?", с тех пор особо ничего не поменялось, разве что усугубилось. У меня от покойного бати остался xiaomi redmi 6a, на котором особо ничего тяжёлого не установлено, он просто обновился с 10 оболочки до 11, и даже на лаунчере он умудряется на ровном месте стопориться секунд на 10 после разблокировки (особенно первые минуты после запуска), иногда вешается на чёрном экране пока не перезагрузишь, блютуз выключить надёжно нельзя - через пару минут сам включится, и так далее.
Сделал свитч после 7 лет дотнета (микросервисы, домейн дривен дизайн (вау, как сложно), куча синьоров, рассуждающих про дизайн классов и имена переменных) в хардкорный С++ бекенд и счастлив, что теперь знаю про иерархию кешей, векторные инструкции и еще много чего и предела там нет !
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Писать на ассемблере самому действительно не нужно в большинстве случаев, Си во всем лучше и компиляторы есть под каждую платформу. А почитывать код который выдает компилятор стоит. Чтобы учитывать кэши, конвейер инструкций и другие особенности современных процессоров писать на ассемблере необязательно, основные на этом оптимизации делают разницу между 15 фпс и 60 в батлфилде. Преждевременная оптимизация это плохо, эту цитату любят использовать современные погромисты на жс как оправдание чтобы не заниматься оптимизацией вообще. Хотя эта цитата естественно не про это, а банально про то, что нужно использовать профайлеры. То, что красильщикам кнопок не нужно знать как работает процессор, и даже как работают типы и сборщик мусора в используемом ими языке, многое говорит о красильщиках кнопок, а не о программировании. Потом эти люди говорят про вузы, что там не учат современному программированию, мол где же новомодные жс фреймворки, зачем вы нам рассказываете про процессор, хотя высшее образование и готовить должно по идее инженеров, а не красильщиков.
Знание ассемблера необходимо только в нескольких случаях: 1. Если ты разработчик драйверов, микропрограмм и операционных систем. Это позволит облегчить отладку. 2. Если ты занимаешься реверс-инжинирингом. 3. Высокопроизводительные вычисления, когда от железа нужно выжать максимум за счёт нестандартного применения инструкций процессора. Во всех остальных случаях он не нужен, но знать его не помешает. Случаи в жизни бывают разными.
Скажи это реверс-инженерам! Я на Task-Based CTF участвовал в качестве реверсера. Там без ассемблера никак. Знаю я его на среднем уровне. FPU и MMX еще пойму, но с SSE уже никак. По своему опыту могу сказать, что знание ассемблера может пригодиться при разработке на языке С. Привет тем, кто пишет на оном код для микроконтроллеров В частности у меня был случай: код, скомпилированный под MinGW крашился. Причиной была локальная переменная большого объема, она просто продавливала стек. Знания ассемблера тут очень помогли. P.S. Я еще временами балуюсь отучением программ от жадности. Причем для меня результат имеет второстепенное значение, больше интересно как реализовано. Вот тут без асмы делать нечего
На современном компудактерном железе даа, он нам и нахуй не нужон ассемблер ваш. Но есть такие ваши как микроконтроллеры, туда конечно пытаются пихать питухон, но расходовать и так скудные ресурсы на интерпретацию расточительство. А микроконтроллеров нынче будет всё больше ведь каждый камень и табурет становится умным, а мы нет...
Спасибо, чел. Благодаря тебе я понял, что занимаюсь на работе полной ерундой. Ведь перформанс энжиниринг - это всего лишь определение сложности алгоритма и примерного количества тактов процессорного времени на его выполнение, основой чего является знание в какие ассемблерные инструкции алгоритм транслируется. Абсолютно ненужное знание, ведь компиляторы прекрасно оптимизируют алгоритмы с факториальной сложностью в константную. Пойду лучше писать фронтенд на пайтоне.
Ага, вы просто не видели "программистов" на 1Сочке которые не в состоянии подключить монитор и вилку питания 220V в розетку. Зато носят гордое звание "программисты". Высокий уровень это конечно хорошо, но о том как всё работает хотя бы надо иметь представление. А то получается, так (придуманный грубый аналог) чувак работает врачём и выписывает лекарства направо и налево, что-то там советует и не дай бог лезет скальпелем в тело, а сам понятия не имеет ни о биологи, ни о химических процессах которые происходят в организме, ни в чём короче. Есть такое понятие "база". И сейчас, так как IT - это модно-молодежно, индустрию и наводнили дилетанты, которые прошли курсы по той же 1Сочке, а как элементарно работает ПК понятия не имеют! Ну правильно есть же высокий уровень, нахер парится об оптимизации и написании качественного кода.
Оператор сложения в двоичном коде это, 0000 0100 = add в ассемблере. Вот суть ассемблера различные мнемоники. И шестнадцетеричный формат что бы понимать что записано в половине байта. f= 0000 1111. ff = 1111 1111. Вот и вся суть.
Понимание ассемблера даёт понимание того, как работают языки программирования. Это называется общее развитие, человек в целом становится умней, когда понимает как оно работает на низком уровне.
Для автора которому CRUD делать на работе достаточно и фронтедерам чтобы центрировать див, это не нужно) Они считают это бесполезным знанием, современное айти, не удивляйся, работа ради денег
Приведите пример как знание ассемблера поможет понимать питон??? PS люблю кодить для stm32, понимаю процессы и архитектуру, и даже тут не вижу смысла в знании ассемблера….
Смотри развитие человека и профессиональное развитие разные вещи. Сам то ненавижу фронтэндеров, но придется дефать ибо ты свои личные нолайферские предпочтения проектируешь на других и вставляешь как эталон. Лет 6 назад я думал что рофл, что в айти только девственные додики работают, лол как же ошибался. Вот из-за такого большинства абсолютно не интересных отбросов знание низкоуровщины стало популярным. Заметь что это профильное знание, ты просто знаешь что-то больше в своей работе. А про развитие не надо тут чесать, развитие мерится айкю, а у нолайфера который умеет только кодить + куколдить, айкю не может быть даже двузначным. Нихрена вы себя возомнили, все прям важные профессоры ядерной физики. Псевдоразвитые, вы даже с вилкой и ножом пользоваться не умеете. Про чистить зубы, или купаться хотя бы раз день чтобы калом не воняло - до свидания. Про литературу и книги вообще стоит говорить, или тебе надо конспект в Википедии надо прочитать? Ты и все остальные просто третисортные биомасса которым нужно внимание. Нихрена накопилось у меня.
Методичка по Simple Computer и больше контента в нашей тележке👉 t.me/extremecode
А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode
На это канале два вещателя. Один iPro, а а второго как звать?
Так вот, я захожу на эхтримкод поржать, хорошо смешить получается у второго.
А вот АйПро мне нравится его способ донесения теории заговоров, методичек всяких разных.
Вот был видос с халфлайф на фоне с отличным саундтреком…. Вот хотелось бы побольше АйПро в этом аспекте
Сейчас процессоры умеют делать оптимизацию на лету, патамуша х86 это высокоуровневый ЯП. Ты лучше посмотри на кодинг К145ИК13, так сказать прочувствуй что такое дзен.
В общем, на асме можно кодить потомуша могу и мне нравиться. Ещё для некоторых дисциплин так же необходимо. Ну и самое главное, если умеешь в ассемблер, то твой код на С/С++ будет как правило быстрей, потому что понимаешь во что эти конструкции с компилируются, и какие при этом могут проблемы.
Погромист который не понимает ассемблер, и вообще плохо соображает как работает ЭВМ, в принципе не умеет в оптимизацию, и не умеет писать быстрый код. Ну только если совсем тупой от тупого.
@agentofsorros , да вот бы вернулась фон халфа, а не петушиный реакт
Ты должен был, бороться со злом, а не примкнуть к нему!
2099 год
- сколько у тебя оперативки?
- 64 гига
- сколько сколько? ты блокнот то запустить можешь?
у меня интересная история знакомства с ассемблером. весной прошлого года в один из туманных, холодных дней я сидел на скамейке в парке, смотрел как течет вода в речке. ко мне подошел мужик лет 45, попросил закурить, с виду был явно не очень трезвый. начал типичный разговор бухого дедка про "потерянное поколение", "молодежь не знает классику", "вот делали же раньше..." и подобное. в какой-то момент спросил чем я хочу заниматься, я ответил мол хочу программистом работать, веб разработчиком, осваиваю реакт и тд. он рассмеялся мне в лицо и ответил что-то типо "это не программирование, оставь версту сайтов для девочек, учи ассемблер и сможешь написать что угодно". оказалось этот дедок уже 20 лет работал с С и был каким-то там лидом в какой-то там компании. он рассказал мне в каких направления двигаться, как искать работу, из каких вузов чаще всего приходят хорошие джуны и закрыл много моих вопросов
я иногда вспоминаю этот случай и думаю, что я возможно просто в тот момент словил шизу из-за завалов по учебе и прочих неприятностей в жизни. уж слишком в удачное время появился этот мужик и расставил все по местам в моей голове и уж слишком сюрреалистично ощущался этот парк
а чо за вузы-то
@@imyourliverмгу, бауманка, мирэа, мфти, мтуси. Топ5 по Москве, где дают хорошую базу и джуны оттуда золотые. Это по факту хорошие мидлы по знаниям, но из-за полного непонимания чо-кого в этих ваших больших конторах идут на джунов.
@@ИбрагимДринкерманн мтуси топ
@@ИбрагимДринкерманн мирэа АХАХХАХАХАХА
@@ИбрагимДринкерманн мгушник, умерь эго плиз, мидлы по знаниям лол)))
Что я понял из видео: ассемблер плох, потому что в рекламной вставке речь была не про ассемблер, а про пайтон.
Смысл изучать ассемблер прост - любовь к своему делу. У истинного программиста нет цели, есть только путь. Изучение ассемблере просто развязывает руки программистам, даёт более глубокое понимание того, чем именно он занимается. Я думаю в наше время уже не актуально задаваться вопросом "А зачем ассемблер". Люди всё ещё учат скретч и делфи, что я считаю ещё более бессмысленным чем, учить ассемблер. На нём просто приятно писать, это уникальный опыт, который дарят многие эзотерические языки, только появившийся естественным путем. Программист банально должен уметь писать на разных "типах" языков, а языки ассемблера имеют уникальную сигнатуру, которую увы в наше время мало где встретишь. Касательно разделения труда, это всё конечно весело, но какой смысл заниматься IT, если ты ограничен в своей сфере деятельности? Так это превращает в работу, а не личную человеческую страсть. Если ты относишься к программированию исключительно как к способу заработка: Смело иди в веб, делай верстку сайта и зарабатывай, это не трудно, но если тобой движет сама философия программирования, то твой путь тернист и лежит с верхних уровней всё ниже и ниже, через сотни прожженных нервов и ебичества с компилятором, в конце пути тебя ждет финальный вид программы - исполняемый файл, который прочесть в таком виде, в котором он есть уже мало кто сможет. Обычно путь программиста кончается как-раз на ассемблере, это полностью ритуальный обряд, полное понимание того, какой путь проходит программа от написания до компоновки. P.S. Я знаю, что Ассемблер и Язык Ассемблера - разные вещи, но раз в видео на это забили, позволю себе забить тоже.
На ♂ASSемблере♂ не пишут, на нём реверсят (база)
Двачую
факты
Так.
сейчас уже даже проги реверсеры научились C выдавать вместо asm'a на выходе, ну такой херовый C конечно но понятнее asm всё равно.
@@apristen обфусцированный си хуже асма.
А потом оказывается, что из-за того, что добрая половина софта работает на ноде, в Антарктике тают льды и мрут пингвины
Нода топчик, остальное проблемы пингвинов)
Не наоборот и уже заебись
не похуй ли?
А кто будет сами компиляторы создавать без ассемблера, гений? Загрузчик операционной системы не пробовал писать? Эмулятор реального проца написать на другой платформе так, чтобы он не тормозил? Для отладки любого нативного софта может пригодиться. Я в шоке от подачи. Вместо того, чтобы рассказать, где ассемблер нужен, сказать, что это говно, которое нигде не используется...
Он кроме кнопок рисовать ничего не знает
Автор прав в том, что на сегодня эта тема слишком нишевая. Не знаю как сегодня, в начале нулевых спрос на ассемблерщиков был мега маленький и уровень оплаты низкий по сравнению со всем остальным.
Компиляторы уже давно пишут на высокоуровневых языках.
@@СтороннийНаблюдатель-ч6ф Ну, тут очевидно, что речь шла о компиляторе в машинный кода. Есть такие, которые используют стадию трансляции в ассемблер, есть такие, которые транслируют напрямую в бинарное представление. В любом случае, такой компилятор должен знать структуру команд процессора, равно как и программист, его пишущий.
@@СтороннийНаблюдатель-ч6ф Поєтому все так тормозит, перетирая стек в мясорубке вложенньіх вьізовов говнофункций компиляторов.
ЭкстримЦоде, как обычно, забывает о том, что кроме крутых мощных ПК и чуть менее крутых и мощных мобильных устройств есть ещё системы на микроконтроллерах, где важен буквально каждый байт итоговой программы и каждый такт её выполнения (атмега со встроенным клоком 8мгц передает привет)
А более долгое и дорогое написание кода зачастую окупается экономией на комплектующих в массовом производстве.
Я уже не говорю про системы, которые должны потреблять единицы - десятки микроамперметр для обеспечения вразумительной автономности
Программирование на ассемблере очень и очень полезно. Но ровно для того чтобы больше ценить языки высокого уровня, и более скептически относиться к оверинжинирингу.
теперь видосы по умолчанию в х1.5. Хорош братан, продолжай в том же духе!
А у меня и так стояло 1.5, и я сижу вообще не раздупляю почему так быстро то?
Ага)))))
Да, давай, скажи ещё, что питон - лучший ЯП. Я согласен, что изучать ассемблер не особо полезно. Но низкоуровневые языки - то, что должно жить всегда.
Нет ничего лучше ассемблера, если ты пишешь код переключения контекстов для операционной системы. Нет ничего лучше ассемблера, если ты программируешь миллипиздрический микроконтроллер, у которого всё-таки есть пару прерываний и таймер. В остальных случаях - уже не нужен.
Также нужен ибешникам и реверс инженерам
Во втором случае можно обойтись С.
@@ZuratonEне обойтись, если прямо командами формируется сигнал на выходе МК - за команды ассемблера отвечаешь ты, а за команды от компилятора C отвечает компилятор, который со временем или в зависимости от настроек может начать делать что-то иначе.
Ну и если МК очень мелкий и у него всего мало, то опытный человек может впихнуть в него невпихуемое, а компилятор - не всегда это сможет сделать.
Для контроллера С - это тема. Я в 1кБ втыкал работу с энкодером, управление адресной светодиодной лентой и вывод на экран на базе TM1637, количества светодиодов в ленте. Ну типа тестер для адресной ленты. На асм тоже самое было бы по объёму памяти.
Мне ассемблер нужен для отладки ARM, когда оно валится а ошибку шины приходится изучать сбойное место под луной чтобы понять что у тебя оказывается стек заехал на кучу и поломал там чертовски важный указатель и теперь он указывает вообще в рандомное место и туда происходит переход или типа того.
Актуально, и спасибо за альтернативу, но реверс инженеринг и ИБ посмеялись от души
Предлагаю инженерам не учить сопромат, ведь дизайнеры делают проекты намного красивее и быстрее.
Я ненавижу сопромат...
😹 хорошая ирония )
Ассемблер очень пригождается, когда необходимо впихнуть невпихуемое. Как-то раз делал прошивку на х51 семейство микроконтроллеров, так только с помощью ассемблера мне удалось вместить большой функционал, и то память была забита полностью. Ну и конечно, это актуально для тех, кто работает исключительно на отечественной элементной базе, характеристики которой оставляют желать лучшего.
Сегодня не проблема взять микроконтроллер с достаточным объемом памяти.
@@milaro222 Это вы про домашние или мелкосерийные поделки. Я в 2006-2009 гг. работал в американской Genesis, мы разрабатывали первый в мире проц для однопроцессорного телевизора. Я занимался программированием звукового тракта. Так вот, звук обрабатывался встроенным DSP с командами VLIW, до 6 команд за такт. А вот FPU не было! И не потому, что не могли, а потому, что при тиражах с сотни миллионов каждый цент на счету! Так что выгоднее нанять программиста, который не боится асма, чем удорожать чип. Тогда много приходилось писать на асме + Си.
@@milaro222 если ты делаешь мигалку светодиодом для себя - да, но если у тебя серия пусть даже на несколько тысяч устройств, то стоимость разработки становится меньше выгоды от более дешевого железа
@@artemivanov3841 Серия на несколько тысяч устройств никогда не оправдает выбор МК с предельно низким объемом памяти с необходимостью писать на ассемблере, больше денег потратишь на разработку, позже выпустишь продукт, что может тебе стоить вообще не порядки больше.
На нем не нужно писать, на нем нужно понимать)
Короче. Если посмотреть все видео экстримцоде, то получается следующее: ассемблер не учи, паттерны не учи, тестирование не нужно, качественный код не нужен. Получается, господа разработчики, нам остается только сидеть и пердеть в лужу 👍
Самое главное забыл: и получать за это деньги)
Согласен. На кой вам качественный код? Индусы же пишут и хорошо😆
Он просто устраняет конкурентов
@@nigredo79 он не кодер, а хайп блогер. регулярно сталкиваюсь с кодом таких супер "продвинутых" кодеров, после оптимизации "это" работает в 10~1000 раз быстрее и наконец-то начинает выполнять требования бизнеса ради чего и писалось...
@@xyzw777 Ты всё равно не будешь писать на Ассамблере , банально потому что это намного медленнее, да и хороший программист может написать плохой код , не стоит забывать что это зависит так же от сроков и заказчика.
Ассемблерные вставки нужны чтобы совершать манипуляции, которые на уровне языка на котором пишешь сделать не получится. В этом случае оптимизация и получается.
Экстремум скажет, что такого не бывает, всё есть на уровне повыше.
а потом такие погромисты пишут калькулятор,который тормозит на четырех ядрах и восьми гигах оперативы...
Тут есть ооочень важная оговорка. Не нужно учить асм, но обязательно нужно его потрогать. На том этапе, когда студент учит модель памяти, очень важно бегло пройтись по ассемблеру, в виде 5-10 лабораторных работ, как у нас в вузе. Чтобы он понял, что такое стек-поинтер, регистры, и прочие важные вещи, позволяющие грамотно работать с памятью во всех остальных высокоуровневых языках. Именно ботать асм и стремиться на нём что-то написать - идея, конечно так себе.
PS: По рукам бы автору надавал, за то что пропагандирует питон как лёгкий язык для новичков XD. Пожалуй это худший язык с которого можно начать свой путь в программировании...
Муриканские вузы тоже так считают, как и львиная доля людей. На втором месте JS разумеется и по идее он полезнее, но пистон даёт больший простор для направлений деятельности.
Да, не больше 8 недель, иначе потом всю жизнь будет кипеть мозг от осознания того, что один оператор на том же питоне по КПД не лучше лампы накаливания, но светит же. Такое же чувство в супермаркете: смотришь на продукты и мысленно видишь, как с них стекает жир и всякие суррогаты, и твой выбор становится все скуднее и однообразнее. И вот ты уже никому не нужный гик, со своим устаревшим мировоззрением о ЗОЖ компьютера.
@@xor_ax_ax % энергии затраченой на освещение толи 5 толи 10 от общего энегопотребления(не суть но там мало). Если мы снижаем потребление в половину современными источниками света, то выигрываем аж целых 2%-5% энергии. Окей оптимизируем освещение дальше вкладываемся в НИИ и цепочки производства снижаем энергозатраты на освещение аж на 90% гороодимся, и получаем феерическую выгоду в 1-3% Упс... А оно надо? Все еэти игры в % надо внимательнее считать, иначе какнибудь купишь керамические втулки на велосипед с на 50% меньшим трением))).
Братан хорош, давай давай вперед, контент в кайф, можно еще?
Вообще красавчик, можно вот этого вот почаще?
Я не смотрел ещё видео но вангую: ты, мой дорогой друг, не входишь в этот список
Я подумал что чел ExtrimeCode наконец перестал нести дичь. Но по голосу это похоже другой чел. Всё сходится
Лет 20 назад изучал ассемблер просто так из любопытства, согласен, что никакой необходимости в нем нет сейчас, но я с удовольствием его изучал, было интересно, даже какие-то трюки делал) Я еще всегда был байтодрочером и мне нравилось, что програмка на асме весил несколько сотен байт или пару килобайтов, ощущал через это свою крутость (LOL).
Во времена DOS такие программки было удобно щёлкать.
Теперь попробуй на ассемблере калькулятора графического написать. За неделю и несколько миллионов строчек кода управишься?
@@BestMovieActors конешно нет, АСМ не для этого, но при разработке каких-нибудь драйверов он точно пригодится
@@BestMovieActors в принципе легко, WInAPI изучил и давай вперёд, чуть сложней чем на С/С++. По крайней мере я эмулятор МК-61 делал на асме, правда потом на С++ переделал, там по проще.
@@ИзиБризи-с1х если напишешь хоть одну вставку в коде драйвера который должен быть заэмбежен на уровне ядра ос тебя сразу же уволят. это грубейшее нарушение, тебе даже ddk не даст такой код собрать
Ну, на демосцене место АСМу) вообще, демосцена это качественное порно для любителей оптимизаций.
Эти знания не бесполезны. Они просто нужны в другой сфере. Допустим когда ты программируешь ту же ардуину на атмега 328 там уже можно обойтись и без знания ассемблера просто кодя на си(именно на с/с++ на на wiring). Но на той же атмега13 или атмега 10 памяти очень мало и поэтому там ассемблер будет очень выгоден по сравнению с си
7:50 оооооооо, в прошлом году как раз на курсе архитектура эвм собирали свой виртуальный мини процессор. Полностью с нуля. Довольно интересная штука была. Правда бОльшая часть студентов не справляется и просто покупают работы у старшаков и только 2-3 человека собирают полностью рабочий сами. И я с друзьями единственные из группы кто собрал. Так прикольно потом было, когда всё заработало писать мини программки под него.
Насколько продвинутый проц собирали? Кэширование щупали?
Да куда там кэширование щупать))) Только теоретически прошли его принцип работы. Я не знаю как определять продвинутость проца потому, что единственный проц устройство которого я знаю - это мой, мне просто не с чем сравнивать)) Но все-таки кажется, что проц был самый-самый примитивный, второму курсу что-то сложное не получиться дать :) Плюс это еще и не наша главная ветвь обучения была. Проц состоял из операционного автомата (блок регистров, учёт флагов, АЛУ), управляющего автомата(декодер команд, чтобы из микрокода инструкции подгружать) и блока памяти. Там по вариантам надо было несколько команд реализовать, разные типы поддерживаемых операндов и их количество + еще второй алу у некоторых надо было сделать. Конкретно у меня были команды ADD, SUB, SHL, NAND, INC, LD, ST, SHR , JMP, JZ. Плюс пару тестовых программ для проверки работоспособности.
Если мы не знаем то как работает старое как на его улучшить? Я лично хочу заниматься именно этим (писать компиляторы )
Почему знать ассемблер. 1. Оптимизировать код сделать его быстрее . 2. Посмотреть действительно ли код отрабатывает так как нужно. 3. Ты можешь модернизировать чужие программы. 4. Это интересно. 5. Пригодиться для безопасников ну или на обратной стороне (темной)
Проблема в том, что с каждым поколением, знающих специалистов этой технологии становится все меньше, пока не будет утеряна. Это как насо потеряла чертежи межпланетных кораблей, нет специалистов. А потом придётся изобретать велосипеды заново
У некоторых преподов инфаркт случится от заявления, что подавляющему большинству разрабов ассемблер не нужен. На моей памяти ассемблер использовали 2,5 человека для решения проблем с пик и авр микроконтроллерами в каких-то особо задротских случаях.
Про асмемблер очень хорошо сказано. А вот то, что автор поставил плюсы и жабу с петухоном в одно предложение - это уже осуждаю (шутка, если что, хотя для меня, как для плюсовика, это не шутка))
Дело говорит чел. Сам ниасилил, другим помог
ниасилить. В этом несомненно есть плюс - вафельные мальчонки с маками, рисующие формочки думают что они программисты, а хардкорные ребята нагибают всех и в кс, и в айти, потому что умеют в этот самый ваш оссемблер. Лайк, ска, раунд.
Ассемблер больше всех в современном мире нужен на хорошем уровне чтения реверс инженерам (вирусные аналитики, пентестеры и всякие там "черные шляпы" для кряка и кей гена софта), а для написания жизненно важен для экплойт девелопмента. При эксплуатации бинарных уязвимостей нужно очень хорошо понимать как работают стек, куча, за что отвечают служеюные регистры, что бы составлять разные ROP цепочки, обходить защиты и в итоге передавать управление зачастую на собственно написанный shell code на чистом ассемблере естественно.
А я просто кавычки ставлю на цтфках и мне збс
Шутки из категории web300?))@@flac1482
Почему? Игры для ретро консолей на ASM.
Видео из разряда: «появились калькуляторы - математика больше не нужна. Ребята, цените труды специалистов, которые разрабатывали калькуляторы и забудьте напрочь о математике» - Гениально)
братан, харош, давай-давай, вперед, контент в кайф, можно еще, вообще красавчик!
я все еще жду тот момент когда наконец то загрузится реакт проект на фоне
Какая ещё преждевременная оптимизация? У нас уже и над своевременной никто не париться!
Видео актуально. Сам изучаю все низа программирования и компьютерных технологий. В ассемблер лезть пока не хочу, но видеть дело не за горами.
Чисто моё желание изучить как всё устроено, я не могу сидеть и красить кнопки, не зная как это происходит. Думаю данное веяние к низкому программированию обусловлен уж высокой языковой абстракцией и люди имеющие аналитический склад ума, задающие вопросы "откуда", "почему", "зачем" теряются во всем этом и им нужен первоисточник всего этого компьютерного.
Недавно пришлось кодить эмдед , чип имел всего 64 байта оперативы, да, байта, не килобайта. Вот там ассемблер пришлось вставлять, но 80% на плюсах норм ехало
Землю крестьянам - это ты как раз таки туда, брат. Вот этого вот давай по-больше.
Автор забыл учесть, что активное применение ассемблера имеется -- это обратная разработка.
Ассемблер не кодерам (в общем понимании) нужен, а тем, кто реверсом занимается
Ну как сказать. Еще совсем недавно в 2007-9(не помню точно). Мне пригодился ассемблер, потому что модуль ядра для драйвера сетевой карты у eeepc был с асемблерной вставкой, в которой был баг. А нахер нужен ноут без сетевухи?
Ну и типа вариантов не много: или фикси сам или жди пока пофиксит производитель драйвера. Я фиксил сам. Наверное я бы и без знания асма бы это пофиксил, но асму меня еще в школе учили(да и до школы, дед всякие приколюхи показывал).
А еще асм нужен для работы со всякими контроллерами и тд. Короче полезно знать(да и знать там особо нечего, сплошные справочные данные, а принцип прост как апельсин).
По своему опыту скажу, что обогнать C++ компилятор вставками на Asm'е крайне трудно. В Asm'е есть смысл для задействования MMX/SSE, но задача должна максимально подходить под эти наборы инструкций, иначе преимущество сведётся к нулю (а, скорее всего, к минусу) из-за подготовки (упаковки/распаковки) данных под эти инструкции.
Врачам так-же необязательно знать как работает организм, они же лечат как - определяют болезни по симптомам и назначают лекарства или вмешательсво.
Так-что врачам, как и программистам нужно знать симптомы и назначаемое лечение(API) а не принцип работы организма и возникновение болезней(Ассемблер и архитектура)
Ну вот и подводя писю к носу, становится понятным: озвученная автором тенденция является истиной только потому, что бизнесу нужны кодящие люди и много, в результате низкоквалифицированные спецы пользуются спросом так-как способны решать задачи на прикладном уровне. Но абсолютно всегда такие "спецы" будут иметь более низкий приоритет перед людьми с академическими знаниями по предмету. Есть конечно исключения, но и эти самые исключения не застрахованы от тупых ошибок связанных с незнанием процессов которые протекают для них в "черной коробке". Ассемблер обязателен к изучению, кодить на нем вам может и не нужно, но знания некоторых принципов освобождает от знания множества фактов.
Когда-то без ассемблера было не реально обойтись. Например, на ZX Spectrum - там по ощущениям Бейсик раз в 20 тормознее. Поэтому, чтобы использовать всю мощь процессора было нужно говорить с ним напрямую. Сейчас-же это почти никому не нужно. И знание ассемблера нужно только для того, чтобы разобраться в чужой программе, не имеея ее исходников. Ну, чтобы, например, отучить игру от стима :) или улучшить графику до 4к и выше у старых игр.
Ну во времена Спектрума тоже можно было написать программу на встроенном Бейсике, или Си, и с помощью компилятора превратить ее непосредственно в машинные коды, и получить достаточно хорошую производительность. Знание ассемблера сегодня нужно, чтобы писать производительный код на любом языке, т.к. у вас есть понимание, во что ваш код превращается. Иными словами, чтобы стать программистом более высокого качества. Если у вас нет такой цели, то вам это знание не нужно.
@@cafedead о, опять свидетели производительного кода
господин мертвое кафе, чтобы писать хороший производительный код нужно знать примерно дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта
и знаете, вот знание ассемблер как-то не очень хорошо помогает, когда весь код занят банальными сисколлами и расходами с ними связанными
сказки про то, что мол вот, знаешь ассемблер - значит знаешь все, далеко нерелевантны
недавно мой коллега, который разрабатывает довольно высоконагруженную часть kv хранилища, написал поиск ключа в хэштаблице в питоне за линию
при этом этот же человек половину ядра перехерачил, чтобы к нам неблокирующие дескрипторы завести
про людей пишущих на интерпретируемых, или боже упаси на языках которых исполняет JVM, там вообще этот ассемблер не уперся никуда, там нужно знать еще как под капотом эта JVM работает и какой GC лучше использовать.
не нужно в текуище время знание ассемблера 99% программистам, а те, кто этот производительный код будут писать (не дай бог), то они должны знать еще гораздо кучу более важных вещей, чем ваш этот ассемблер поганый
@@kostya48i57 А писать как-то без вот этого гонора вас учили? Пишите пожалуйста незнакомым людям вежливо.
"чтобы писать хороший производительный код нужно знать примерно дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта"
Ну может быть нужно, а может быть и нет. Вы ничем это свое балабольство не подтвердили. это для вас всего дохреналион того, чего вы не знаете, вот вы и предполагаете что это все то, чего нужно знать... Вы это себе вообразили от незнания предмета. Называйте это своими именами, пожалуйста.
"и знаете, вот знание ассемблер как-то не очень хорошо помогает, когда весь код занят банальными сисколлами и расходами с ними связанными"
Не помогает, потому что вы ничего не знаете ни про ассемблер, ни все весь некий "дохреналион". Ну вот я конкретный пример в комментариях под видео привел, когда Соер, не понимая сути конструкции switch/case, написал менее производительное решение FizzBuzz. Он знает ассемблер, но не вполне понимает. Как и вы, он не может связать код, который он пишет на языке высокого уровня, с тем, что исполняется на уровне процессора. Нет у него этой связи в голове, как и у вас. Ну а мне понимание ассемблера помогло написать более адекватный и производительный код решения этой задачи, производительнее Соера, и производительнее решения от chatGPT. Может просто ваше понимание ассемблера плохое, как и у Соера?! И причем тут в решении этой конкретной задачи "дохреналион контекста языка/оси/компилятора/среды/сетей/архитектуры проекта"? Правильно. Вообще не при чем. Это просто ваше балабольство ни о чем.
"сказки про то, что мол вот, знаешь ассемблер - значит знаешь все, далеко нерелевантны
недавно мой коллега..."
Это вот ваш пример нерелевантен. Какой коллега? Что написал? Как написал? К чему эта чушь здесь?! Сказки рассказываете здесь вы. Раз уж вы мне смеете подобное заявлять, держите и в ответку аналогичное обращение. Я тоже так умею, не вы один.
"про людей пишущих на интерпретируемых, или боже упаси на языках которых исполняет JVM, там вообще этот ассемблер не уперся никуда, там нужно знать еще как под капотом эта JVM работает и какой GC лучше использовать."
Я конкретный пример с Соером и Javascriptом привел. Конкретный пример. Имеем там конкретный результат. С пониманием работы switch/case - результат один, без понимания вариант Соера - результат другой. Что еще не понятно?
"не нужно в текуище время знание ассемблера 99% программистам, а те, кто этот производительный код будут писать (не дай бог), то они должны знать еще гораздо кучу более важных вещей, чем ваш этот ассемблер поганый"
Малолетние оценки того, в чем вы не смыслите. Желаю удачи с этим вашим мнением.
Почему? Игры для ретро консолей на ASM.
@@kostya48i57 Может это зависть?
7:52 nand2tetris и книга(Архитектура компа и проектирование систем) от Паттерсона и Хеннеси ставшая классикой, почему какая-то рандомная методичка?
Ассемблер в кайф, можно вот этого вот почаще?!
можно машку за ляжку
Сначала был машинный код, это был ад для програмистов, поэтому пирдумали ассемблер, потом решили что нужно развивать абстракцию и придумали высокоуровневые языки. Тоесть человек всегда ищет упрощений, выгоды и комфорта. С стремительным развитеем ИИ, очень скоро люди придут к еще одному упрощению и большой выгоде для бизнеса в первую очередь, это когда код будет писать ИИ. Все к этому идет. И вот в первую очередь как раз таки пострадают красильщики кнопок, гоняльщики jsonов и такого рода специалисты. Системные програмисты, безопасники пострадают в последнюю очередь. поэтому ассемблер знать полезно.
Ассемблер каждому прогеру действительно не нужен, но какое-то представление об архитектуре эвм иметь всё же нужно. Не говорю, что надо прям до байта всякие FAT таблицы разбирать, но как минимум знания о том как процессы и потоки работают и про всякие штуки типа API ОС, сетевые сокеты и виртуальная память надо хотя бы знать что они есть и зачем нужны. Новичков, понятно, этим всем лучше особо не пугать, но начиная с какого-то уровня про это странно не знать.
Ну и некоторые идеи типо конвееризации и квантования сами по себе могут быть полезны как своего рода паттерны, так что тоже не помешает пожалуй
А так, братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
@@имяфамилия-т3ж1ц протри резинкой контакты оператоса -_-
Питон сам по себе уникальный ЯП, для первого обучения он не подходить, не все основы в нем собраны, не все подробно объясняет синтаксис, допустим как в плюсах, ибо там всё подробно все скобочки и т.д. это не значит что их надо выучить или знать, но после изучения на плюсах массивов, процедур циклов и т.д. на др. ЯП будет проще. А учитывая что питон и так завален болванчиками, то делать там сейчас особо нечего, да и не особо он связан так программированием, больше с математикой. Но о практичном применении Асм я молчу, драйвера за тебя никто не напишет, человек всегда будет лучше писать код, чем компиляторы, другой вопрос, сколько это времени. Железяки более производительные, это не значит что нужно засирать их ресурсы. В одну кучу сложил плюсы джаву? Зачем, на плюсах ты не сможешь прогать микроконтроллеры и драйвера так как на Асм, в джава вообще так без доступа к памяти
Ассемблер помогает разобраться в вещах, которые еще не совсем довели до идела: JIT, например.
В книжке Кокосы очень много вставок ассемблера, но он преподаётся не как знание, а как способ передать ключевую идею - например, что стракты JIT старается запихнуть в регистры или сейфпоинты
Важен сам концепт: например, автовекторизация вычислений, какие подсказки нужно в хотпасах давай житу, как в принципе устроен процесс в ОС - что такое VAS, почему стек ограничен, почему фрагментация LOH вредна или как избегать полной сборки мусора
И то. Ассемблер это только полбеды: есть lock free, есть хеши, есть асинхронность, есть векторизация - темы, не менее важные, чем ассемблер
Потому и получается, что важна концепция/идея чего-либо, а не средство ее реализации - ассемблер, например.
В общем оно нужно профессионалам, а в работе кроме байтоебства, ты не будешь это применять больше чем в 98% случаев
Самое прикольное, что ассемблер был стандартизирован в 1985 и стандарт был отозван в 2001, но его до сих пор можно купить.
Ассемблер в основном используется когда нету другого выбора (например ядро ОС) или необходимо что-то оптимизировать (например facebook в свой библиотеке folly сделали кастомный memcpy /facebook/folly/blob/main/folly/memcpy.S ).
В основном нету необходимости напрямую использовать ассемблер, т.к. есть intrinsics (это как обычные функции, но компилятор заменяет их на инструкции, а не вызов функции), есть assumption, по типу assume атрибута, которые подсказывают компилятору, что делает компилируемый код, есть выравнивание (alignment) структур данных, чтобы улучшить взаимодействие с кэшем процессора и чтобы улучшить генерацию инструкций компилятором, и есть флаги компиляции говорящие генерировать более производительные инструкции под более специфичные машины.
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Давайте признаем, что С++ и Ассемблер - достаточно, чтобы переписать код вселенной. На Асме задаем правила и физические законы, а на плюсах пишем планетки там, черные дыры, с помощью Qt делаем это все красивым.
И на системном уровне запрещаем делать сайтики.
Поэтому JS-никам придется учить Асм, чтобы красить кнопочки и попивать смузи.
Есть Веб асм
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Ну вот когда у меня программисты уперлись в уебищную производительность библиотечной функции Фурье преобразования, их спас я написав за пару ночей оптимизированную на асембли нативную библиотеку. А я олдфаг - аккаунт менеджер, который ничего новее плюсов так и не освоил. Шах и мат совремменные кодеры.
Когда я начинал писать программы, то начинал с машинных кодов. Потому что ассемблера на руках не было для того процессора, для которого писал. Код вбивался в отладчике в виде 16 ричных знаков. "Компиляция" - руками по таблицам в книжках, линковка - в тетрадке. Ничо - не помер. И от того что схемотехникой процессоров и периферийных устройств и прочей лабудой позже занимался - тоже не помер, и эта информация не является вредной. Нужно ли это всем сейчас - нет. Пожалуй соглашусь. Как написать на ассемблере игру ААА класса? - ответ никак, понадобятся промежуточные уровни абстракций и их придется писать. Никто же чайной ложкой на даче не копает под картошку...
Вопрос в другом, насколько Вы контролируете тот продукт, что Вы производите, используя чужие библиотеки и компиляторы? Примерно никак. В среднем современная разработка - магия, написал print(1+1), а как оно вычислилось и вывелось - хер его знает. Ну ок, ок. А автор библиотеки, которой Вы пользуетесь был под эффективным менеджментом, торопился, в ущерб качеству, или осознано закладку в код библиотеки положил. А вы нареактили с этой библиотекой. Чтож потом не удивляйтесь...
И обрастает это всё входными проверками библиотек и компиляторов на закладки. И процесс разработки превращается в такой адъ, что порой не знаешь что лучше, через ИБ стороннюю либу провести в контур разработки, или свою написать.
Меня вот что больше беспокоит - Почему каждое обновление приложений, в телефоне например, становятся все объемнее? Внешне ничем приложение от предыдущего не отличается. Что это? Оптимизация? Тел через год начинают тормозить ибо не могут быстро переварить ту увеличившуюся простыню кода.
Жаль я не программист. Но хотелось бы чтоб ктото из знающих эту тему немного расскрыл.
На старый комп установил winXP. Шустрый, зараза 😅, но старый.
Новые приложения гораздо больше, в них очень много сторонних компонентов. Разработчики допускают ошибки, думая "потом оптимизирую" и используют слишком много всякого говна
@@i-am-ultra пробовал написать простенькую программу, типа калькулятора. А он в несколько мб весит. В ассемблере если писал, думаю весил бы намного меньше. И я вынужден с вами согласиться, в языках высокого уровня на выхлопе много лишнего. Увы, не стал изучать ассемлер и копаться в коде той програмки дабы узнать правду.
Потому что это ява ;)
Cumulative patch.
Ты когда обновление выпускаешь, ты не знаешь какая версия текущая у клиентов, и ты запихиваешь в нее все изменения начиная с какой-то версии, чтобы у всех точно обновилось и ничего не закирпичилось.
Когда зайдешь на 4pda чтобы поставить root, и охренеешь от того как все на соплях держится что вот для такой версии именно такой файлик нужен, а не другой
ОЙ ЭТО СТАРАЯ ИНСТРУКЦИЯ НЕ ЧИТАЙТЕ... - тогда и поймешь что скачанные лишние мегабайты стоят того чтобы не проебаться где-то с версиями.
@@Georgggg ну так, вы про само обновление говорите. Я имел ввиду размер приложения после применения обновления.
Братан, хорош! Давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик!
Согласись, что без байтодрочеров все давно пошло бы по одному месту. Даже в ААА проекте жытыа из-за дырявого подхода "все уже давно за вас придумали" написали какую-то хуйню, которая грузилась миллион лет, пока не нашелся человек, которого это заебало и не исправил.
Парируй
Что парировать? Вот это - пгарпгрпипиэди ?
обалдел с того что плюсы ни с того ни с сего стали высокоуровневыми
Оговорочка) Повыше типа
вы забываете про давольно большую группу людей, которые занимаются реверсом.
Как человек с 12 годами опыта работы на всякоразном низкоуровневом от С и плюсов до древних версий CUDA заявляю: вам asm на**й не нужен. Иногда полезно уметь читать асм для анализа и дебага, но за годы работы системщиком или ембеддедщиком вы лайкли ни строчки не напишите на асме. Компилер напишет лучше, кроме тех случаев когда у вас есть надежные аргументы уровня диссертации. Понимание архитектуры полезно… но только если вы пишете критичный к производительности лоу-левел
Бодрый обзор, подача нетипичная, нескучная, юмор тонок и остр. Короч по сердцу такие видосы
Ассемблер бывает необходим для низкоуровневой инициализации. При взаимодействии с периферией может возникнуть необходимость вставки пустых инструкций. Процессор может иметь расширение инструкций не поддерживаемых компилятором. Так же на нем реализуют функции деления, умножения, и всего того что не поддерживает компилятор непосредственно, и процессор посредством соответствующих инструкций. Так же он бывает необходим при отладке приложений. Вопрос актуальности ассемблера возникает только у тех, кто не копается с железом непосредственно. Ассемблер не устарел, и его, в общем, ни чем и не заменили. Он не золото и не говно, он составная часть. До сих пор можно попросить си компилятор сгенерировать ассемблерный файл, и это порой бывает просто необходимо.
Хороший программист - это программист, который знает абстракцию на 1 уровень ниже, чем ему это требуется в повседневной работе.
В этой одной фразе больше смысла, чем во всем ролике. С чем и откланяюсь.
Это бред
@@nikolaifedorov685Твой код - это бред.
На 1 уровень ниже для среднего разработчика стоит ОС (если не считать транслятор языка). Про неё действительно какие-то вещи нужно знать, например, без знаний о работе процессов, потоков и механизмов синхронизации может быть тяжко, если придётся параллельный код писать. Тут с вами трудно не согласиться.
Но в ролике больше про ассемблер говорится и про тезис, что "не знаешь ассемблер - не программист". И тут уже с тем что сказано в ролике трудно не согласиться: ассемблер - лишь инструмент, и если разработчик им не пользуется, то и знать этот инструмент необязательно. Более того, знание ассемблера само по себе и не даёт знания "на 1 уровень абстракции ниже".
На самом деле действительно раздражает подобный снобизм (в ВУЗе навидался этого), так что автора лично я полностью поддерживаю в данном вопросе.
@@const8576 знание ассемблера дает понимание на два уровня абстракции ниже. Верхний - это наш код на интерпретируемом языке программирования, уровень ниже - байт-код, в который это все транслируется, и уровень ниже - это ассемблер, в который был скомпилирован си-шный исходник интерпретатора. Знание ассемблера даст вам примерное понимание того, во что превратится в конечном итоге ваш исходный код на языке высокого уровня. Незнание - не даст. Ну поддерживайте автора, на здоровье. Оставайтесь плохим программистом, на здоровье. Зачем вам вообще ВУЗ? Вы не цените данные вам знания. Я вот, например, не учился в ВУЗе на программиста, и все это был вынужден сам изучить, потому что мне было это интересно. И как я должен воспринимать написанное вами здесь?
@@const8576 код ОС стоит на том же уровне абстракции, что и код интерпретатора, исполняемый в этой ОС. Абстракции - это вообще не о том. Абстракции - это вот интерпретируемый байт-код, работающий с кучей и стеком, ниже - ассемблер, ниже - логические элементы процессора, ниже транзисторы процессора, с помощью которых эти логические элементы собраны. Вам ВУЗ ничего не дал. Ничего не понимаете.
Нашел это видео в ютубе. После первой минуты замьютил, так как слушать этот бред невозможно. Начал читать комментарии и понял, сколько же безграмотных и попросту тупых людей в этом мире. А ведь они еще при этом работают программистами и зарабатывают деньги. Стоит обществу об этом задуматься.
1. как все сказали ассемблер сейчас нужен для ревёрса. 2. а я вот хочу свой язык написать, я буду его как компилировать? конвертировать в c++? конечно же я возьму ассемблер
llvm
Неа, ты еще можешь взять виртуальные машины вроде жабаскриптовой, жабы, шарпов и еще некоторые с возможностью потом юзать сопутствующие языки что бы брать оттуда библиотеки и пользоваться фреймворками. Я вот недавно у тсодинга увидел на что способен ерланг с его вм. Это вам не это нихрена, это все не просто так придумали.
Очень много новых языков используют llvm в качестве бекенда
@@artemivanov3841 да и прогресс людей пойдёт лестницей вниз. Разве не интереснее самому изучить ассемблер, архитектуры и написать компилятор с парсером языка?
@@iamdozerq Вот из за таких гениев компьютеры пиздец мощные, а программы пиздец тормозные! Хорошую VM написать полбеды
Иногда полезно посмотреть, как компилятор интерпретировал твой код. Иногда можно увидеть очень тупые ошибки в результате работы компилятора и исправить их. Но это, только если ты понимаешь ассемблер.
Какой ещё эмулятор? Я в универе на голом процессоре запускал машинный код, вбивая адреса на инструкции ПЗУ
процессор наверно с 3 ножками?
Оптимизация которую мы заслужили
Говорить что компилятор оптимизирует код лучше чем программист, и то что низкоуровневый код нигде не нужен может только фронтендер на питухоне 😄
Ну вообще-то он прав. За счет статических анализаторов можно выкинуть кучу ненужного из кода, что человек бы сам никогда не делал, т.к. лень и долго.
Подскажите пожалуйста на каком железе Вы работаете и в каких проектах, если Вам необходимо делать ассемблерные вставки или вообще писать весь проект на ассемблере.
Почему не хватает производительности например того же Си?
@@segeus , вопрос не ко мне, но как вариант...
Я работаю на винде и занимаюсь обработкой звука в реальном (близком к реальному) времени ;)
P.S. Сей у меня нет. Но есть встроенный ассемблер в Делфи.
так вы посмотрите что этот сишный компилятор генерирует. это же ужас. по части некоторых оптимизаций, например деления на константы, компилятор лучше. там у них тыща заготовок на такие случаи и это хорошо. но глубоко анализировать они не умеют. смотреть на циклы, например это и смешно и грустно
@@ktoetosdelal-37 я конечно дико извиняюсь, но что не так со скомплированными циклами?)
Когда изобретут квантовый компьютер (скоро) и появятся кубиты, все твои 99% разработчиков остануться с лапками, а господа ассемблерщики будут как рыба в воде на новой архитектуре
Грядут новые законы физики, архитектору надо знать базу
Ассемблер нужен больше для отладки\исправления чужого скомпилированного кода. И в тех местах, где иначе никак - отсутствует компилятор более высокого уровня, а есть только транслятор ассемблера в железке (ОС может и не быть вовсе).
Братан, хорош, давай - давай, вперед, контент вообще в кайф, можно еще? Вообще красавчик!
Все слышали? Требования падают и порог ниже. Айгуль, чай фантазеру
Ну относительно 20го века реально падают, эвм могли управлять только квалифицированные учëные))))
@@TheAndreyCraft В 80-е, тех кто сидел за ЭВМ называли програмистами.
@@TheAndreyCraft, если ты считаешь оператора ЭВМ программистом сейчас.... Это всё равно, что сравнивать х@й с пальцем😂
Что ты лучше поймёшь , Пайтон или Ассемблер ? =))
Мне только кажется, или это видос из раздела "Зачем изучать математику если есть калькулятор"?
кажется.. На ассемблере писать нах не надо. Поигрался немного в унике, понял как работает и досвидос.
Зачем?
Ассемблер просто полезен для кругозора современному разработчику
Спортивный интерес должен возникать и к ассемблеру.
Assembler как латынь. Однако его полезно знать для Reverse инженерии ПО
компилятор ассемблера переводит буковки в циферки и иногда может помочь с арифметическими действиями. так что весь код зависит только от тебя, это и есть машинный код только написанный буквами.
Я бы никогда не подумал, что кто-то может понять выражение "ПРЕЖДЕВРЕМЕННАЯ ОПТИМИЗАЦИЯ" как "отказ от оптимизации". Дядя, ты ГЕНИЙ.
Если бизнесу будет нужна твоя оптимизация, он сам скажет ее сделать. В противном случае, "оптимизатор" в пустую проебывает деньги бизнеса, выделенные на его позицию, еще и усложнаяется работу (== делает дороже) другим.
@@MungorTV Еб**ь, СВИДЕТЕЛЬ БИЗНЕСА.
Расскажи про системных программистов (разработчиков)
Пониимание ассемблера в первую очередь нужно для понимания самой сути программирования
В первую очередь это банально " чистый код " когда ты знаешь как твой код компилируется ты уже понимаешь какие правильно конструкции/операторы использовать, банальное использование функций и указателей .
Во вторых это это трезвая оценка сил того или иного языка ЯП , что бы не плодить Костыли ! Из за того что ты не знаешь что твой язык может а что не может,
Ну и в третьих это быть душнилой и на любом интерьвью грузить тех кто пытается тебя завалить!
Ну и Естественно Ассемблер может все ! А ваш ЯП? Может все? Не думаю
Вообще, именно из-за того, что нынешнее поколение программистов напрочь забивает на оптимизацию, мы имеем веб-интерфейсы и браузеры, которые умудряются лагать даже на RTX4090Ti+Ryzen 5950, а также игры (даже не обязательно Triple-A) весом по 150 гигабайт, да и рабочие пакеты типа Адобе стремительно "жиреют". Не в последнюю очередь ещё и потому что модным становится всюду прикручивать нейросети, модели к которым весят по несколько гб сами по себе. И это при том, что в каком-нибудь 2012 можно было иметь диск C размером 40 гб и установить туда: Автокад, 3дмакс, Cinema4D, Maya, весь Adobe Master Collection, весь MS Office, FL Studio, Cubase 5, маткад, матлаб, ещё кучу всякой повседневной мелочи вроде кодеков, и ещё место останется на сохранёнки. В конце концов, производители жёстких дисков и всё более и более мощного железа тоже в доле...
Я считаю, что в будущем врубится конкуренция: найдутся люди, которые сделают правильный софт вместо этого всё более рукожопого. И тупые раздолбаи пойдут на дно.
Чем больше времени деградации происходит, тем больше потенциал к радикальным изменениям.
@@VladimirKolontsov Современный положняк очень надёжно поддерживается кризисом производства и перепотребления, а горящие дедлайны, не позволяющие доделать всё по-человечески, подкидывает сама индустрия. На Медиуме ещё в 2016 вышла хорошая статья с заголовком "Почему мой телефон не обновится до нового андроЕда?", с тех пор особо ничего не поменялось, разве что усугубилось. У меня от покойного бати остался xiaomi redmi 6a, на котором особо ничего тяжёлого не установлено, он просто обновился с 10 оболочки до 11, и даже на лаунчере он умудряется на ровном месте стопориться секунд на 10 после разблокировки (особенно первые минуты после запуска), иногда вешается на чёрном экране пока не перезагрузишь, блютуз выключить надёжно нельзя - через пару минут сам включится, и так далее.
И корридорные игрулечки с минимальном функционалом и графикой 2012 года требуют именной такой конфигурации
@@VladimirKolontsov, верить в конкуренцию - это всё равно, что верить в Санта-Клауса.
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!
Сделал свитч после 7 лет дотнета (микросервисы, домейн дривен дизайн (вау, как сложно), куча синьоров, рассуждающих про дизайн классов и имена переменных) в хардкорный С++ бекенд и счастлив, что теперь знаю про иерархию кешей, векторные инструкции и еще много чего и предела там нет !
здравствуй, скажи, а твоего уровня знаний хватает понять - что меняется в компьютере - когда вынимаешь планку оперативки, вставляешь, и он запускается, хотя до этого - только экран биоса зависший делает. После подобного действия - можно перезагружать сколько хош, но выключив на ночь, утром уже не включить
Писать на ассемблере самому действительно не нужно в большинстве случаев, Си во всем лучше и компиляторы есть под каждую платформу. А почитывать код который выдает компилятор стоит. Чтобы учитывать кэши, конвейер инструкций и другие особенности современных процессоров писать на ассемблере необязательно, основные на этом оптимизации делают разницу между 15 фпс и 60 в батлфилде. Преждевременная оптимизация это плохо, эту цитату любят использовать современные погромисты на жс как оправдание чтобы не заниматься оптимизацией вообще. Хотя эта цитата естественно не про это, а банально про то, что нужно использовать профайлеры. То, что красильщикам кнопок не нужно знать как работает процессор, и даже как работают типы и сборщик мусора в используемом ими языке, многое говорит о красильщиках кнопок, а не о программировании. Потом эти люди говорят про вузы, что там не учат современному программированию, мол где же новомодные жс фреймворки, зачем вы нам рассказываете про процессор, хотя высшее образование и готовить должно по идее инженеров, а не красильщиков.
Знание ассемблера необходимо только в нескольких случаях:
1. Если ты разработчик драйверов, микропрограмм и операционных систем. Это позволит облегчить отладку.
2. Если ты занимаешься реверс-инжинирингом.
3. Высокопроизводительные вычисления, когда от железа нужно выжать максимум за счёт нестандартного применения инструкций процессора.
Во всех остальных случаях он не нужен, но знать его не помешает. Случаи в жизни бывают разными.
Скажи это реверс-инженерам!
Я на Task-Based CTF участвовал в качестве реверсера. Там без ассемблера никак. Знаю я его на среднем уровне. FPU и MMX еще пойму, но с SSE уже никак.
По своему опыту могу сказать, что знание ассемблера может пригодиться при разработке на языке С. Привет тем, кто пишет на оном код для микроконтроллеров
В частности у меня был случай: код, скомпилированный под MinGW крашился. Причиной была локальная переменная большого объема, она просто продавливала стек. Знания ассемблера тут очень помогли.
P.S. Я еще временами балуюсь отучением программ от жадности. Причем для меня результат имеет второстепенное значение, больше интересно как реализовано. Вот тут без асмы делать нечего
На современном компудактерном железе даа, он нам и нахуй не нужон ассемблер ваш.
Но есть такие ваши как микроконтроллеры, туда конечно пытаются пихать питухон, но расходовать и так скудные ресурсы на интерпретацию расточительство. А микроконтроллеров нынче будет всё больше ведь каждый камень и табурет становится умным, а мы нет...
Только что посмотрел видос «ХУДШИЙ язык для новичков» а тут на 2 минуте уже автор рекомендует Питон
Спасибо, чел. Благодаря тебе я понял, что занимаюсь на работе полной ерундой. Ведь перформанс энжиниринг - это всего лишь определение сложности алгоритма и примерного количества тактов процессорного времени на его выполнение, основой чего является знание в какие ассемблерные инструкции алгоритм транслируется. Абсолютно ненужное знание, ведь компиляторы прекрасно оптимизируют алгоритмы с факториальной сложностью в константную.
Пойду лучше писать фронтенд на пайтоне.
Братан, харош! Давай, давай, вперед. Контент в кайф, можно еще, вообще красавчик!!!!!1
Ага, вы просто не видели "программистов" на 1Сочке которые не в состоянии подключить монитор и вилку питания 220V в розетку. Зато носят гордое звание "программисты". Высокий уровень это конечно хорошо, но о том как всё работает хотя бы надо иметь представление. А то получается, так (придуманный грубый аналог) чувак работает врачём и выписывает лекарства направо и налево, что-то там советует и не дай бог лезет скальпелем в тело, а сам понятия не имеет ни о биологи, ни о химических процессах которые происходят в организме, ни в чём короче. Есть такое понятие "база". И сейчас, так как IT - это модно-молодежно, индустрию и наводнили дилетанты, которые прошли курсы по той же 1Сочке, а как элементарно работает ПК понятия не имеют! Ну правильно есть же высокий уровень, нахер парится об оптимизации и написании качественного кода.
Оператор сложения в двоичном коде это, 0000 0100 = add в ассемблере. Вот суть ассемблера различные мнемоники. И шестнадцетеричный формат что бы понимать что записано в половине байта. f= 0000 1111. ff = 1111 1111. Вот и вся суть.
Понимание ассемблера даёт понимание того, как работают языки программирования. Это называется общее развитие, человек в целом становится умней, когда понимает как оно работает на низком уровне.
Для автора которому CRUD делать на работе достаточно и фронтедерам чтобы центрировать див, это не нужно) Они считают это бесполезным знанием, современное айти, не удивляйся, работа ради денег
Утверждение есть, а вот доказательства не привели
Приведите пример как знание ассемблера поможет понимать питон???
PS люблю кодить для stm32, понимаю процессы и архитектуру, и даже тут не вижу смысла в знании ассемблера….
особенно для интерпритируемых языков, либо для языков с JIT компиляцией это поможет, за 20ю уровнями абстракции до ассемблера :)
Смотри развитие человека и профессиональное развитие разные вещи.
Сам то ненавижу фронтэндеров, но придется дефать ибо ты свои личные нолайферские предпочтения проектируешь на других и вставляешь как эталон.
Лет 6 назад я думал что рофл, что в айти только девственные додики работают, лол как же ошибался. Вот из-за такого большинства абсолютно не интересных отбросов знание низкоуровщины стало популярным.
Заметь что это профильное знание, ты просто знаешь что-то больше в своей работе.
А про развитие не надо тут чесать, развитие мерится айкю, а у нолайфера который умеет только кодить + куколдить, айкю не может быть даже двузначным.
Нихрена вы себя возомнили, все прям важные профессоры ядерной физики.
Псевдоразвитые, вы даже с вилкой и ножом пользоваться не умеете. Про чистить зубы, или купаться хотя бы раз день чтобы калом не воняло - до свидания.
Про литературу и книги вообще стоит говорить, или тебе надо конспект в Википедии надо прочитать?
Ты и все остальные просто третисортные биомасса которым нужно внимание.
Нихрена накопилось у меня.
То есть вы хотите сказать, что я как электрик знаю asm для AVR и перемещение байтиков по проводам, а программисты не знают?
«Питон универсальный» ну да ну да
Ждём самый лучший Пайтон 4
Хотели 💩 низкий уровень, а в комментариях получилось наоборот😄