Программ, написанных на языке ассемблера, уже существует довольно много и на этом языке написаны даже неплохие операционные системы. Но это не значит, что все в этом мире так просто.
Ни в коем случае нельзя утверждать, что все программы должны быть написаны обязательно на ассемблере. Но и языки высокого уровня также далеко не идеальны. Здесь существуют определенные противоречия и поэтому программист должен сам выбирать язык программирования с учетом конкретной решаемой им задачи. В большинстве случаев можно разумным окажется использовать сочетание обеих языков и основную часть программы написать на языке, например, C++ или Паскаль, а критические части кода по быстродействию или другим специфическим параметрам писать на ассемблере. Именно так очень много программистов и пишут свои программы.
При создании программного обеспечения на под заказ часто главным критерием становится лимит по времени написания программы, даже в ущерб качеству. В этом случае незаменимыми становятся языки высокого уровня с графической средой разработки. Но не стоит обольщаться и думать, что на них создать хорошую программу очень просто. Программа, ничего существенного не выполняющая и создаваемая в демонстрационных целях, пишется в таких средах разработки очень легко и быстро осваивается новичками. А вот для настоящего изучения в такой среде разработки придется выучить используемый в данной среде язык высокого уровня, все встроенные функции этого языка и, дополнительно, встроенные средства среды разработки. А это несколько сложнее, чем визуально создать форму и скомпилировать демонстрационное приложение.
Последнее время довольно часто пишут, что нужно использовать языки высокого уровня без визуальных средств разработки и встроенных библиотек, а задействовать только средства операционной среды. Это неплохой вариант, поскольку такие программы оказываются много меньше по размеру, да и их быстродействие возрастает по сравнению с традиционными. Но вот размер текста программы при этом ощутимо увеличивается и, соответственно, возрастает время и сложность разработки программы. Но и качество таких программ возрастает, поскольку исключаются ошибки, имеющиеся в библиотеках компилятора. Этот вариант можно рекомендовать для создания программ, для написания которых отсутствует жесткое ограничение по времени и нужно обеспечить качество созданных программных продуктов.
Ассемблер очень хорош в качестве языка для создания участков программ с максимальным быстродействием и минимальным размером. Именно в таком качестве он очень часто и используется. Но есть программисты, создающие на нём не только программы, но и даже довольно неплохие операционные системы. Это говорит о больших неиспользуемых резервах этого языка и больших его потенциальных возможностях. Ведь если операционную систему на языке ассемблера может создать небольшая группа энтузиастов, то тем более это по силам большим фирмам. Но они, к сожаленью, выбирают погоню за прибылью в ущерб качеству их программных продуктов.
Но энтузиасты создания программ на языке ассемблера не унывают и доказывают возможность создания хороших программных продуктов этом языке. Будем надеяться, что такие люди сумеют восстановить уважение к ассемблеру и убедят других программистов (особенно начинающих) и что язык ассемблера также нужен и должен использоваться при написании современного программного обеспечения.