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


Авторские права

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

Здесь можно скачать бесплатно "Журнал «Компьютерра» - Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)" в формате fb2, epub, txt, doc, pdf. Жанр: Прочая околокомпьтерная литература. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Журнал «Компьютерра» - Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)
Рейтинг:
Название:
Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)"

Описание и краткое содержание "Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)" читать бесплатно онлайн.








Далее мэйнстримовая, структурная парадигма некоторое время дополнялась (например, шаблонами C++, позволяющими писать «обобщенные» классы и «обобщенные» алгоритмы). Но картина мира вновь начала меняться, что привело к очередной «большой чистке» языков и смене расклада, двадцать лет казавшегося незыблемым. По своей важности эти перемены близки к событиям, в результате которых Fortran, Cobol и PL/I сменились Cи, Бейсиком и Паскалем.

Причин тому было много, так что нельзя выделить одну, главную. Важнейшие, видимо, таковы: рост производительности железа, с одной стороны, и востребованности программистов (даже неквалифицированных) — с другой. Поскольку надежность софта становится важнее его быстродействия [В определенных, естественно, пределах. Тем не менее некогда одна из важнейших целей разработчиков C++ — «почти бесплатность (по производительности)» новых концепций — стала анахронизмом]; возникновение и популяризация компьютерных сетей «для всех» (в том числе и Интернета/веба), в результате чего «сетевое программирование» стало всеобщей деятельностью. С точки зрения пресловутых «парадигм» программирования важнейшая тенденция «нового времени» — компонентно-ориентированное программирование: независимые друг от друга компоненты могут быть написаны на разных языках, поставляться в скомпилированной форме, заменяться на лету, взаимодействие между ними должно быть легким, надежным и масштабируемым.

Попытки использования «компонентного» стиля без смены языка (COM/OLE, CORBA) выявили некоторые концептуальные трудности; собственно, попытка создать целостное решение этих трудностей и породила платформы Java и. Net [История Java, впрочем, довольно извилиста; в разное время у Sun было множество разных версий насчет «что это мы делаем и зачем оно надо». Тем не менее на сегодняшний день платформа Java — более или менее прямой конкурент и аналог. Net.]. Их свойства (богатая стандартная библиотека, автоматическое управление временем жизни объектов, наличие виртуальной машины и т. п.) — прямой ответ на те вызовы, которые бросает компонентность. Что же касается языков Java и C# [Заметим, что платформа. Net принципиально многоязычна; Java, изначально бывшая «платформой для одного языка», сегодня движется в том же направлении. Тем не менее мы-то здесь рассматриваем в первую очередь историю языков программирования], то их архитектура и дала мне основания назвать происшедшее «второй большой чисткой»: как в свое время C, эти языки стремились вобрать в себя все «хорошие идеи» своего времени, но вдобавок избавиться от наследственной сложности, неоднозначности и других проблем, свойственных C++/Delphi/Visual Basic. Первые версии обоих новых языков таки были проще предшественников, но дальнейшее развитие снова пошло по спирали накопления возможностей и впитывания концепций. Сегодняшний C# — сложный, лаконичный и мультиконцептуальный язык; Java — консервативнее в своем стремлении к простоте и однозначности, но постепенно подбирается к той же планке.


Заполняя пропуски: Концепции

Некоторые языки программирования, близкие «классицизму», но не попавшие в статью, весьма достойны упоминания — хотя бы совсем краткого.

Перечисленные языки — неотъемлемая часть истории развития средств написания программ; тем не менее всеобщая популярность обошла их стороной.

Линейка Pascal. Дело в том, что тот Паскаль, который стал популярным в руках фирмы Borland и который многие из нас учили в школе, от изначальной концептуально-чистой разработки Никлауса Вирта отличается довольно сильно, причем одни считают суть этого отличия «практичностью», другие — концептуальной грязью. Сам Вирт придерживается последнего мнения; будучи невысокого мнения о целостности и чистоте вообще всех широко используемых языков, Вирт и его ученики разработали несколько своих, «чистых и красивых» (Oberon, Modula, Zonnon).

