My-library.info
Все категории

Компьютерра - Журнал «Компьютерра» № 8 от 27 февраля 2007 года

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Компьютерра - Журнал «Компьютерра» № 8 от 27 февраля 2007 года. Жанр: Прочая околокомпьтерная литература издательство неизвестно, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Журнал «Компьютерра» № 8 от 27 февраля 2007 года
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
96
Читать онлайн
Компьютерра - Журнал «Компьютерра» № 8 от 27 февраля 2007 года

Компьютерра - Журнал «Компьютерра» № 8 от 27 февраля 2007 года краткое содержание

Компьютерра - Журнал «Компьютерра» № 8 от 27 февраля 2007 года - описание и краткое содержание, автор Компьютерра, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

Журнал «Компьютерра» № 8 от 27 февраля 2007 года читать онлайн бесплатно

Журнал «Компьютерра» № 8 от 27 февраля 2007 года - читать книгу онлайн бесплатно, автор Компьютерра

Дмитрий Антонюк, Paragon Software Group

Лучшее детям

Не только академическое сообщество сильно, в пополнении копилки «бесполезных» (смайлик) языков. Smalltalk, «самый объектно-ориентированный язык», создавали люди, среди интересов которых были создание красивых и эффективных пользовательских интерфейсов, доступность компьютеров для детей и джазовая гитара. Алан Кей со товарищи работали в Xerox PARC (как раз в то время и в том месте изобретался весь современный пользовательский интерфейс); язык Smalltalk предназначался для обучения программированию детей; то есть обучению в смысле «сел и начал делать что-то интересное».

Отсюда и основные идеи Smalltalk: «все есть объект»; программа — это не исходный текст, который компилируется, а затем «исполняется», а «живое море объектов, с каждым из которых можно пообщаться». Работа со Smalltalk подразумевает «общение» с этим «живым морем» — средой, в которой можно посмотреть и изменить любой объект; процесс разработки и процесс выполнения суть одно. Этот подход, как можно заметить, существенно отличается от мэйнстримового ООП, с его акцентом на основную сущность — «класс», близкий родственник «модуля» из структурной парадигмы [Алан Кей, «как честный человек», среди предшественников Smalltalk указывает язык Simula, упомянутый в предыдущей статье как прародитель «мэйнстрим-ООП», — но классы и объекты Симулы с классами и объектами Смолтока роднит более терминология, нежели внутренние идеи. Большее влияние на архитектуру языка оказали Lisp, «детский язык» Logo, а в наибольшей степени — программа Sketchpad (см. врезку «Неязыки»)]. В C++ класс — это сущность совершенно иного порядка, нежели объект; в Смоллтоке класс — это тоже объект, и обращаться с ним можно, как с любым другим объектом.

Сегодняшний Smalltalk — исследовательский язык для моделирования сложных систем; и язык «для детей» в виде красочной системы Squeak (как оно и было задумано с самого начала); некоторые интересные идеи современной веб-разработки воплощены в Smalltalk-фреймворке Seaside. Smalltalk породил несколько интересных «детей» — Self (язык с еще более простой объектной системой [Self воплощает концепции «прототипного объектно-ориентированного подхода», в котором есть только объекты, новые объекты порождаются «клонированием» старых; интересно, что изначальные концепции Smalltalk выглядели именно так, а «усложнение» произошло при поиске эффективной реализации. Так что в какой-то степени Self — это «возвращение к корням»]) и Strongtalk (диалект с возможностью статической проверки типов); первый «скорее мертв», второй — недавно был выпущен в open source и потихоньку «оживает».

Неязыки

При обсуждении происхождения языков программирования друг от друга, их взаимного влияния, источников тех или иных идей зачастую остаются за кадром не-языки: отдельные программы, чья внутренняя архитектура или способ задания опций послужил «вдохновляющим мотивом» для авторов знаменитых языков программирования.

В качестве иллюстрации упомянем программу Sketchpad, разработанную Иваном Сазерлендом в 1963 году для диссертации. Sketchpad не только стала первой программой для компьютерного рисования и реализовала первый графический интерфейс пользователя, но и вводила понятие объекта как основной единицы данных (при этом сама программа была написана на макроассемблере компьютера TX-2). Своим рождением концепция «объектов в стиле Smalltalk» в немалой степени обязана именно Sketchpad’у (Алан Кей некоторое время работал вместе с Сазерлендом).

Еще один пример «программы, которая повлияла на язык», — текстовый редактор ed в Unix, привнесший в «широкие массы» (а также в языки AWK и Perl, далее везде) регулярные выражения как гибкий, универсальный (хоть и запутанный) способ обработки строковых данных.

