Чтение онлайн

на главную - закладки

Жанры

Журнал «Компьютерра» №36 от 04 октября 2005 года
Шрифт:

Вирту глупо задавать вопрос типа «а сами-то что сделали такого, чтобы критиковать Microsoft?» Он сильно выделяется из плеяды многих знаменитых теоретиков-академиков, блестящие труды которых так и остались главой в истории компьютерных технологий, не найдя никакого применения на практике. Например, про Oberon поклонники говорят так: он во всем лучше Java, кроме количества затраченных рекламных денег. Sun официально никогда не заявляла, но и не отрицала, что в основу Java были в значительной степени положены идеи Oberon, что выразилось в выплате Вирту (точнее, видимо, ETH) некоей (небольшой, впрочем, по свидетельству Вирта) суммы за исходные коды. И самим понятием виртуальной машины мы тоже обязаны Вирту, -

еще в начале 70-х, одновременно с языком Pascal, он придумал абстрактную P-машину, исполняющую специальный P-код, который интерпретировался на каждом конкретном устройстве.

Избранные вопросы-ответы на лекции и после нее

Что вы думаете о C#?

–  Это просто реакция Microsoft на Java, а если вы хотите, чтобы я ответил на этот вопрос что-либо позитивное, то скажу, что C# - это не такой кошмар, как С++.

Как вы относитесь к case-технологиям, в частности к языку UML?

–  Я не большой поклонник UML. Графики подходят для реализации маленьких идей, но не для больших мыслей.

Почему коммерческие продукты делаются не на Oberon, а на С++?

–  Это вас нужно спросить, как представителей университета, - а почему университеты перешли на С++?

В свое время Sun купила лицензию на Oberon. Означает ли это, что при написании нового компилятора придется покупать лицензию?

–  Нет, конечно. Мы всегда следовали принципу открытых исходников. Компания Sun, как и некоторые другие, купила исходные коды. За очень небольшие деньги, кстати. Они досконально исследовали этот код и через семь лет после выхода Oberon выпустили Java. В Java заимствовано несколько идей из Oberon, но они коррумпировали его синтаксисом языка С. С точки зрения продавцов это был умный ход.

Что нужно сделать для того, чтобы Европа и Россия могли противостоять засилью Америки в области программирования?

–  Если хотите знать мое личное мнение, то я заметил, что некоторые люди в России очень быстро воспринимают американское мышление и образ жизни. Возможно, прежде чем примерять их на себя, некоторым из этих людей следовало бы внимательно посмотреть, что именно они воспринимают…

Срастутся ли языки программирования с естественными языками?

–  Язык - это то, на чем мы говорим. А на языке программирования мы говорить не можем. Я бы предпочитал вместо термина «язык» использовать термин «формальная нотация». Каждая программа является математическим объектом, поэтому чем проще, тем лучше. И, конечно, здесь нет места многозначности, которая является свойством естественного языка.

Визуальное программирование - это революционный шаг?

–  Нет, это просто другой способ выражения ваших мыслей. Некоторым людям удобнее работать с визуальным представлением. В некоторых случаях это даже шаг назад - если помните, на заре программирования было принято записывать программы в виде графов. Мы обнаружили, что такая схема приводит к слишком большому количеству ошибок, как только программа усложняется.

Сможет ли когда-нибудь компьютер полностью заменить человека?

–  Полностью? Мне бы она не понравилась…

Вирт считает, что компьютерные системы должны быть прежде всего простыми, понятными и удобными, как для программистов, так и для пользователей, а уже потом - продаваемыми. Он проповедует «принцип чемоданчика» (брать с собой только самое нужное) в противовес «принципу сундука» (хранить все на всякий случай). Характерно, что полное описание Pascal занимало 50 страниц, Modula - 40, а Oberon - 16. «Очевидно, следующее описание займет страницы две», - пошутил Вирт на лекции. Напомним, что «The Java Language Specification» - книга почти в 800 страниц, - это для Java-то, не без оснований гордящейся лаконичностью.

Современные программисты,

