Rambler's Top100
 
 
  09 января 2009 года Компьюлента
CIO
Терралаб
Бизнес-журнал
в поле зрения | обзоры и тесты | своя игра | интерактив | блоги | readitorial
Мордехай Бен-Ари. Языки программирования. Практический сравнительный анализ
Автор: Максим Отставнов
Опубликовано в журнале "Компьютерра" №22 от 27 июня 2000 года

width=174

Мордехай Бен-Ари.
Языки программирования. Практический сравнительный анализ
Пер. с англ. - М.: Мир, 2000. - 366 с., илл., 5000 экз.


Мордехай Бен-Ари (Mordechai Ben-Ari; stwi.weizmann.ac.il/g-cs/benari), известный израильский теоретик и практик программирования, впервые привлек к себе внимание специалистов по информатике десять лет назад, выпустив учебник "Принципы параллельного и распределенного программирования" ("Principles of Concurrent and Distributed Programming", Prentice Hall, 1990). "Принципы..." стали часто цитироваться не только в технической литературе, но и в исследованиях по социологии и менеджменту компьютерного программирования.

С тех пор Бен-Ари написал несколько десятков специальных статей (в прошлом году он порадовал читателей "Comm. ACM" статьями с характерными названиями "Размышления о параллельном" ["Thinking Parallel"] и "Антропология семафоров" ["The Anthropology of Semaphores"]) и еще четырех учебников, в том числе переведенной ныне книги "Understanding Programming Languages", буквально: "Восприятие языков программирования", выдержавшей два издания в престижном международном издательстве John Wiley & Sons (1996 и 1998).

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

"К сожалению, слишком у многих программистов нет достаточных языковых навыков. Они страстно любят свой "родной" язык программирования и не способны ни проанализировать и сравнить конструкции языка, ни оценить преимущества и недостатки современных языков и языковых понятий", - пишет автор в предисловии, и я не знаю, как у них, в Израиле и в Америке, а у нас ситуация с "языковыми навыками", похоже, с годами только ухудшается. Строка "программист на языке C++" (а то и "...на Visual C++") в резюме скоро перестанет вызывать даже улыбку у кого-либо, кроме коллег.

Спектр языков, использованных Бен-Ари для примеров, достаточно широк - это и "классические процедурные" языки типа Pascal, C (и даже FORTRAN), и "объектно-ориентированные", как Ada и C++, и, наконец, непроцедурные, например, "функциональный" ML и "логический" Prolog. Но главное даже не в "полиглоссии" автора (и поощрении таковой у читателя), а в том, что сама логика изложения приводит читателя к понятийному "схватыванию" конструкций программирования и пониманию того, что средства конкретного языка - лишь способ выразить такие конструкции.

В части первой, "Введение в языки программирования", дается материал, относящийся к таким азам, как типология языков, различие синтаксического и семантического аспекта, различение языка и его конкретной реализации (среды программирования).

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

Самой захватывающей мне показалась часть четвертая, посвященная программированию больших систем. На примере конкретных языков программирования автор показывает, как прагматика коллективной работы над программными проектами повлияла на эволюцию языков программирования и языковые средства современных языков. Здесь обсуждаются декомпозиция программ, модули и, конечно же, концепция объектно-ориентированного программирования.

Средства ООП демонстрируются на таких языках, как популярные C++ и Ada 95, а также на остающемся экзотическим новаторском Eiffel. К сожалению, языку Smalltack не нашлось места ни в этой части, ни в книге в целом, также автор не стал обсуждать такую важную "ветку" в "генеалогическом древе" языков, как Object Pascal/Modula 3.

Пятая часть вводит читателя в мир непроцедурных языков: в функциональное и логическое программирование. Отсутствие LISP в числе языков-примеров мне показалось вполне оправданным (хотя на LISP можно писать функционально, его синтаксис все же часто так и подталкивает к "процедурному мышлению"), но почему в эту часть попала глава про Java, я понять не смог: вроде бы, никто не мешает "думать процедурно" и писать на Java.

