LINUX.ORG.RU

PHP исполнилось 20 лет

 


3

2

Именно в этот день, 8 июня 1995 года, Расмус Лердорф открыл исходный код PHP Tools общественности.

Созданное в 1994 году Расмусом Лердорфом, самое первое воплощение PHP было простым набором CGI-скриптов, написанных на языке программирования Си.

Первой версией PHP, напоминающей тот язык, каким мы знаем его сегодня, была версия 3.0. Примерно после девяти месяцев публичного тестирования, при объявлении официального выпуска PHP 3.0, он уже был установлен на более чем 70000 доменах по всему миру. На пике своего развития PHP 3.0 был установлен приблизительно на 10% веб-серверов в Интернете.

PHP 4.0, основанный на новом движке «Zend Engine», официально вышел в мае 2000 года. Кроме значительного улучшения производительности, PHP 4.0 получил ещё несколько ключевых нововведений, таких как поддержка намного большего числа веб-серверов, поддержка HTTP сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

В июле 2004 был выпущен PHP 5 с обновлённым движком «Zend Engine 2.0», новой объектной моделью и множеством других нововведений. Версия 5.3 порадовала пользователей пространствами имён, поздним статическим связыванием и замыканиями.

В 2009 году появилась группа совместимости фреймворков (PHP-FIG), которая начала благородную миссию по стандартизации совместимости PHP-проектов. Большинство PHP-библиотек и фреймворков начали адаптацию под рекомендации, предложенные или одобренные группой совместимости фреймворков (PSR).

В апреле 2011 началась работа над менеджером зависимостей Composer, который должен прийти на замену устаревшему PEAR.

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

С приходом версии 5.5 в PHP появились генераторы и сопрограммы, ключевое слово finally, упрощенное API для хеширования паролей и множество других новых функций.

Несмотря на наличие обширной документации, первоначальный черновик спецификации был анонсирован только в 2014 году.

А в августе этого же года вышла стабильная значительная версия PHP 5.6. Новые функции включают скалярные выражения в константах, функции с переменным числом аргументов при помощи оператора ..., оператор возведения в степень **, импорт функций и констант при помощи ключевого слова use и многое другое.

Уже осенью этого года состоится выпуск PHP 7, который включит революционные для этого языка изменения.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от at

У lua другая ниша.

И это обеспечивает ему определённое будущее и гарантирует группу Lua-программистов. А уже из этой ниши он может попробовать двинуться куда-то ещё. Как я писал в предыдущем сообщении :)

ИМХО, сегодня более-менее уверенно могут выжить и развиться только языки, для которых сразу находится популярная ниша. Просто так, с нуля, по всем направлениям универсальному языку стартовать намного сложнее.

Я кроме Python и Ruby сейчас таких навскидку вспомнить не могу. А они выплыли на довольно специфичных условиях. Python — как замена морально устаревшему w/o-стилистическому Perl. Ruby — как платформа для концептуально прогрессивного в тот момент RoR.

Взять Топ нынешних языков с Tiobe, набравших популярность уже после того, как основные ниши были заняты (Си, Java, Basic...)

C# — язык, раскрученный большими вливаниями и монополизмом в области ОС.

Python — удачно подоспел на смену умирающему Perl. К тому же начал набирать популярность в пустой тогда нише встраиваемого скриптового языка. Потом захватил уровень системного скриптового языка, оттуда полез много куда, в т.ч. в Web (хотя тут успех оказался ниже ожидаемого).

PHP — тут понятно. Ниша языков для простого Web-скриптописания была практически пустой. Было немало маргинальщины, но удачная реализация и открытая лицензия всё решили. Ниша была захвачена плотно. Хотя вылезти из неё язык не смог.

JavaScript — единственный на многие-многие годы браузерный язык. Набрал тут огромную популярность, теперь его пытаются протолкнуть в другие ниши. В т.ч. на сервер. Node.JS вполне состоялась. Но дальнейшее расширение влияния уже под вопросом.

Swift — монополизм и узкая ниша. Пока дальше, вроде, и не планируется рыпаться.

Ruby — писал ранее. Попытка сделать свой Python с логикой «всё — объект». Удачная реализация концептуально назревшего RoR, захват ниши, набор популярности. Хотя в результате в этой нише RoR был потеснён, а за её пределы Ruby не выбрался, язык в результате всё равно состоявшийся.

Теперь аутсайдеры из того же списка.