И обратный, несколько неожиданный пример: наиболее широкое распространение функциональный подход к программированию получил не в каком-либо конкретном языке, а в электронных таблицах вроде Excel. Когда мы определяем одну ячейку как SUM, а другую как AVG и выполняем дальнейшие операции над этими значениями — мы занимаемся именно функциональным программированием (придумал не я, а один из микрософтовцев, разрабатывавших Haskell; см. http://research.microsoft.com/~simonpj/papers/excel/index.htm).

Маленький, но очень-очень гордый

Судьба некоторых немэйнстримовых языков, построенных вокруг идей не слишком общих и глобальных, более печальна, нежели у описанных выше. Отработанная идея с благодарностью подхватывается одним (или несколькими) из более общеупотребимых или просто более новых языков и «растворяется» в преемниках, причем исходный язык (а зачастую и его автор) становится «достоянием истории», монстром, о котором мало кто помнит.

Как пример можно привести линейку Snobol-Icon, языков Ральфа Гриспвольда для обработки строк. В 70-х и начале 80-х эти языки были очень популярными среди разработчиков компиляторов и исследователей ИИ, а затем их идеи вобрал в себя юниксовый AWK (при близких по мощности возможностях обработки строк он наследовал также и Algol-линейку традиционных языков, то есть в целом был более привычен и прост для изучения), а через него эти идеи попали в Perl (наравне с идеями из редактора ed, см. врезку «Неязыки»). Называя «патриархов», Ральфа Гриспвольда часто забывают упомянуть (даже Тьюринговской премии у него не было), он умер несколько месяцев назад не то чтобы «всеми забытым», но явно недооцененным героем.

Судьба языка APL за авторством Кеннета Айверсона (того самого, что написал «Notation as a Tool of Thought») сложилась более счастливо — по крайней мере, «Тьюринга» Айверсону дали. Язык, который расширял привычную математическую нотацию для работы с массивами (все его операторы были одно-двухсимвольными комбинациями, APL требовал особой клавиатуры со спецсимволами), иногда считался «издевательством» и «write-only» языком. Тем не менее «нотация» Айверсона показала свою мощь на задачах, для которых предназначалась (сложные операции с массивами данных); годы спустя появились языки-наследники J (1990, создан Айверсоном как более простая и логичная версия APL) и K (1993, создан учеником Айверсона Артуром Уитни как более простая и логичная версия J), имеющие ограниченную, но устойчивую популярность. На K, к слову, написана коммерческая РСУБД kdb, вроде как являющаяся самой быстрой в мире; по слухам, код ее составляет 26 файлов с однобуквенными именами [Отгадать, какие именно буквы использованы, оставляем как домашнее задание внимательному читателю], в каждом из которых — всего одна страница.

И наконец, для полноты картины упомянем язык Forth, который стоит несколько особняком — по «глобальности задумки» (есть только стек и ничего кроме стека) он находится на уровне Лиспа (по странности внешнего вида — тоже), а по «локальности последствий» — где-то в районе Snobol и APL. Сегодняшнее использование Forth смахивает на «развлечение для понимающих»; языки, на которые повлияли концепции Форта, — несколько экспериментальных гибридов (Kevo, Joy, Factor) да PostScript, язык описания страниц для печатающих устройств.

Lisp

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

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

Те, кто хорошо знают и умеют применять Лисп, никогда не скажут, что какой-то язык может его полностью заменить, что Лисп устарел. Даже если такой программист использует в повседневной практике другой язык, значит, этот язык лучше подходит для решаемых задач или хорошо реализует полюбившуюся программисту парадигму.

Роман Клюйков

Итоги: небо становится ближе

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

«Оторванность от реальности», свойственная «модернистским идеям», всегда мешала их выходу на «широкую публику» — как напрямую (непонятность), так и косвенно, через вопросы производительности («если язык программирования не естествен для архитектуры компьютера, то чего будет стоить их взаимодействие?»), взаимодействия («как использовать библиотеки на более традиционных языках, коих уже есть много и отказываться от них не хочется?»), наличия программистов («если язык немэйнстримовый, а нам понадобится еще один программист в команду, где мы его возьмем?») [Интересно, что мэйнстрим часто и с удовольствием принимает побочные продукты развития «модернизма» — как технологические решения, вроде сборщика мусора (Lisp и другие) и компиляции в байткод (Smalltalk), так и организационные (популярные понятия рефакторинга, экстремального программирования родились в сообществе Smalltalk)]. Здесь можно провести параллель с судьбой мэйнфреймов и прочих специализированных компьютеров: есть случаи, в которых «вроде бы все понимают», что случай сложный и нужно использовать специальные мощные решения, но «стоимость» этих решений (включая затраты по внедрению, подбору соответствующих специалистов, интеграции со «стандартными частями») такова, что «мы уж сделаем как обычно».


Компьютерра читать все книги автора по порядку

Компьютерра - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Журнал «Компьютерра» № 8 от 27 февраля 2007 года отзывы

Отзывы читателей о книге Журнал «Компьютерра» № 8 от 27 февраля 2007 года, автор: Компьютерра. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.