На BBC Radio 4 есть небольшая серия статей о важных языках программирования, которые в настоящее время доступны для загрузки. Можете ли вы представить идеи и историю компьютерных языков широкой аудитории?
BBC Radio 4 пользуется большим уважением как телеведущая, основанная на новостях и фактах, но у всех средств массовой информации есть проблемы, когда дело доходит до освещения науки, так что можно ли вообще что-нибудь объяснить радио аудитории о классических языках?
Первым языком программирования является Fortran, который действительно заслуживает называться первым языком программирования. В радиопрограмме мы чувствуем влияние Фортрана на программирование и некоторые воспоминания о тех временах, когда он внезапно сделал возможным числовое программирование для неспециалистов. Можно сказать, что введение Fortran было похоже на введение электронной таблицы. Ах, это были дни, когда инструкции вводились на перфокартах по одной на карту, и все же такого рода вещи на самом деле не касались языка — все они использовали перфокарты или бумажную ленту. На протяжении всей серии существует основная путаница между технологиями того времени — перфокарты, пакетная обработка, вывод на линейный принтер и так далее.
Помимо того, что его название расшифровывается как FORmula TRANslation, достижение, сделавшее Fortran особенным, не обсуждается. Ключевой особенностью языка, разработанной и реализованной Джоном Бэкусом, была схема перевода произвольных математических выражений в программы, запускаемые машиной. Возможность использовать математические выражения на компьютерном языке была настоящим прорывом.
Кобол — предмет второй передачи не был таким удачным. Его изобретатель не решил проблему перевода формул, поэтому язык должен был выполнять математические вычисления, используя такие выражения, как ADD 1 TO TOTAL, а не TOTAL = TOTAL + 1. Позже Кобол получил перевод формул, и он был не таким многословным, как был вначале. У Cobol, возможно, была цель сделать программирование более похожим на английский, но он также аккуратно избегал проблемы перевода формул. В центре внимания этого эпизода — многословный и не вымирающий Кобол и, конечно же, Грейс Хоппер.
От Cobol мы переходим к Basic, и это то, с чем столкнется большинство программистов, работающих сегодня. Этот эпизод действительно о революции микрокомпьютеров и о том, как Basic оказался хорошим выбором для ограниченного оборудования и его ограниченных программистов. Множество воспоминаний об истории BBC Micro и тому подобном — не особо много о самом языке. В конце концов программа уловила тот факт, что Basic был неструктурированным языком, то есть goto считался опасной проблемой. Однако на самом деле это не было специально предназначено для Basic. В конце мы хвалим домашние компьютеры и Raspberry Pi.
Четвертый и последний язык — Java. Это самый сложный из языковых рассказов. Мы знаем, что Java — это первый успешный структурированный объектно-ориентированный язык, основанный на виртуальной машине, который позволяет работать практически на любом оборудовании. История о том, что Java стала важной из-за ее способности быть встроенной в веб-страницу — то, что больше не является популярным способом работы, — хорошо рассказана. Также фиксируется его перевод на сервер. Однако программа проглатывает пропаганду о том, что Java — это язык будущего Интернета вещей, и представляет это как факт.
Наконец, у нас есть эпизод с обзором — Вавилонская башня. Это выдвигает точку зрения, что нам нужен Вавилон языков, чтобы справляться с различными задачами, которые нам нужно решать. Существует большой пропагандистский раздел о функциональном программировании и упор на Haskell как на язык гениев и последний призыв ко всем выучить язык. Почему не упоминается объектно-ориентированное программирование, логическое программирование или любые другие альтернативные парадигмы? Возможно, слишком сложно. Но переход к структурированному модульному программированию, а затем к полностью объектно-ориентированному программированию, возможно, является большой историей языков, и он полностью игнорируется.
На центральные вопросы о том, что такое компьютерный язык и как развитие различных подходов повлияло на образ мышления программистов, даже не намекали.
Очень сложно понять, на кого нацелены эти радиопрограммы. Конечно, не программисты, но я не вижу, чтобы какая-то полезная информация передавалась неспециалисту. Это такой позор, потому что действительно есть захватывающая история об удивительных идеях, которые можно рассказать.
Я думаю, что лучшая часть программ — это фон песен, основанный на чтении программы на обсуждаемом языке — это могло бы широко прижиться.