Dart. Пока тёмная лошадка. Если бы был создан какой-то группой без влияния, то шансов бы не было. Ниша клиентского скрипта полностью занята JS. Но у Google есть все шансы пропихнуть его волевым решением. Как C# у MS или Swift у Apple.

D. Тут всё понятно. Язык универсальный, без ниши, закрепиться негде. Облом без перспектив.

Lua. Ниша встраиваемого языка есть и захвачена успешно. Есть шанс вылезти за его пределы, но пока судить рано.

Scala. Попытка потеснить Java на JVM. Ниши надёжной нет, преимуществ концептуальных не даёт... Шансов на будущее почти нет.

Groovy. Попытка реализовать Ruby на JVM. Была удачной идея сделать код совместимым с Java, дабы Java-программист мог начать осваивать Groovy прямо в работе, но ниши не получилось. Кому нужны чисто скриптовые языки, воспользуются ими, кому нужна производительность JVM недовольны скриптовой реализацией. Да и полно там более привычных скриптореализаций — Jython, JRuby, Quercus и т.д. Нет ниши — не откуда стартовать.

F# — ещё пример попытки реализовать язык ради языка. Функциональщина под .NET. Ниши не было, так что даже помощь MS язык не спасла.

Erlang. Изначально очень нишевый язык, там плотно и сидит. Выбраться не смог из-за слишком непривычных концепций и крайне узкой специализации ниши.

Haskell. Язык ради языка. Не выстрелил и уже не выстрелит.

Go. Изначально можно бы было ожидать, что шансов будет мало. Язык универсальный, ниши нет, поддержка Google вялая. Но в языке есть относительно свежая изюминка — прямая работа с библиотеками на внешних репозиториях и встроенный пакетный менеджер. Уже в какой-то степени ниша. И, кроме того, внезапно пустая открывшаяся ниша управления системами контейнеризации Docker. Последние стремительно набирают популярность, вместе с ними и Go. Так что шансы на успех есть.

Rust. Узкой ниши нет. Активно продвигающего монстра нет. Шансов на успех мало, если только что-то внезапно не изменится.

Так как-то :)

KRoN73 ★★★★★
()

ITT: разорванные в клочья пуканы неосиляторов ПХП.

anonymous
()
Ответ на: комментарий от EnterpriseMobility

бизнес логика должна быть в хранимках базы данных, не?

Баз данных — более одной, не? :) Синтаксис (и даже концепции) у тех СУБД, где есть хранимые процедуры — не универсален.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Lua настолько прочно оккупировал геймдев, что его оттуда уже никто не сдвинет.

anonymous
()
Ответ на: комментарий от EnterpriseMobility

мне давали по шапке, когда я на C# писал больше, чем просто SELECT/ EXECUTE SP

Я бы давал по шапке за SELECT на любом языке. В XXI веке есть такие вещи, как ORM или ActiveRecords.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Я бы давал по шапке за SELECT на любом языке. В XXI веке есть такие вещи, как ORM или ActiveRecords.

Я бы давал по репе за использование ORM, которое всегда скатывается в унылое говно, что-нибудь, типа:

Person p;
p.setFirstName("Coder");
p.setLastName("Idiot");
try {
  p.save();
} catch (DbExcetion& e) {
  // всё пропало, остаётся только послать пользователя нахрен,
  // потому что по-другому в цепепе/джаве/и везде, где нет сигнального
  // протокола нельзя.
}

//

Person p;
p.select().where("lastname = 'Idiot'");
anonymous
()
Ответ на: комментарий от KRoN73

Столько много языков упомянул, а лисп, как специально, забыл :-) Что там с лиспом то? :-)

anonymous
()
Ответ на: комментарий от KRoN73

А уже из этой ниши он может попробовать двинуться куда-то ещё.

ИМХО, получиться так же как и с php

Rust. Узкой ниши нет.

Возможно это замена C (не С++), то есть низкоуровневое программирование. У него нет GC, жирного рантайма и т.д. Хотя, ИМХО, не взлетит

at ★★
()
Ответ на: комментарий от KRoN73

Я бы давал по шапке за бездумное впихивание ORM туда, где можно обойтись SQL.

annulen ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

бизнес логика должна быть в хранимках базы данных, не?

Да чо уж там, nginx может напрямую в постгрю ходить. Кто не понимает что база должна быть тупым (как можно более тупым) хранилищем, того ждет веселье и радость при масштабировании.

