12 языков программирования, которые потрясли мир ТЕМ, ЧТО НА НИХ НЕВОЗМОЖНО ПРОГРАММИРОВАТЬ
Существует около 8 500 языков программирования (не удивляйтесь, данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает за десяток. Причин, почему тот или иной язык не стал популярным, ничуть не меньше, чем самих языков. Это и распри между их создателями, и плохо организованный процесс продажи, и появление новых технологий, и просто откровенная «кривизна». В этой статье мы рассмотрим 12 языков программирования, которые не пользуются популярностью среди разработчиков, а также причины этой «нелюбви». ALGOL 68: ALGOrithmic Language 1968 Язык получил звание «самой великолепной комбинации успеха в теории и провала на практике» среди языков программирования. ALGOL 68 – язык, созданный в качестве альтернативы существовавшему уже на тот момент ALGOL 60. Это детище печально известного сообщества «бунтарей», у которых отлично получалось вызывать в программистской среде сплетни и агрессию по отношению к себе. Хотя язык сам по себе сейчас практически не используется, он служит вечным напоминанием потомкам о том, как не надо делать «креатив». ALGOL 68 был первым языком (и, надо признаться, и по сей день остается одним из очень немногих), официальная спецификация которого появилась раньше, чем реализация. Правда, спецификация эта была совершенно нечитабельной и немедленно принесла проекту репутацию чересчур «навороченного». То, что ALGOL 68 и в самом деле был сложным, громоздким и содержал в себе множество загадочных операторов, так же верно, как и то, что это был первый действительно универсальный язык. Именно он стал «идейным вдохновителем» для создателей С и Bourne Shell. Благодаря ALGOL 68 параллельная обработка данных упростилась до такой степени, что даже современные языки типа Java и С++ до сих пор не добрались до его уровня. ALGOL 68 скоропостижно скончался, так и не успев толком пожить. Благодаря невнятности спецификации членам комитета разработчиков ничего не стоило утопить проект еще до того, как люди смогли реально оценить его достоинства и недостатки. brainfuck Не удивляйтесь, это не ругательство, а название реально существующего языка программирования, причем несмотря на то что это имя собственное, в названии нет заглавных букв. Brainfuck можно назвать самым непрактичным из когда-либо созданных языков. Целью создателей было бросить вызов программистам, разработав язык с самым маленьким компилятором (на тот момент были экземпляры размером менее 200 байт). Сам язык состоял из восьми команд (> < + - . , [ ]), а программа представляла собой сочетание этих команд, выполнявшихся последовательно (подчиняясь некоторым исключениям). Если же в программе появлялись символы, не являющиеся командой, они воспринимались как комментарии. Представьте себе, какая скукотища писать «Hello World!» на brainfuck!:
++++++++++[>+++++++>++++++++++> +++>+<<<<-]>++.>+.+++++++..+++. >++.<<+++++++++++++++.>.+++.——. ——--.>+.>.
Не трудно догадаться, что brainfuck никогда не был конкурентом Java или С++ (по вполне очевидным причинам). Если вы мазохист, попробуйте написать что-нибудь на brainfuck. Поверьте, больше чем на 15 минут вас не хватит, потому что в противном случае вас постигнут необратимые повреждения головного мозга. Befunge Befunge – злейший враг компиляторов. До недавнего времени программы, написанные на нём, практически невозможно было скомпилировать. Все команды языка представляют собой одиночные символы. Что еще забавнее, в Befunge версии 97-го года практически каждый символ является командой. Befunge отличается от прочих языков программирования, поскольку программа представляет собой двухмерную таблицу, в которой программист может размещать элементы управления, перемещая их с помощью стрелок влево, вправо, вверх или вниз. Достаточно взглянуть на код программы «Hello World», и головная боль вам обеспечена: vv < < 2 ^ v< v13v4 ^ ^ > >?> ?>5^ v v v97v6 v v< 8 . > > ^ ^<
Благодаря своей сложности, Befunge никогда не мог быть ничем, кроме упражнения для мозгов его создателя, и, к счастью, он только для этого и был задуман. Так что не удивительно, что программных решений, реализованных на этом языке, крайне мало, и тот факт, что он был разработан для узкоспециализированного сектора рынка, делает его несостоятельность менее трагичной. REBOL: Relative Expression Based Object Language Как вы думаете, что общего между песнями “Livin La Vida Loca”, “Mambo No. 5″ и языком REBOL? Все они взлетели на вершину славы в 1999 году, продержались там около месяца и благополучно потеряли звание «крутых». REBOL ворвался на арену программирования как абсолютно универсальный язык. Программы, написанные на нем, запускались из-под 38 различных операционных систем, он отлично работал с Интернет-приложениями. Плюс к тому, он стартовал с замечательной репутацией. Что же произошло дальше? REBOL погубило два фактора. Во-первых, тот факт, что конечный пользователь должен был вручную установить интерпретатор и хорошенько «поплясать с бубном», чтобы синхронизировать его с приложением, обеспечивал языку однозначное неприятие в массах. Во-вторых, те пользователи, которые все же выбрали для себя REBOL, с появлением .NET убедились, что большинство преимуществ, которые предоставлял язык, никому не нужны и откровенно устарели. На нынешней стадии развития программирования REBOL рассматривается как сервисный язык и используется в основном для «домашних» разработок. Простой и понятный пользователю, REBOL является примером довольно серьезного языка, во главе разработок которого не стоял пресловутый «конечный пользователь». Тот факт, что он не получил широкого распространения, указывает прежде на то, что дальнейшие разработки языка недостаточно быстро показались на горизонте, и это в конечном счете ускорило провал REBOL.
ColdFusion ColdFusion (он же язык разметки ColdFusion или CFML) был провозглашен новым грандиозным языком Web-разработок, ставящим себя в один ряд с ASP.NET и Java Enterprise. Ожидалось, что ColdFusion станет весьма популярным благодаря своей простоте и доступности для начинающих программистов. CFML использует теги (наподобие HTML). Программа на нем не требует никакой определенной формы написания, что очень помогает новичкам и не очень аккуратным программистам, постоянно забывающим о закрывающих тегах и заглавных буквах. Довольно удивительно, что ColdFusion так быстро потерял популярность, учитывая простоту использования и, так сказать, HTML-наследственность. Гибель ColdFusion произошла не из-за ошибки в продвижении его как языка программирования, и не из-за каких-то особенных недостатков при его разработке. Он просто был вытеснен ASP.NET и PHP (который предложил людям интеграцию с MySQL и, что сыграло решающую роль, абсолютную халяву). Java2k Java2k – это вероятностный, недетерминированный язык программирования. По утверждению его создателя, он имитирует истинную сущность вселенной, в которой не может быть достоверности, только вероятность (гениальное заявление!). Говоря попросту, это означает, что вызов даже встроенных функций гарантирует лишь 90% вероятности, что функция выполнит то, что вам требуется. У каждой функции существует две реализации, и контролировать, какая из них будет задействована, у вас нет никакой возможности. Получается, что разработанная программа при каждом запуске будет работать по-разному. Зачем, спрашивается, создавать язык, который целенаправленно выдает случайные результаты? Очевидно, что на нем нельзя написать ничего более или менее существенного. Цитируя создателей языка, они придумали Java2k, «потому что обычная java – это не прикольно». На самом же деле язык появился на свет, чтобы заставить программистов пошевелить мозгами, пытаясь написать на Java2k программу, выдающую предсказуемый результат. Учитывая тот факт, что программировать придётся в условиях полной непредсказуемости, даже программка «Hello World» будет выглядеть нереально круто. Попробуйте. Любой язык, выдающий непрогнозируемые результаты для встроенных функций не может использоваться для создания практических приложений, за исключением, может быть, каких-то простейших программ. Поэтому, если вам где-то попадется что-нибудь, написанное на Java2k, будьте уверены – это дело рук очень умного программиста, которому просто было нечем заняться. INTERCAL В фильме «Говорящие с ветром» с Николосом Кейджем американские морские пехотинцы используют переводчиков с языка навахо для передачи секретных сообщений, потому что на этом языке можно только говорить – у него нет письменной формы. То же и с INTERCAL – правда, с точностью до наоборот. Этот комичный язык – сплошная мистика. Он создавался как насмешка над небезызвестными FORTRAN и COBOL (да, язык достаточно древний). Руководство к языку содержало в себе раздел «Миндалина». Как пояснялось в ссылке к разделу, все мануалы содержат раздел «Приложения» (по-английски «аппендикс»), поэтому создатели приняли решение включить в свою документацию какую-нибудь другую удаляемую часть человеческого тела – скажем, миндалины. В языке используются модификаторы типа «ПОЖАЛУЙСТА». Если в программе он используется не достаточно часто, она не принимается компилятором как «недостаточно вежливая». Если же наоборот он появляется слишком часто, компилятор отвергает её как «чересчур вежливую». Но самое печальное в этой истории то, что, несмотря на наличие оценки вежливости, эта особенность не была нигде документирована. INTERCAL, в соответствии с критерием Тьюринга, достаточен для того, чтобы быть практически используемым языком программирования. Это значит, что, в принципе, язык работает, но если вам когда-нибудь придет в голову что-нибудь на нем написать, советую сразу обратиться к психиатру. Если окажется, что с рассудком у вас всё в порядке, приготовьтесь потратить на программирование кучу времени. Знаменитое решето Эратосфена, часто используемое в качестве «контрольной» задачи, было запущено на рабочей станции SPARCStation-1 фирмы SUN. Выполненная на языке C, эта программа завершилась менее чем за полсекунды. У программы на INTERCAL на получение результата ушло 17 часов. VRML: Virtual Reality Modeling Language Дословно переводится как «язык моделирования виртуальной реальности» (читается «вермал»). Разработанный SGI, VRML был призван принести в Интернет через телефонную линию невиданную ранее трехмерную среду – графический эквивалент Nintendo 64. Обещание было столь революционным, что NASA одобрила и приняла этот язык. В связи с этим он и не ушел в широкие массы. Вообще, если задуматься, это была хорошая идея – не дать VRML подняться. Кто знает, пережили ли бы мы еще одну ловушку для армии ламеров, активизирующих миллионы халявных компакт-дисков, которые в 1997 году были выкачаны через Интернет. В отличие от некоторых языков из нашего списка, VMRL привлек достаточно большую аудиторию и по сей день имеет потенциал для ее расширения. На пике своей популярности в 1997 году VMRL использовался в домашних страничках и на некоторых 3D-сайтах вроде «CyberTown». Что убило VRML, так это тот факт, что SGI реструктурировал подразделение, занимавшееся этими разработками, и продал его компании Computer Associates, которая не стала им заниматься. В настоящее время VRML используется в образовательном процессе, исследованиях и прочих областях, где особенно ценится высокая детализация. Но в целом, VRML – это еще один пример отличной продукции, которую на пике популярности не продвинули и не распространили должным образом. SMIL: Synchronized Multimedia Integration Language SMIL (произносится как «смайл») был создан в основном для представления мультимедийного (не потокового) контента через Интернет. Компания Real Networks создала этот язык для обеспечения таких реально важных нужд, как синхронизация текста и видео (например, субтитры в караоке) или звука и Flash-изображения. Результатом работы SMIL стала возможность создавать полноценную (хотя и не очень чистую) передачу видео, используя лишь скудную пропускную способность телефонного кабеля. Несмотря на наличие конкурентов от Microsoft, SMIL оставался все-таки более мощной альтернативой. Но что действительно гарантировало SMIL второстепенное положение среди языков, это появление широкополосных каналов Интернет-соединения. С распространением широкополосных сетей и с приходом их в среднестатистические дома пропала необходимость в языке, способном создавать убогий эквивалент потокового видео. Отказавшись плыть по течению, SMIL стал хорошим примером того, как можно оказаться не в то время и не в том месте. Если бы SMIL появился в тот момент, когда коммутируемый доступ к Интернет только начинал покорять Америку, у него был бы шанс получить ту долю популярности, которую он, как революционер, безусловно, заслуживает. В настоящее время SMIL находит применение в некоторых портативных устройствах, одной из функций которых является отправка MMS (мультимедийная альтернатива текстовым сообщениям). Haskell По сравнению с большинством «провальных» представителей нашего списка, Haskell можно назвать довольно популярным языком. Но несмотря на толпу его фанатов (маленькую, но сильную и, главное, очень громкую), Haskell всю свою жизнь был языком-неудачником. Тот факт, что это – непревзойденный по своей функциональности и самый располагающий к лени язык, говорит о том, что, создавая и запуская различные версии программы на Haskell, вы можете добиться огромного роста производительности. Благодаря таким уникальным понятиям, как монады и классы типов, написание некоторых функций на Haskell многократно облегчается. Однако то, что сделало Haskell таким уникальным, привело к неприятию его в обществе. Есть ряд серьезных проблем, связанных с функциональным программированием и так называемыми «ленивыми» вычислениями, которые в Haskell проявляют себя в полной мере. Кроме того, тонкости и нюансы синтаксиса, которые опытные программисты могут использовать в свою пользу, новичка только путают, мешая ему как следует отладить код. Все вышеперечисленные особенности по отдельности не представляют большой опасности, однако, собранные вместе, они погубили Haskell. Несмотря на уникальные характеристики, которые мог предложить язык, существование таких дружественных по отношению к пользователю средств, как, скажем, MATLAB, заставило программистов, ищущих баланс между стоимостью и эффективностью, отвернуться от Haskell. И поскольку начинающие программисты «подсаживались» на более популярные языки, ряды адептов Haskell пополнялись крайне медленно, что давало повод утверждать: этот язык никогда не достигнет популярности своих более доступных для «чайников» конкурентов. Delphi Delphi – это «паскализированная» версия Visual Basic. Отдавая должное прошлой популярности Delphi-программирования, было бы нечестно включать его в наш список языков-призраков. Однако, поскольку Delphi за такой короткий промежуток времени свалился с вершины славы в пучину почти полного забвения, было бы также нечестно утверждать, что Delphi достиг-таки предсказанной ему в середине-конце 90-х годов популярности. Язык программирования Delphi – это прямой потомок Turbo Pascal (его даже часто называют объектным Pascal). Для всех, писавших на Visual Basic 3.0, инструменты Delphi не будут в новинку. Учитывая, что это объектно-ориентированный язык, созданный с целью облегчения разработки программ под Windows, падение Delphi с пьедестала славы не стало последствием повышенной сложности языка для программистов без опыта. Не сказать, чтобы написать «Hello World» на Delphi было бы проще, чем на любом другом языке, однако и не настолько сложно, чтобы стоило из-за этого отвернуться от него. Настоящим убийцей Delphi стал Visual Basic 6. С 4-й и 5-й версиями, надо отметить, еще как-то удавалось бороться, поскольку существовал ряд вещей, которые на Delphi было сделать легче, чем на Visual Basic. Но 2003 год стал годом восхождения платформы .NET, и Delphi начал свое плавное погружение во мрак. VB просто-напросто не нуждался в альтернативе, и поэтому продолжение падения Delphi оказалось неизбежным. PowerBuilder Подождите кривить лицо, изображая свое отношение к этому слову. Поверьте, что PowerBuilder (он же «PB») все еще используется в сотнях организаций по всему миру. Но даже самые ярые его приверженцы вынуждены согласиться, что сейчас значимость PowerBuilder уже совсем не та, что в 1996 году. PowerBuilder был создан как простой в применении графический клиент-серверный инструмент, поддерживающий соединение с наиболее известными реляционными базами данных (к примеру, Oracle). В целом, проект достиг огромного успеха, что позволило компании-учредителю Powersoft выйти в свет. PowerBuilder был атакован одновременно с трех сторон. Интернет-бум, появление Delphi и возвышение Visual Basic – это три фактора, ставших началом его конца. Средства начали уходить на web-проекты на Visual Basic, «дельфийцев» стало значительно больше, чем людей, знающих PowerBuilder… Приговор был подписан. В крахе PowerBuilder не стоит искать никакого для себя урока. Это серьезный язык, который просто был вытеснен с рынка новыми технологиями и изменяющимися условиями выживания.
Заключение Языки программирования вынуждены преодолевать те же самые трудности, что и многие фирмы и новые идеи. Зачастую успех языка программирования зависит не только от его характеристик и применяемых технологий, но и от появления в нужном месте в нужное время. Успех языка может быть столь же непостоянным, сколь непредсказуемыми могут быть причины его провала. В этой статье вы узнали о 12 языках программирования (из нескольких тысяч), которые в один прекрасный день выпали из списка популярных, оставив после себя одни лишь воспоминания.
(c) с какого-то сайта в инете..
Добавлено спустя 2 минуты 7 секунд: Вероятно многие удивятся, - "как, Delphi умер!?" Вот что на это отвечает небезызвестный товарищ cheops - Статья вероятно переводная, на Западе, да, скорее всего Delphi умер, у нас у этой среды очень сильные позиции и широкая поддержка, как и у PHP (На Западе позиции PHP послабее будут). |
И тут появился пых... История PHP начинается с 1995 года, когда Расмус Лердорф (Rasmus Lerdorf) создал простое приложение на языке Perl, анализирующее посещения пользователями его резюме на веб-сайте. Затем, когда этим приложением уже пользовались несколько человек, а число желающих получить его постоянно увеличивалось, Лердорф назвал свое творение Personal Home Page Tools версия 1 и выставил для свободного скачивания. С этого момента начался небывалый взлет популярности PHP.
Как это всегда бывает, срочно потребовались доработки и дополнения. Для их реализации Расмус создает новую версию пакета, теперь уже написанную на С. Полученный таким образом инструмент приобретает рабочее название PHP/FI (Personal Home Page / Forms Interpreter - Персональная Домашняя страница / Интерпретатор Форм), в дальнейшем он также будет известен под названием PHP 2. Эта версия уже в большей степени похожа на сегодняшний PHP. Она имела синтаксис и способ именования переменных в стиле языка Perl, автоматическую интерпретацию форм, интеграцию с базами данных (в основном с mSQL) и возможность встраивания PHP операторов в html-код страницы. При этом все работало очень быстро, так как PHP прикомпилировался к веб-серверу Apache. К 1997 году PHP использовался уже на 50,000 доменах (не более 1% всех веб-серверов).
В том же 1997 году к проекту PHP подключились Зив Сураски (Zeev Suraski) и Энди Гутманс (Andi Gutmans). Будучи студентами одного из Израильских универсистетов, они пытались использовать PHP/FI для одного из коммерческих университетских проектов. При этом им пришлось столкнуться со многими трудностями и ограничениями этой технологии. Изучая исходный код PHP 2, Зив и Энди пришли к выводу о необходимости доработки, а точнее существенной переработки PHP, особенно в плане ситаксиса языка. В течение нескольких месяцев они блестяще справились с этой задачей, тем более приятно, что данная работа была зачтена им в качестве учебной нагрузки университета.
Закончив работу Зив и Энди связались с Расмусом, который воспринял все изменения PHP "на ура". С этого момента появляется PHP Group - группа единомышленников, работающих над развитием технологии PHP. Полученный продукт совместной деятельности увидел свет в 1998 году под названием PHP 3.
При этом главной особенность PHP 3 была возможность расширения ядра, что привлекло к работе над PHP множество сторонних разработчиков, создающих специализированные модули. Их наличие дало PHP возможность работать с огромным количество баз данных, протоколов, поддерживать большое число API. К концу 1998 количество пользователей PHP перевалило за 100000, а PHP был уже установлен на не менее чем 10% серверах Интернета. В печати были опубликованы более 20 статей по теме PHP и вышли 2 книги.
Сразу же после выхода PHP 3, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В первую очередь предстояло решить проблему повышения производительности. Новый движок, названный Zend Engine (от имен создателей: Zeev и Andi), успешно справлялся с этой задачей и был реализован в 1999 году. Основной идей его использования была возможность компиляции сценария в исполняемый модуль, за счет чего производительность можно было поднять на порядок.
PHP 4, работающий на этом движке вышел в 2000 году. В дополнение к улучшению производительности, PHP 4 имел новые возможности по поддержке сессий, буферизацию вывода, безопасные способы обработки вводимой пользователем информации и новые языковые конструкции. С выходом 4 версии PHP стал использоваться уже на более чем 20% доменов Интернета.
За время с 2000 по 2004 год продолжались активные работы по улучшению 4 версии, но почти сразу PHP Group приступила к продумыванию возможностей новой версии. В первую очередь было решено усилить объектные возможности языка, что позволяло использовать его для реализации достаточно крупных проектов. Работы по созданию версии 5 велись продолжительное время, в них принимало участие рекордное количество специалистов, из которых хотелось бы особо отметить Стерлинга Хьюза (Sterling Hughes) и Маркуса Бергера (Marcus Boerger).
И вот, наконец, в июле 2004 года, выходит официальный релиз PHP 5. В первую очередь, как и планировалось, переработке подвергся весь механизм работы с объектами. И если в предыдущих версиях объектно-ориентированное программирование на PHP было возможно в минимальной степени, из-за чего и использовалось на практике не часто, то PHP 5 обладает великолепным потенциалом реализации объектного программирования. Кроме этого, PHP обогатился рядом ценных расширений для работы с XML, различными источниками данных, генерации графики и пр.
Все основные библиотеки для работы с XML, которые имелись в PHP 4, были подвергнуты серьезной переработке. Такие популярные расширения, как SAX, DOM и XSLT, теперь используют инструмент libxml2, что делает их еще более эффективными. В PHP 5 также включены два новых расширения – SimpleXML и SOAP.
SimpleXML позволяет значительно упростить работу с XML-данными, представляя содержимое XML-документа в виде PHP-объекта. Никогда еще работа с XML в PHP не велась так просто.
Расширение SOAP позволяет строить на PHP сценарии, обменивающиеся информацией с другими приложениями при помощи XML-сообщений поверх существующих веб-протоколов, например HTTP. Появляется возможность интегрировать PHP приложения с популярнейшими на сегодняшний день веб-сервисами. Расширение SOAP для PHP 5 предоставляет разработчикам средство для достаточно быстрого создания эффективных SOAP-клиентов и SOAP-серверов.
Новое расширение PHP 5 MySQLi (MySQL Improved) предназначено для работы с MySQL-сервером версий 4.1.2 и выше, реализуя не только процедурный, но и объектно-ориентированный интерфейс к MySQL. Дополнительные возможности этого модуля включают – SSL, контроль транзакций, поддержка репликации и пр.
Расширение SQLite позволяет строить приложения, хранящие данные в обычных файлах, с возможностью использования к ним интерфейса SQL. Главное преимущество SQLite – исключительная простота использования. SQLite наряду с процедурными имеет также мощные объектно-ориентированные возможности для работы с данными. Другие отличительные особенности SQLilte – высокая скорость, отсутствие сложных механизмов администрирования, легкая переносимость и пр. Многие эксперты прогнозируют большую популярность данного расширения PHP.
Другие новые расширени PHP 5 включают: - Tidy – для анализа и исправления HTML-документов - Perl – использование Perl-сценариев непосредственно из PHP-кода - SPL (Standard PHP Library) – расширение ZE2, определяющее стандартный набор интерфейсов и классов - PDO (PHP Data Objects) – предоставляет универсальный интерфейс доступа к данным из PHP - PIMP – новая библиотека для работы с графикой, пришедшая на замену модуля GD.
Среди других крайне полезных добавлений в PHP 5 следует отметить новую схему обработки исключений. Конструкция try/catch/throw позволит весь код обработки ошибок локализовать в одном месте сценария.
Кроме этого, в PHP 5: - используется новый более быстрый диспетчер памяти - PHP 5 дополнен свойствами, необходимыми для чёткой реализации структуры PEAR и связанной с ним функциональности - добавлено множество новых функций для работы с массивами, потоками, файлами, строками и пр.
На самом деле, на этом история PHP не заканчивается. У технологии PHP все еще только впереди! |