Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Журнал «Компьютерра» № 8 от 27 февраля 2007 года - Компьютерра - Страница 16
Джонс: С практической точки зрения, развитие Haskell идет путем воплощения экспериментальных возможностей в разных компиляторах.
Иногда сообщество хаскелистов садится и собирает эти анархические расширения в единые стройные концепции. Сейчас мы работаем над новой версией — Haskell Prime, чтобы можно было сказать «эта программа написана на Haskell Prime» вместо "эту программу можно скомпилировать с помощью GHC 6.8.
Гиббард: Мы рассматриваем противоречивые места предыдущего стандарта [Haskell ‘98] и изучаем, как люди жили с ними последние несколько лет.
Об использовании и распространении
Гиббард: Один из главных факторов, мешающих популярности Haskell, — инерция. В конце концов, объектно-ориентированному программированию тоже понадобилось лет двадцать-тридцать, чтобы завоевать популярность. Haskell старше Java — почему же он до сих пор не добился аналогичных успехов в своем распространении? Дело в том, что Haskell — гораздо более «продвинутый», чем Java/C++ или даже Python и Ruby. Для программистов, знающих только объектно-ориентированное и императивное программирование, — это вроде как учиться программировать заново. Другая причина — долгое время Хаскеллу очень не хватало всяких штук, нужных для практического программирования. Впрочем, качество и количество библиотек в последнее время сильно возросло. Еще одна причина — недостаточная производительность функциональных языков, но в сегодняшних условиях это скорее миф.
Джонс: Чем больше люди будут интересоваться написанием работающих программ, особенно с использованием параллелизма, тем более популярны будут функциональные языки. С другой стороны, хотя истоки функциональной парадигмы — в академическом сообществе, такие языки становятся все более практичными.
Джонс: Попробуйте функциональное программирование! Даже если вы не начнете активно использовать его, ваше представление о программировании существенно изменится.
Гиббард: Начинающему функциональному программисту я в первую очередь советую освоиться со списками — это то, что заменяет большинство циклов из императивного программирования. В конце концов, каким бы пугающим ни казался Haskell поначалу, на самом деле не так уж все страшно — стоит взять какое-нибудь руководство и просто попробовать. Оно того стоит.
Беседовал Дмитрий Антонюк
Проанализировав набирающие популярность гибриды, можно заметить, что господство императивного программирования по-прежнему сохраняется. Как бы ни изменялось отношение к объектам и коду в целом, какие бы функциональные возможности ни появлялись, структура программы на микроуровне остается тем же набором последовательных инструкций, ветвлений и вызовов функций. Понятно, что привычные паттерны так просто своего не уступят.
Тем не менее существуют, конечно, и более экстремальные «постмодернистские» системы; самая известная и успешная из них, пожалуй, Erlang. Язык/платформа (производные сразу от нескольких декларативных языков программирования и концепций), созданная суровыми шведскими практиками из фирмы Ericsson для нужд телекома, — Erlang не то чтобы пробивается в мэйнстрим, но в своей области (написание распределенных приложений с серьезными требованиями к производительности и устойчивости) чувствует себя весьма уверенно. Вообще, в области распределенных приложений, в телекоммуникациях и смежных областях совмещение красивой теоретической модели и мощной платформы — решение, набирающее вес. Помимо Erlang, на похожих позициях стоят Oz/Mozart и с-пылу-с-жару новый язык Corn (также рожденный в телекоме, на сей раз — польском).
Предпринималось достаточно попыток приблизиться к практике, оставаясь в рамках господства «истинных концепций», — от ML-производной с поддержкой объектов и императивности OCaml до отдаленного потомка Smalltalk/Self — io, преподносимого как язык легкий и стройный, идеальный для встраивания. Да и многие языки Lisp’овой семьи (в том числе сам Common Lisp), наверное, можно причислить к «постмодернистским» по богатству концепций и стремлению к практичности.
Очередная волна шумихи вокруг «нового веба» тоже не осталась незамеченной — здесь можно отметить такие проекты, как Hop от французского института INRIA (родины OCaml) и Links (им занимается Phil Wadler, некогда концептуальный архитектор Haskell), цель которых — свести разработку веб-приложений к одному языку сверхвысокого уровня, который бы «компилировался» в традиционные HTML, JavaScript, SQL и серверные скрипты [В каком-то смысле ASP.Net и некоторые Java-библиотеки занимаются тем же, имитируя для программиста однородную языковую среду. Существует также проект haXe, с аналогичным подходом и JavaScript-образным базовым языком].
Тем не менее пока все эти инициативы в основном «для своих», то есть апологетов модернизма, желающих «сделать что-нибудь практичное». Говорить о серьезном проникновении в мэйнстрим языков с понятиями и синтаксисом, в корне отличным от старичка Алгола, пока рано.
Ключевое слово в последней фразе предыдущего раздела — пока. Старая императивная модель пока ограничивает восприятие, но эти ограничения с каждым днем уменьшаются. По мере проникновения некогда странных идей «в подкорку», в базовый набор понятий современного программиста расклады могут сильно меняться. К примеру, помимо заметной миграции веб-программистов с Java на Python и Ruby, существует не слишком большая, но устойчивая миграция с Ruby на Smalltalk: когда идея «все есть объект» становится привычной и родной, то некоторые очевидные преимущества Smalltalk (вроде прекрасной среды, особенно для экспериментаторов и творческих личностей) начинают перевешивать мнимый недостаток — «непривычность». Точно так же, после привыкания к основополагающей идее «функция — наше все» на очевидных и простых примерах, многие мэйнстрим-программисты куда благосклоннее начинают смотреть если не на Haskell, то по крайней мере на OCaml и Erlang.
К чему приведет такое «смешение языков» в течение ближайших лет, при нынешних скоростях возникновения идей-суперзвезд, сказать трудно. Быть может, Erlang, отделавшись от репутации «странного до идиотизма», вскоре займет соответствующее место в «гонке платформ» .Net/Java (учитывая, что за платформой Erlang/OTP стоит сильная и амбициозная корпорация, хотя и не слишком заинтересованная в рынке платформ — пока?). Не исключено, что набор тенденций, называемый «Web 2.0», вызовет к жизни другую клиентскую платформу, заметно отличающуюся от сегодняшних браузеров (вспомним, что браузер изначально — таки ж программа для просмотра, а не для работы со сложными приложениями): в ней может быть снято ограничение на клиентский язык [Сегодня это де-факто только JavaScript — который тоже ох как непрост (см.врезку «СНЯПМ»)], и это породит новую гонку языков. А может быть, послезавтра вообще появится нечто существенно отличное от веба. Или, опять же, прилетят инопланетяне и всех завоюют.
Одно ясно: мы живем в эпоху победившего постмодернизма. И здесь случается всякое. Следите за рекламой.
СНЯПМ — «самый недооцененный язык программирования в мире» — распространенное шуточное название JavaScript. Его сугубо прикладное направление (как языка программирования, работающего в браузере) стало серьезной преградой к оценке концепций языка по достоинству. Распространенное мнение — «это такой недоязык, в нем и классов-то нормальных нету»; между тем JavaScript как самостоятельный язык — яркий и небезынтересный представитель семейства «прототипно-ориентированных» языков (вместе с диалектом Smalltalk’а Self и современным io), с поддержкой функционального программирования; то, что синтаксически язык относится к C-образным языкам, — чуть ли не единственное, что роднит его с «классическими» системами программирования.
- Предыдущая
- 16/30
- Следующая