anonymous
()
Ответ на: комментарий от anonymous

Да чо уж там, nginx может напрямую в постгрю ходить. Кто не понимает что база должна быть тупым (как можно более тупым) хранилищем, того ждет веселье и радость при масштабировании.

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

anonymous
()

Останется в истории.

UNiTE ★★★★★
()
Ответ на: комментарий от anonymous

Можно, конечно, на Мерседесе навоз возить, но это как бы не очень мудро :-)

То-то все нагруженные проекты с мерседесов-блейдов слезают на aws и свои инхауз говновозы.

Причем даже аналитики разъюзали хадупчик и вся эта ораклиная муть все больше загоняется в узкие рамки IT-неосиляторов и попильщиков.

anonymous
()
Ответ на: комментарий от anonymous

Что Питон, что ПХП, одна фигня.

Все правильно, только Питон это фигня здорового человека.

bismi
()
Ответ на: комментарий от anonymous

Чтобы сервер смог узнать кто его беспокоит.

Достаточно авторизации.
Сессии закопать и место посолить чтобы ничто не росло в этом месте.

grim ★★☆☆
()
Ответ на: комментарий от KRoN73

есть такие вещи, как ORM или ActiveRecords.

facepalm

anonymous
()
Ответ на: комментарий от KRoN73

Так как-то :)

Описание языков программирования ПХПшником сводится к Аксиоме Эскобара.

Забавно.

grim ★★☆☆
()
Ответ на: комментарий от KRoN73

А веб ниша это мало? Помоему это вполне даже много)) если клещ вцепился в тело , то наружу торчит только задница. php уютно вцепился в веб, не надо его оттуда вытаскивать))

oblepiha_pie
()
Ответ на: комментарий от grim

В каких популярных новых проектах используется Perl?

Навскидку - Ubuntu

Я спросил, не где он установлен. И не в каких legacy он поддерживается до сих пор. А какие новые проекты стартовали на Perl в течении хотя бы последних пяти лет.

KRoN73 ★★★★★
()
Ответ на: комментарий от oblepiha_pie

А веб ниша это мало?

Много. Но я ничего не писал о размере ниши :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Napilnik

pihter ★☆ (09.06.2015 19:23:20) представитель секты свидетелей искривления

Будем знакомы! :) Я вот еще не знаю твою позицию по черным дырам, они, вродь как, из ОТО следуют? Ты их признаешь? // без стеба, просто интересно

pihter ★★★★★
()
Ответ на: Не в теме от krasoffski

но раньше думал, что он хорош для всяких там встроенных систем. Интерпретатор нетребовательный + сервером легковесных под линух из коробки достаточно.

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

Как сейчас это делается?

Сейчас модно говорить про lua

pihter ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

а то, что быдлокод можно и как на похпэ пейсать, так и на поцКАЛЛе.

Это верх уже просто! Поливать РНР говном и, в качестве аргумента, показывать быдлокод на паскале, мотивируя тем, что на любом языке быдлокод можно...

Дак если программист виноват, а не язык (что ты и продемонстрировал) тогда какие вопросы к РНР? Сам-то подумал?

pihter ★★★★★
()
Ответ на: комментарий от anonymous

По ходу, действительно не понял. Даже Emacs Lisp - язык общего назначения, о чём сказано в его документации

Лисп — пес с ним. Я тебе только что ссылку на сайт Луа дал, а там, в первой же строке, написано что он легкий, быстрый, ВСТРАИВАЕМЫЙ. То есть понятно, что его можно использовать как язык общего назначения, но позиционируется он и, соответственно, преимущественно затачивается под то, чтоб быть встраиваемым, согласен?

Это я к чему? РНР тоже можно использовать как язык общего назначения, если вам верить про биндинги в сишные либы (я тож такое слышал), но позиционируется он как язык для веба, под то и затачивается. Например, у него имеются глобальные переменные $_SERVER, $_POST, $_GET и тд изкаропки при работе в качестве CGI-скрипта, а вот работа с ОС развита слабо (на уровне время/дата/файлик почитать) — строго то, что нужно для работы CGI-скрипта, а не языка общего назначения.

Короче, я прекрасно понимаю, что ты намеренно издеваешься и знаешь это не хуже меня.

pihter ★★★★★
()
Ответ на: комментарий от anonymous

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

