В 2020 году уровень технологий по всему миру продолжает стремительно расти вверх. Степень развития IT-отрасли за последние несколько лет подскочила до небывалых высот. Такой прогресс открыл для общества невиданные ранее технологии, которыми уже пользуются в странах третьего мира — например, сотовая связь. Теперь каждый, кто имеет смартфон с доступом в интернет, одновременно имеет доступ к большому количеству информации и к различным средствам работы с нею.
“К чему это все?” – спросите вы. Сейчас я постараюсь ответить на этот вопрос. Начнём с предисловия.
Ассемблер – низкоуровневый язык, который позволяет контролировать каждый мельчайший процесс, на который порой трудно воздействовать в более высокоуровневых языках, например, в С++.
В недалеком прошлом - в начале появления встраиваемых систем - код писался на ассемблере. Это был единственный вариант, потому что тогда шла борьба за каждый байт памяти. Она была в дефиците, и поэтому требовался тщательный контроль за её использованием, с чем прекрасно справлялся ассемблер. Но была и другая причина его повсеместного использования – не было инструментов для языков более высокого уровня.
С течением времени технологии росли, память дешевела, появлялись все новые и новые инструменты. Тогда и настало время, когда благоприятные условия для появления более серьезного кода были сформированы.
Люди всегда стремились упростить свою жизнь - сфера программирования не стала исключением. Программистам стало некомфортно писать огромные коды для реализации трудных задач, и тогда они стали стремиться к разработке более удобных языков под различные задачи, в том числе и под работу с графикой.
Язык ассемблера – довольно сложный для непосвящённого в программирование пользователя и является сложным для вхождения в сферу программирования. Сейчас же существует огромное множество языков, снижающих порог вхождения в IT сферу. Это одно из преимуществ высокоуровневых языков. Больше людей начинают пробовать себя в этой сфере, что только подталкивает вперед развитие IT индустрии.
Но в чём же проблема с графикой? Зачем пришлось создавать адаптированные под неё среды программирования? Дело в том, что с ростом сложности запросов пользователей росли и технологии. Графические возможности низкоуровневых языков уже не удовлетворяли запросов нового времени. Для создания сложных графических анимаций требовалось много трудозатратной работы. На помощь программистам пришли новые языки, которые со временем становились только лучше и лучше. Создавать графику сейчас стало намного проще и менее трудозатратно, чем не так давно.
В 2020 уровень развития технологий, а именно графики, достиг небывалых высот, которых еще лет 20 назад и не представляли. Графика теперь повсюду. Любое приложение теперь делается по стандартам качества нового времени. Но ведь кто захочет пользоваться интерфейсом нулевых годов?
“Что же насчет создания графики на ассемблере в 2020?” Так я отвечу. Во время прогресса технологий на ассемблере уже очень сложно, я бы сказал почти невозможно создавать все то, что с легкостью делается на других высокоуровневых языках. Огромная трудозатратная и кропотливая работа с кодом уже не стоит того. Даже на создание легкого графического примитива на ассемблере понадобится больше времени и строк кода, чем на том же С++. Это и есть главное преимущество высокоуровневых языков.
Пример:
Примитивное действие, объём которого на С++ занимает всего 1 строку, на ассемблере занимает целых 12 строк. С графикой всё довольно сложнее. Естественно, это неудобно и ни к чему, если с этой операцией легко справляется высокоуровневый язык программирования.
Получается, что графика на ассемблере в 2020 году уже не так актуальна, как ранее. Сам язык уже не соответствует тем стандартам, которые требуются для создания качественных графических изображений. Сейчас его используют разве что для вычислений и обработки данных, в скорости чего он определенно фаворит, но совсем проигрывает нынешним языкам в создании графики. То есть графические изображения гораздо практичнее создавать на специализированных языках, а оптимизацию и обработку данных поручать ассемблеру. Данная комбинация позволит лучше раскрыть потенциал обоих языков и выдать наиболее оптимизированный и качественный код.