Я асм учил, чтобы понять как процессор код исполняет. Я понимаю, что большие программы на асм писать - такое себе
Ныне всё сильно поменялось. Ныне куда полезнее уметь оптимизировать под кэши, чем писать на асме под конкретную архитектуру. АСМ нужен максимум, что бы понимать, во сколько тебе обойдётся какое-то арифм. выражение и почему match быстрее куче if else if.
Компиляторы ныне очень умные и уже скорее лучше писать абстрактный архитектурно верный код, а компилятор его сам оптимизирует под конкретную платформу. Например, в языках уйма функций-пустышек, которые только возвращают значение(клозуры, геттеры и сеттеры) — естественно компилятор их выкидывает, но архитектурно они позволяют достичь , например, инкапсуляции, что бы vector.len не позволил случайно нагло обнулить его длину и разрушить его целостность.
Ну во всяком случае ИМХО.