На сегодняшний день известно уже более двух с половиной тысяч самых разнообразных языков программирования. С каждым годом их число увеличивается, причем с непостижимой быстротой. Выходят обновленные или измененные версии прежних языков. Разрабатываются языки под отдельные программные продукты. Короче говоря, софтверный рынок требует новых технологий, а новые ...На сегодняшний день известно уже более двух с половиной тысяч самых разнообразных языков программирования. С каждым годом их число увеличивается, причем с непостижимой быстротой. Выходят обновленные или измененные версии прежних языков. Разрабатываются языки под отдельные программные продукты. Короче говоря, софтверный рынок требует новых технологий, а новые ... технологии требуют новейших, более мощных языков разработки. И здесь возникает проблема столь же ускоренного освоения новых языков разработки или их обновленных версий. То есть, обрисовывается примерно следующая ситуация. Предположим, выходит обновленная версия популярного языка разработки. Освоение новой версии языка упрощается в том случае, если синтаксис новой версии ненамного отличается от синтаксиса старой версии. Синтаксис языка программирования не меняется, а лишь дополняется и усложняется. При этом увеличивается мощь языка разработки. Совсем другое дело, когда новая версия языка фундаментально проработана и переделана. Изменен синтаксис, парадигма и некоторые характерные особенности данного языка разработки. Разработчикам попросту приходится осуществлять переход на абсолютно новый уровень языка разработки. Причем, происходит это не сразу, а поэтапно. Это означает, что разработчик пишет своё приложение, скажем, процентов на восемьдесят на старой версии языка, а на десять – на новой. Благо, если сохраняется поддержка старой версии. Но в результате такого смешения версий, то есть, нерационального программирования, выходит продукт, который не отвечает принципиальным требованиям стабильности и скорости работы. Это касается даже вопросов безопасности, если продукт рассчитан на сферы применения, где конфиденциальность и сохранность данных приоритетны. Это еще не всё. Как было сказано выше, на сегодняшний день существует огромное множество языков программирования. Их разрабатывают примерно столько же компаний, больших и не очень. Иногда – даже отдельные группы людей. Возникает серьезная конкуренция, особенно у крупных разработчиков средств программирования, чьи результаты пользуются большим спросом в мире. Отсюда вытекает тот факт, что невозможно определить хотя бы три наилучших языка разработки среди имеющихся. Это значит, что ни один из наиболее распространенных языков разработки программных продуктов не отвечает (частично или полностью) некоторым требованиям, предъявляемым разработчиками приложений. Причем те возможности, которые имеются у одного из языков разработки, лишь частично реализованы в другом языке. Здесь идет, так сказать, взаимное дополнение одного языка другим. Современные среды разработки приложений позволяют писать код для программ на различных языках программирования, причем даже на языке разработки компании-конкурента! И этим активно начинают пользоваться многие разработчики в своих проектах. Иногда даже недостаточно хороший уровень написания приложения на одном языке заставляет разработчика перейти в определенной части кода программы на другой язык и обратно. И снова проблема – стабильность и скорость подобных «винегретов». Разработчики программных продуктов сильно расходятся во мнении, насколько хорош тот или иной язык разработки. Существует даже некий рейтинг языков программирования. В итоге имеется многообразнейший рынок средств и языков разработки, неменьший рынок разработчиков на этих языках, которые пишут программные продукты, применяя все эти средства и вместе, и поврозь, и комбинируя их, и играя на совместимости языков… Опять же, в итоге либо получая максимально оптимизированный готовый продукт (в случае, если изощрялся профессионал), в котором из массы языков было выжато всё, что только допустимо, либо получая «сырой», нестабильный, «тяжелый», неоптимизированный продукт. Это в случае, когда извращался непрофессионал.
Но, в любом случае, здесь важен конечный результат, а не инструменты. Так что можно и нужно уметь писать программы на разных языках, в том случае, когда это действительно необходимо для реальной пользы дела.
|