Сама глава (добавленная во второе издание; кстати, оригинальный текст этой главы доступен на www.wiley.com/college/benari) достаточно нетривиальна по своей логике: первое, что делает Бен-Ари, - проводит различия между моделью исполнения (и разработки!) программ для сети и в сети, введенной в Java, и языком Java как конкретным языком программирования. Модель Java ему определенно нравится, к языку Java он, видимо, скептичен (как и большинство членов Ada-сообщества), а практика защиты языка программирования товарным знаком ему, по всей видимости, кажется опасным прецедентом. В то же время до анализа связи между коммерческой разработкой и распространением софта и их влиянием на модели сред исполнения и разработки и - опосредованно - на языковые конструкции Бен-Ари не доходит.

Стоит заметить, что автор является одним из архитекторов распределенной среды Java/Ada 95 (JADE), разрабатываемой в Вейцмановском институте.

Книга содержит небольшой список свободно доступных компиляторов и средств программирования (Приложение А) и очень короткую библиографию (Приложение Б).

Перевод, редактирование и набор книги выполнены профессионально и с любовью к предмету, что характерно для изданий "Мира", и это, возможно (в случае фундаментального и долгоживущего труда), оправдывает появление русского перевода с двухгодичной задержкой по отношению к оригиналу. Хотелось бы видеть издание в жесткой обложке, но, увы, весь тираж в мягкой. Думаю, книга быстро истрепется, что есть в равной мере комплимент содержанию и упрек оформлению.

"Языки программирования" Мордехая Бен-Ари рекомендованы методическим советом программистских кафедр факультета ВМК МГУ в качестве учебника. Думаю, к этой рекомендации стоит прислушаться и другим вузам. Но и для практикующих программистов, давно окончивших институт (или никогда в таковом не учившихся), книга будет крайне полезна - если не как учебник в прямом смысле, то как повод поразмыслить над многими нетривиальными мыслями автора.



ТАКЖЕ В РАЗДЕЛЕ
24 апреля 2001 года
Гарантия квалификации 
 
Внимание, конкурс!
Компания Zotac и портал Terralab объявляют о старте литературного конкурса "Game-Муза". Лучшие работы будут опубликованы, а их авторы - отмечены ценными призами. Читайте условия, играйте, участвуйте и побеждайте!

В новом разделе ReaDitorial каждый читатель может испытать себя в качестве автора "Компьютерры". Ваши статьи прочитают десятки тысяч гостей портала, а по итогам месяца лучшие получат призы. Самый короткий путь в "Компьютерру" лежит через ReaDitorial.

САМОЕ ПОПУЛЯРНОЕ
Кубышка, Пуск и Вылезайка
Пакую саквояжи и рюкзаки - через два дня увожу семейство до весны в блаженную гималайскую обитель. Напоследок захотелось написать круто полезную "Голубятню": да так, шоб и повидло текло в правильное горло, и айтишная струя легла в прагматику.
Господь Бог и ядерная реакция
Использование ядерной энергии стало возможным благодаря маловероятному стечению обстоятельств, когда успех изобретателей зависел от величины какого-то ничтожного коэффициента, определяющего размножение нейтронов в каждом акте деления.
Новогодний Windows
До Нового года остаются считанные дни, а это значит, что самое время поговорить о программах, позволяющих привнести немного зимней романтики в виртуальную атмосферу рабочего стола операционной системы.
О любви с первого клика
Андрей Бронецкий, генеральный директор самой популярной русскоязычной службы знакомств - "Мамба", рассказал об основах создания стартапов, рекламе интим-услуг, системе модерации, структуре доходов и, конечно, ответил на ваши вопросы.
На дворе праздники, народ лепит снеговиков, а вы-то тут какими судьбами?







  
/  бумажный номер

Тема номера: Без попкорна Читайте на сайте тему номера "Без попкорна" и другие статьи из журнала "Компьютерра" от 09 декабря 2008 года
  Архив номеров журнала

О проекте | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция

© ООО «Компьютерра–Онлайн», 1997 — 2008.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»

Сайт работает на сервере DEPO Computers
Rambler's Top100