Эт расплата за низкоуровневость: тебе дана силушка сделать все, что может компьютер — у тебя руки развязаны полностью. Никто не обещает, что это будет легко.

Убогость шаблонов, упоротость семантики, проблемы разделения интерфейса и реализации и инклюдная унылость

Да всегда казалось что так и надо: это ж настолько традиционная вещь, что мир без нее не представляется. Хотя в паскале, как по мне, многое из этого всего реализовано разумнее. Но не мне и не тебе судить о дохлых страусах, ибо С++ — свершившийся факт, как день и ночь: нам остается два пути — принять или бугуртить

Вот именно, низкоуровневый, а толку мало. Потому то ядра и рантаймы пишутся только на Си, а не на Си++.

Да я не настолько Си-гуру, чтоб для себя делать большую разницу между Си и Си++. Как по мне — это просто дело вкуса, как тебе нравится. Хочешь ООП — получи, нравится процедурное — тоже никто не запрещает. Как-то так

pihter ★★★★★
()
Ответ на: комментарий от KRoN73

Я помню, как на PHP катили бочку Perl'овики. Потом — Python'исты. Потом — Ruby'сты. Теперь очередь дошла до JS

собака лает — РНР7 идет...

кто следующим катить бочку будет?

Дотнетчики

pihter ★★★★★
()
Ответ на: комментарий от KRoN73

В нише PHP можно бы было ожидать бодания с Lua, но почему-то на эту тему тихо

Да луа тоже про другое. Хотя, в плане языковых возможностей, значительно опередил РНР, но сейчас смотришь чейнджлог из ОП-поста и, вродь как, догоняет сабж.

// хм... а наверное прикольно было бы небольшой сайтик на луа попробовать..

pihter ★★★★★
()
Ответ на: комментарий от Kilte

Как там с производительностью?

Прекрасно: там JIT-компиляция во все поля. Насколько я понимаю (а я точно не знаю) РНР пока так не умеет. Кроме того, там приинклуденные скрипты (если правильно писать) компилируются один раз, а не каждый раз при запуске. Оно ускоряет процесс с сотни (а то и более) раз.

Оно так же как и PHP запускается или можно один раз запустить приложение и поставить перед ним nginx например?

Ты имеешь в виду по сети взаимодействовать с веб-сервером, а не по CGI-модели? Не знаю как в вышеозвученных фреймверках сделано, но в lua такое запилить — как два пальца.

pihter ★★★★★
()
Ответ на: комментарий от KRoN73

А какие новые проекты стартовали на Perl в течении хотя бы последних пяти лет.

Убунту это легаси?
Там много на Перл написано.

grim ★★☆☆
()
Ответ на: комментарий от grim

Убунту это легаси?

Как ты ответишь на вопрос «На каком языке написана Ubuntu»?

Там много на Перл написано.

В фразе «какие новые проекты стартовали на Perl в течении хотя бы последних пяти лет» какие буквы непонятны?

KRoN73 ★★★★★
()
Ответ на: комментарий от oblepiha_pie

Если кто то гвозди отбойным молотком забивает, ну что сделаешь))

ААААА!!!!! Нельзя так говорить!!

А почему?)

А я уже пробовал (этими же словами) — не прокатывает :)

pihter ★★★★★
()
Ответ на: комментарий от grim

Опять передергиваете?

Нет. Это Вы в фразе «В каких популярных новых проектах используется Perl?» не усмотрели контекст, что понятие «используется Perl» подразумевает «написано на Perl».

Так-то Perl используется даже в некоторых моих домашних самописных системах. Потому что legacy.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Python — удачно подоспел на смену умирающему Perl. К тому же начал набирать популярность в пустой тогда нише встраиваемого скриптового языка. Потом захватил уровень системного скриптового языка, оттуда полез много куда, в т.ч. в Web (хотя тут успех оказался ниже ожидаемого)

Питон подоспел как современная замена на уже пустую нишу умершего бейсика, а вовсе не перла. Собственно автор питона и не скрывал, и даже настаивал, что делал язык как дидактически верный. По этой причине, в частности, там такие отступы. По этой же причине питон снабжён интерактивным режимом. Язык очень понравился 12-летним школьникам, которые теперь выросли и сохранили преданность своему первому языку.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Есть в питоне одно неоспоримое приемущество.

Возьмем например Кормен-Алгоритмы, а из книги примеры на псевдокоде, так эти примеры практически один в один код питона.

