Современная электронная библиотека ModernLib.Net

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

ModernLib.Net / Компьютерра Журнал / Журнал «Компьютерра» №36 от 04 октября 2005 года - Чтение (стр. 10)
Автор: Компьютерра Журнал
Жанр:
Серия: Компьютерра

 

 


      Приехал он в Москву в сопровождении своего давнего коллеги, профессора той же ETH Юрга Гуткнехта, активно продолжающего его дело. Вашему покорному слуге удалось побывать на лекции и последовавшей затем пресс-конференции, которая проходила в Главном лектории Политехнического музея, где сорок с лишним лет назад выступал Норберт Винер.
      Организовано было все очень по-домашнему, чему способствовал интеллигентный юмор лектора и живая реакция состоявшей в основном из студентов аудитории, хором помогавшей переводчику, спотыкавшемуся то на «cardinal type», то на «source code».
      Так как все мы теперь завязаны на компьютеры, то от той картинки, которую мы ежедневно видим на экране, в значительной степени зависит наш стиль жизни. По крайней мере, не меньше, чем от телевизионной картинки. Язык программирования Pascal и его потомки Modula-2 и Oberon, как и вся остальная деятельность их создателя Никлауса Вирта, - явление общекультурное, их значение не ограничивается рамками компьютерных технологий. Такое заявление я могу себе позволить, опираясь на взгляды Вирта, никогда не устававшего противопоставлять коммерческий и творческий подход к программированию. Можно выразиться так: швейцарец Вирт является бОльшим противником пресловутого «американского» подхода к человеческой деятельности (когда успех измеряется ростом продаж в текущем квартале), чем многие наши доморощенные «патриоты», муссирующие тему о «бескорыстии русского народа». «Сама мысль о том, что человек может испытывать удовлетворение от хорошо выполненной работы - просто потому, что эта работа творческая и профессиональная, признана абсурдной. Не ценится ничего, кроме экономического успеха и его денежного выражения» - это из интервью восьмилетней давности. Правда, в отличие от этих самых «патриотов», Вирт знает, о чем говорит, потому что довольно долго проработал в Америке, в самой колыбели новых технологий - Стэнфордском университете, а в молодости даже учился у изобретателя оконного интерфейса Дуга Энгельбарта.
      Вирту глупо задавать вопрос типа «а сами-то что сделали такого, чтобы критиковать 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 для знаменитого суперкомпьютера «Эльбрус».
      После Pascal была Modula-2 - почти объектно-ориентированный язык, который, однако, не содержал ни одного из знакомых нам по ООП понятий, даже самого понятия «объект». Бьорн Страуструп колебался, выбирая основу для создания нового объектно-ориентированного языка: С или Modula-2. В конце концов исключительно из коммерческих соображений (как и на десяток лет позднее в случае Java.) выбор был сделан в пользу С, и родился С++.
      К выступлению Вирта в Политехе новосибирские программисты приурочили вручение в дар музею компьютера «Кронос-26», который использовал Modula-2 для расчета параметров спутников. Сейчас эти ребята создали в Новосибирске фирму xTech и выпустили трансляторы Oберона в С и С++ и компиляторы Оберона в родной код для нескольких платформ. Интересно, что их продукция вполне востребована, среди покупателей числятся NASA, Оксфордский университет, Siemens и Агентство оборонных исследований (Великобритания).
      А за самим названием Oberon скрываются по меньшей мере три понятия: название проекта, новый язык программирования, ОС для персональной рабочей станции. Для характеристики проекта предоставим слово самому Вирту: «Проектируя аппаратуру и программное обеспечение для системы Oberon, мы руководствовались следующим основополагающим принципом: стремиться к ясности и простоте. Это просто необходимо при создании любой системы, претендующей на надежность. Лучший путь для достижения ясности и простоты - это создание логичной и ориентированной на получение определенных результатов структуры. А это, в свою очередь, становится возможным, когда модель, положенная в основу проекта, хорошо понимается, когда она достаточно проста и непротиворечива».
      Как ОС, Oberon следует забытому ныне принципу, когда ОС и язык программирования представляют собой единое целое. Лично меня в свое время поразила одна вещь (Вирт упоминал о ней в ходе лекции): в системе Oberon нет отдельно документов, меню и командной строки. Все, что вы видите на экране, есть разбросанный по окнам текст (кроме, разумеется, окон, содержащих графику), обладающий одинаковыми свойствами, независимо от того, расположен ли он в заголовке окна (в Oberon окна называются визуализаторами, viewers) или представляет собой содержание документа. Любой текст можно править и печатать. Если в тексте встречаются зарезервированные слова-команды, их можно выполнять, даже когда они, например, находятся в теме присланного вам e-mail. В качестве команды может выступать любая экспортируемая процедура без параметров, достаточно после ее имени в тексте программы поставить звездочку. Можно вызвать и полный список команд (tool), который открывается в отдельном окне, пардон, визуализаторе. Вирту удалось соединить несоединимое - командную строку («запомни и набери») и парадигму WIMP («наведи и щелкни»).
      Главным преимуществом Oberon как системы было то, что в ней с самого начала особое внимание уделялось вопросам безопасности. Если кто не в курсе, по этой причине даже в Turbo Pascal долго не было динамических массивов и адресной арифметики (которой так гордятся «сионисты») - слишком велика опасность залезть на чужую делянку в динамически распределяемой памяти. Огромное количество прикладных программ рушат несчастные «Окна» именно из-за того, что программист не проконтролировал выход индекса массива за пределы зарезервированного участка. А проблема «сборки мусора», вызывающая головную боль у программистов всех времен и народов, извините, платформ программирования, была одной из главных вопричин, которые привели к созданию Oберона. При таком подходе из Modula нещадно выкорчевывались все элементы, которые потенциально могли бы стать небезопасными, - например, перечислимые типы или указатели, если это не указатели на записи и массивы. А в целях упрощения Вирт удалил массу элементов, к которым программисты так привыкли, но которые оказались совершенно необязательными: например, понятие главной программы (и главного модуля), или оператор FOR.
 