кичащиеся своей исключительностью, раскрыв рот, внимают потоку рекламного рэпа: технология ActiveX, технология .NET, case-технология, OLE/COM-объекты, ASP.NET, ADO.NET, VB.NET, XML/XSLT, полиморфизм, множественное наследование, виртуальные классы… Еще в начале 80-х, в пору жарких споров между «паскалистами» и «сионистами», профессор Ньюкаслского университета в Австралии Питер Мойлан замечательно характеризовал подобный подход: «Бытует мнение, что С апеллирует к мужскому началу программистов, которым нравится сражаться с малопонятными ошибками и находить невероятные и хитроумные решения проблем. Многих привлекает и компактность нотации С. Похоже, сторонники этого языка считают, что возможность написать такой, скажем, оператор, как **p++^=q++=*r-s, служит серьезным аргументом в пользу применения С». Сплошное словоблудие, утверждает в свою очередь Вирт: «В ООП не добавлено ни одного действительно нового понятия… Это вообще интересный феномен, когда многие люди узнают о таких важных (и древних!) понятиях, как тип данных, инкапсуляция и (возможно) скрытие информации, лишь начиная изучать объектно-ориентированное программирование. Что ж, одно это оправдывает шум вокруг ООП, даже если позднее неофиты ничего оттуда и не используют». Классы - это типы. Объекты - это сложные переменные, например записи. Методы - это процедуры. Свойства - это переменные. «Единственно, что нового придумали в объектно-ориентированном программировании по сравнению с Modula-2, - это наследование. Но наследуем мы, когда кто-то умирает, разве не так? Не люблю я этого термина, „расширение“ мне кажется более подходящим словом».

С такими взглядами он решительно не попадает «в струю»: промышленники еще задолго до появления IT уяснили одно свойство потенциальных покупателей: они не соблазняются простотой. И даже, как ни парадоксально, дешевизной! «Надежные и ненавязчивые программы обычно не представляют интереса для разработчика. Желания потребителей значат больше, чем их нужды», - иронически замечал Вирт. Скажем ему спасибо и… вернемся к Visual Basic, а что прикажете делать?

Pascal, Modula-2 и Oberon

Про язык Pascal знают все - в основном благодаря фирме Borland, которая 20 ноября 1982 года совершила переворот не столько в программировании, сколько в экономике этой области деятельности, выпустив в продажу дискетку с Turbo Pascal 1.0 за 50 долларов (подобные системы стоили тогда по крайней мере раз в десять дороже). Интегрированная среда разработки, встроенный редактор и библиотека времени выполнения умещались в файле turbo.com размером 33 280 байтов. Этим мы обязаны искусству датского программиста Андерса Хейлсберга[Интервью с Хейлсбергом см. «Домашний компьютер» №1, 2004.], который позднее разрабатывал всем известный Delphi, а сейчас трудится в Microsoft над платформой C#. Вирт совсем не против Borland: «Когда вы программируете на Delphi, вы программируете на Паскале. Здесь ничего фундаментально нового нет. Но это была достаточно успешная разработка и во многих случаях помогала продвигать Паскаль. Я никак не участвовал в ней».

В России, ясное дело, стоимость компилятора не имела значения, но Pascal стал крайне популярен в силу своей простоты и близости к обычной математической записи. Мой знакомый специалист по микроконтроллерам, увидев как-то текст программы на Turbo Pascal, воскликнул: «Ё-мое, да я тут все понимаю!» В значительной степени приверженность российских программеров к Pascal возникла благодаря отлично написанным книжкам В. В. Фаронова, общий тираж которых, по свидетельству самого Валерия Васильевича, достиг полумиллиона экземпляров. Был создан даже компилятор Pascal для знаменитого суперкомпьютера «Эльбрус».

Поделиться:
Популярные книги

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Все ведьмы – стервы, или Ректору больше (не) наливать

Цвик Катерина Александровна
1. Все ведьмы - стервы
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Все ведьмы – стервы, или Ректору больше (не) наливать

Курсант: назад в СССР 9

Дамиров Рафаэль
9. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: назад в СССР 9

Ретроградный меркурий

Рам Янка
4. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ретроградный меркурий

Не ангел хранитель

Рам Янка
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Не ангел хранитель

Особое назначение

Тесленок Кирилл Геннадьевич
2. Гарем вне закона
Фантастика:
фэнтези
6.89
рейтинг книги
Особое назначение

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Законы Рода. Том 2

Flow Ascold
2. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 2

Бальмануг. Студентка

Лашина Полина
2. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. Студентка

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Романов. Том 1 и Том 2

Кощеев Владимир
1. Романов
Фантастика:
фэнтези
попаданцы
альтернативная история
5.25
рейтинг книги
Романов. Том 1 и Том 2

Сила рода. Том 3

Вяч Павел
2. Претендент
Фантастика:
фэнтези
боевая фантастика
6.17
рейтинг книги
Сила рода. Том 3