Eiffel. Судьба Эйфелей и их создателя Бертрана Мейерса похожа на судьбу «настоящих Паскалей». Мейерс, как и Вирт, достаточно амбициозен в продвижении своих идей (в основном — об объектно-ориентированном программировании), называя их «единственно правильными»; распространен Eiffel нешироко, влияние его огромно.

Ada. Наконец, создатели самых разных языков программирования среди «вдохновляющих» называют язык Ada, разработанный в 80-х под руководством Пентагона. В каком-то смысле он был аналогом PL/I (не слишком удачная попытка собрать все возможные концепции в одном языке), но некоторые элементы Ada (в частности, ее система типов) оказали большое влияние на мышление авторов других языков.


Итоги: завтра была война

Эволюционно нынешние «главные языки» ушли бесконечно далеко от машинных кодов. Накопление парадигм и подходов (а равно и снижение актуальности «простой модели компьютера», которая лежит в основе императивного программирования) практически исчерпало потенциал «классического», структурно-императивного взгляда на программирование, который в сегодняшних компонентных приложениях узнается с трудом. Что придет ему на смену? — этот вопрос мы пытаемся рассмотреть в заключительной статье темы.


Заполняя пропуски: Реализации

Следует упомянуть и еще несколько языковых проектов, вполне классицистических, вполне успешных, но стоящих слегка на отшибе от «главного исторического вектора».

Во-первых, это юниксовский sh и его производные (bash, ksh, csh и далее со всеми остановками). Первые оболочки *nix-систем ведут свой род от Алгола; юниксовский подход к объединению маленьких самостоятельных утилит считается одним из первых примеров компонентно-ориентированного программирования. Среди отдаленных потомков sh — как постмодернистский Perl (о нем мы еще поговорим), так и безусловно классицистический Tcl (а о нем не будем).

Во-вторых, язык веб-программирования PHP — тоже вполне популярен и вполне классицистичен. Его часто называют среди наследников Perl, но от последнего PHP перенял в основном способ именования переменных и область применения; в остальном первые PHP — это почти чистый C (вплоть до имен библиотечных функций). Небывалый успех PHP — это успех не языка программирования (часто критикуемого за концептуальную уродливость), а успех утилиты для легкой разработки веб-приложений. Так и повелось.


Хроники чистого разума

Автор: Виктор Шепелев

Императивная парадигма программирования («сделай то; потом сделай это; если А, сделай Б») не только наиболее естественна для современного компьютера, но и легко воспринимается человеком: простые программы на языках вроде Паскаля без труда пишут и читают пятиклассники. Но такая «естественность» совершенно не значит, что императивный способ — единственно возможный.


Любая большая система на C или Fortran содержит медленную, плохо продуманную, с кучей ошибок реализацию половины Common Lisp.

Десятое [Других нет] правило Гринспуна

…включая сам Common Lisp.

Следствие Морриса


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

Если смотреть на голую идею программы-как-текста и программирования-как-творчества, отвлекаясь от того печального факта, что «все это надо как-то превратить в машинные коды», то можно прийти к нескольким разным ментальным моделям разной степени абстрактности. Любая из них имеет право на жизнь и, будучи воспринятой, зачастую «открывает новые горизонты восприятия». Неудивительно, что языков программирования, исходящих из таких вот «абстрактных моделей» и оттого совсем не похожих и друг на друга, и на линейку Fortran-C-Java, — вагон и маленькая тележка.

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

Так много дурацких скобок [Lot of silly parenthesis — «куча глупых скобок» — старинная шуточная расшифровка названия языка Lisp]

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


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)"

Книги похожие на "Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Журнал «Компьютерра»

Журнал «Компьютерра» - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Журнал «Компьютерра» - Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)"

Отзывы читателей о книге "Журнал «Компьютерра» N 8 от 27 февраля 2007 года (Компьютерра - 676)", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.