ПИСЬМОНОСЕЦ: Мыши в плохом ракурсе

 
      Столкнулся с проблемой. Слетела официальная Windows с ноутбука. На мой звонок в службу поддержки милая девочка выдала, что компания Microsoft не оказывает консультаций по вопросу установки их продукта на ноутбуки. Что за чудо-сервис? И при этом они пытаются всучить нам лицензии на пиратские копии их продукта! Ужасное хамство! Я просто взбешен. Никогда в жизни не куплю ничего у Microsoft.
      Dima Tyshenko
      
       ОТ РЕДАКЦИИ: По идее, техподдержку должен оказывать производитель ноутбука. Это связано с тем, что зачастую они чуть подправляют дистрибутивы, и, разумеется, Microsoft не может отслеживать эти изменения (это не официальный ответ Microsoft - это из личного опыта).
 
      Да здравствует дружный коллектив ваятелей «Компьютерры»!!! Пишет вам скромный паренек из сибирского города Омска. А пишу я о том, что творилось в нашем городе недельку назад. У нашего главпочтамта проводилась распродажа лежалых журналов. Купил я номер «КТ» за 2003 год с компакт-диском всего за пять рублей, а августовский номер (этого года) журнала «Game.EXE» за 20 «деревянненьких». Но не в этом дело. Мой зоркий взгляд заметил, что раньше мой любимый журнал оформлялся совсем по-другому. Читаю я «Терру» всего лишь с марта этого года. А было так: я стоял на остановке, автобуса долго не было, и я купил первый попавшийся на глаза журнал, ну конечно, это была именно «Компьютерра». Потом вроде бы втянулся, а сейчас просто не могу дождаться очередного номера. Но это я отвлекся, вернусь к главному вопросу письма. Как часто вы меняете дизайн журнала и кто принимает это решение?
      P.S. Привет Голубицкому!!!
      P.P.S. А когда выйдет следующий номер с компакт-диском?
      Самат Курманов
      
       ОТ РЕДАКЦИИ: Ну кто принимает это решение, как вы думаете?
       Номер с диском у нас традиционно выйдет под Новый год, но я очень надеюсь, что в этот раз мы вложим в пакет с «КТ» не CD, а DVD.
 
      Здравствуйте, уважаемая «Компьютерра».
      Респект, у вас хорошо получается делать свою работу.
      Собственно, письмо решил написать в качестве эксперимента, цель которого - исследовать критерии отбора писем для публикации в «Письмоносце». Для объема далее последуют какие-то слова (краткость поощрилась один раз, что, в общем, предсказуемо). Порадовало последние творение Голубицкого, кидать камни в огород у него хорошо получается, млдца. Мыслится продолжение стори так: «Огород» будет всегда, как же без рекламы, а культур-повидло закиснет, в «булку» засунут вместо изюма описание программ для «умных» пылесосов, и «новый» Голубицкий будет «страдать» от оргазма, вызванного программным обеспечением холодильников (в сторону: чем все-таки Козловский отличается от других авторов, описывающих кую-нить новую железку? Авторитетом и размером статьи или гонораром??). Кто выпускает, тот и решает (читает письма). По-видимому, все упирается в эту формулу (предложение: для фанатеющих читателей сделать несколько фоток рабочего пространства и «атмосферы», в которой создается сей замечательный журнал. Ессно выложить их на сайте). Есть (еще) идея - немного вас поспамить (разослать письмо всем редакторам), дабы точно угодить на выпускающего (кто читает информ, непонятно). Истории из жизни будут потом. Удачи.
      Роман Макаров
      
       ОТ РЕДАКЦИИ: Дорогой Роман. Вопросы понятны. Не очень понятно, зачем вам это? Ну вот, попало ваше письмо в «Письмоносец». Дальше-то что?
       P.S. Козловский отличается от других авторов тем, что он, описывая железку, никогда не описывает железку. Неужели не заметили?
       P.S. Кто выпускает, тот и решает - тут вы совершенно правы. А читает письма большинство редакторов: inform@ - это внутренний список рассылки, на который многие из нас подписаны. Дублировать эти же письма на личную почту совсем необязательно. И даже, я бы сказал, не нужно.
 
      Я фигею, дорогая редакция!
      Ну пожаловался я вам, что «Железный поток» - это не интересно, и предложил, чтобы вы, если уж очень хотите пристроить пресс-релизы любимых спонсоров, то хоть добавляйте какую-то аналитику, есть ли такое на рынке и вообще. Так вы же все наоборот сделали: в последних трех номерах «Железный поток» на три разворота. Это кошмар! И не за счет информации, а за счет картинок в пол-листа!!! Ну зачем так крупно заурядные принтеры показывать или мышей в плохом ракурсе?!!!
      Хотя… все равно вас читать буду.
      Morpheios Melas
      Shadow Wari
      Pavel V. Trusov
      
       ОТ РЕДАКЦИИ: Крупные фотографии плохих или заурядных продуктов мы публикуем как раз для того, чтобы все читатели могли как можно лучше рассмотреть их недостатки!
       («Не на три разворота, а на два!» - хрипло выкрикивает ответственный секретарь, запивая валерьянку остывшим чаем)
 
       Кулер от «Железного потока» достается Павлу Трусову, чтобы он поменьше горячился.
      Приз предоставлен компанией
 
 

This file was created

with BookDesigner program

bookdesigner@the-ebook.org

04.05.2008


  • Страницы:
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10