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