C подачи известного в среде англоязычных читателей сайта OSNews на нескольких технофорумах разгорелись дискуссии по языку программирования D. Это ультрасовременное чудо - прямой потомок C и C++, о чём, собственно, и говорит данное ему имя. D был придуман в 1999 году неким Уолтером Брайтом, профессиональным программистом, что называется, собаку съевшим на задаче построения компиляторов. Детище Брайта унаследовало от предшественников максимум полезного, одноременно избавившись от ряда недостатков. D - объектно-ориентированнй язык со встроенными средствами "мусоросбора" (garbage) и возможностью применения в качестве системного инструмента. Он односторонне совместим с C, избавлен от лишних сложностей С++, приобрёл кое-что от Java и во многом сопоставим с C#. Однако за C# стоит гигантская корпорация, а Уолтер один. Возможно, поэтому на протяжении тех пяти лет, которые длится разработка, Уолтеру не раз говорили, что никаких шансов на то, чтобы "вывести в люди" его детище нет, однако работы продолжались, и в нынешнем году автор обещает выпустить спецификацию 1.0. База уже подготовлена: компилятор D есть для Windows и Linux, написана оболочка, позволяющая работать с D средствами свободного GCC, имеется и сообщество заинтересованных пользователей.

Прочтя всё это, задумайтесь: как лично вы восприняли попытку Брайта? Скорее всего, с изрядной долей скепсиса - и вы не один такой. Претензии одиночки на создание нового языка программирования в XXI веке предстают в сознании большинства компьютерщиков намерением, как минимум, переписать законы природы. Бесчисленное множество компьютерных языков (только известных каждому программисту насчитывается до полусотни) с разными концепциями, философиями, архитектурами и подходами заставляет полагать, что всё, что только можно было придумать, уже придумано. По всей видимости, именно здесь берёт начало обречённая уверенность: ничего принципиально нового в языках программирования уже не появится. Но, как и в случае с богами и горшками, любой машинный язык - только инструмент, который создавался такими же, как и мы, пользователями, для того чтобы объяснить вычислительной машине способ решения той или иной задачи.

История языков программирования восходит к XIX веку, когда математик Ада Лавлейс описала способ заставить машину Чарльза Бэббиджа работать над нахождением членов числовой последовательности, попутно предположив, что тем же образом можно было бы научить механический вычислитель писать музыку и рисовать. Увы, машина Бэббиджа существовала только на бумаге, поэтому возвращение к идее компьютерных языков произошло лишь через сто лет. В 1942 году пионер вычислительной техники Конрад Цузе разработал ещё один теоретический язык - Plankalkul - для инженерных вычислений (компилятор для него написали через полвека), а в середине 50-ых гг. появляется первый по-настоящему популярный - FORTRAN. Придумали его в IBM для решения научных задач. И пошло-поехало: в 1958 г. был придуман Algol, как ещё один, уже более совершенный научный инструмент, воплотивший новые идеи (рекурсия и др.). Тогда же LISP, как средство для решения задач искусственного интеллекта. В 1959 г. появился COBOL - противопоставление FORTRAN, сравнительно простой и ориентированный на повседневные задачи. 1968 г. принёс Pascal - обучающий язык. 1972 г. - C, инструмент для создания операционных систем.

Компьютерная история богата примерами, но даже на тех, что были перечислены выше, очевидно, что большинство языков создавались под конкретные задачи. Здесь частично и скрыт ответ на вопрос о том, почему сегодня новым языкам программирования прокладывать дорогу в жизнь труднее, нежели их предшественникам сорок лет назад. Да, новички избавлены от балласта устаревших концепций и превосходят стариков в гибкости (тому же D мало равных среди процедурных языков), но за пятьдесят лет эволюции основные потребности общества в смысле языков программирования были удовлетворены софтверной индустрией. Кроме того, инерция стимулируется уже наработанной массой кода: продукты на старых языках необходимо сопровождать, и именно это поддерживает на плаву динозавров вроде COBOL и FORTRAN. Так что вариантов нет, путь для новых языков один: учиться на ошибках предков, предлагая новое решение быстрее, чем старички сумеют развернуться, переписав стандарты. И хорошо, что энтузиасты вроде Уолтера Брайта не перевелись.


2008-02-21 • Просмотров [ 3315 ]