Разве нет?

krasoffski
()
Ответ на: комментарий от pihter

это был ответ на высказавание JavaScript - write only язык программирования.

Я с этим высказывание не согласился, и указал, что по моему опыту PHP обладает этими свойствами.

Равно как и и поцкал.

Более того, я не согласен с определением w/o языка.

EnterpriseMobility
()
Ответ на: комментарий от krasoffski

Возьмем например Кормен-Алгоритмы, а из книги примеры на псевдокоде, так эти примеры практически один в один код питона

Да, я же и говорю, питон - дидактически верный язык, отлично подходящий для обучения. Как паскаль, только новее. Собственно он и является дальним-дальним родственником паскаля, т.к. ведет свою родословную от ABC, а тот от Алгола. Ну и кое что в питон стырили из Модулы-3.

неоспоримое приемущество

Преимущество для школьников тут бесспорное. Но писать что-то длинее хеловорда или задачек из Кормена - это ад и Израиль. Код получается многословный и какой-то квадратно-гнездовой, как в бейсике.

no-such-file ★★★★★
()
Ответ на: комментарий от pihter

Лисп — пес с ним.

Ты опять не понял, потому что не в теме. Emacs Lisp - это не просто лисп, а язык для расширения редактора Emacs. И для большинства это именно так. Но если ты откроешь документацию по Elisp, то увидишь там, что язык может быть использован для чего угодно. В частности, есть куча софта - от менеджера файлов, до http-серверов, написанных на Emacs Lisp. Также и на Пехепе пишутся и скрипты, и http/websockets-сервера и что угодно можно написать.

Я тебе только что ссылку на сайт Луа дал

Вот что сказано на сайте PHP в его первых строках: «PHP is a popular general-purpose scripting language that is especially suited to web development.» Каждый увидит во фразе то, что хочет видеть. Моя оценка фразы «especially suited to web development» такова, что она является уловкой для завоевания некомпетентной аудитории.

РНР тоже можно использовать как язык общего назначения, если вам верить про биндинги в сишные либы (я тож такое слышал), но позиционируется он как язык для веба, под то и затачивается.

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

Например, у него имеются глобальные переменные $_SERVER, $_POST, $_GET и тд изкаропки при работе в качестве CGI-скрипта

А, так вот она, заточка под Web :-) А то, что в Си или в Си++ эти переменные доступны через getenv(), делает их непригодными для web :-)

Короче, я прекрасно понимаю, что ты намеренно издеваешься и знаешь это не хуже меня.

Конечно я понимаю, что PHP создавался как хобби для более лёгкой генерации контента. И хотя сделан он уродливо и бесвкусно, сама его архитектура имеет заявы на язык общего назначения.

anonymous
()
Ответ на: комментарий от anonymous

Emacs Lisp - это не просто лисп, а язык для расширения редактора Emacs. И для большинства это именно так. Но если ты откроешь документацию по Elisp, то увидишь там, что язык может быть использован для чего угодно. В частности, есть куча софта - от менеджера файлов, до http-серверов, написанных на Emacs Lisp. Также и на Пехепе пишутся и скрипты, и http/websockets-сервера и что угодно можно написать.

И что из того, что можно? Топором тоже почти все можно: можно людей убивать, можно коров, можно сорняки в огороде выводить, можно пиво открывать и капусту придавливать — да хоть картины топором рисовать можно, но это же теперь не значит, что тот, кто придумывал топор, задумывал его как универсальные инструмент для всего? А ты мне втираешь, что раз можно рисовать топором картины, то можно и на полном серьезе сравнивать рисовательские качества топора и кисти. И топор явно проигрывает кисти как инструмент для рисования, значит, по твоей логике, топор — плохой инструмент. Я уже второй день глотку надрываю о том, что некорректно сравнивать топор с кистью вне области специализации топора, несмотря на то, что, если сильно обнюхаться краски, то и топором рисовать можно. Ты же, во всю шепчешь что и топором можно делать что угодно и отверткой и кистью и, даже, простои господи, молотком, а специализация инструментов, которая у них на этикетке — рекламный трюк для дурачков, мол ты не читай что там на сайте РНР или Луа написано, на самом деле, что с помощью РНР, что с помощью Луа, можно делать ВСЕ. Можно. Никто не спорит. Но и любым бытовым инструментом тоже можно делать ВСЕ, невзирая на специализацию.

pihter ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.