Как стать автором
Обновить

Комментарии 175

ура, товарищи!
Прикольно. Я, не любитель пхп, но чувак реально дал новую жизнь вебу, без него бы столько сайтов не смогло появиться. Поздравляю! :)
Скорее он поймал волну. Понял, чего не хватало тогдашнему вебу и реализовал это. Если бы не php — было бы что-то другое и в другом виде. Развитие не остановить.
НЛО прилетело и опубликовало эту надпись здесь
Не знаю уж, радоваться или плакать :) Радость первого живого сайта за денежку дал мне php. Печаль и грусть — после знакомства с более подходящими для веба языками. :)
и что же больше подходит?
НЛО прилетело и опубликовало эту надпись здесь
LISP?
((ну)уж)(нет)
Это никакой не лисп)

Лисп это хотя-бы
(нет (уж (ну)))
ASM?
Brainfuck!
Вообще это провокационный вопрос, даже отвечать не буду :)

А вот вы сами как думаете?
Мы сами думаем, что вам какбэ нечего ответить.
Ну, если вы настаиваете… Личный выбор и по работе — Питон(Django) за внутреннюю красоту и простоту; симпатизирую, но не слишком глубоко знаю Руби. Естественно, есть и другие замечательные языки. Честно говоря, думаю, что даже Javascript был бы лучше для серверной стороны, если в своей полноценной стандартной версии.

Для мощных приложений со сложной бизнес-логикой обычно выбирают Java или C#.

Php не нравится неуклюжим синтаксисом, некоторой инертностью и плохой применимостью в других сферах, вроде небольших начных приложений, вообще десктопных и т.д. Если в вебе еще можно назвать его *не совсем плохим*, то в остальном… Фрк.

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

Как-то всё слишком лично, слишком размыто, и ни одного аргумента, кроме «обычно выбирают» (это тоже аргументом является с большой натяжкой). Тут спорить не могу, кто что выбирает — мне неведомо. У нас рабочий проект с дикой посещаемостью и нагрузкой — на лампе, и всё прекрасно, все рады.
В студию список языков, которые вы применяли в веб разработке. Обычно такие агрессивные комменты пишут те, кто знает один язык. Могу и ошибаться.
Получилось агрессивно? Если что — заранее извиняюсь, не хотел. Пишу, как пишется…

PHP — основной, конечно.
Perl, Python, Django, Cache, GWT — несерьёзно, в целях ознакомления.
По сути, вы правы — хорошо я знаю только PHP, с остальными — не больше общего знакомства.
С каких это пор Django и GWT стали языками программирования?
Вообщем по-своему это правда. По крайней мере я солидарен с авторами SICP, где высказывалась мысль, что используемая библиотека становиться в некотором роде расширением языка, т.е. новый язык в рамках текущего, даже если не брать во внимание DSL. Вспомните насколько отличается код и стиль кодирования, скажем для (C++) ATL, Qt, STL. В рамках каждой библиотеки своя целая идеология. Более того языки вроде python поощряют метапрограммирование, что и влечет DSL-ю природу некоторых библиотек, более того фреймворков.
Очень согласен с вами и авторами SICP.
Holywar!!!
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Ну вы по своему тоже правы, есть такое высказывание, не помню точно, но что-то вроде «используемый в данный момент язык программирования — это как девушка с которой встречаешься, лучший потому как он используемый в _данный_момент_». И за собой помню такое, писал на руби, было весело, писал на php — свои плюсы. Сейчас java, по началу вызывало отвращение, сейчас ничего, вроде привык и свои плюсы тоже есть.
Что значит «размыто»? Вполне конкретно.

Естественно, любой проект, даже самый нагруженный, проект, можно сделать на чем угодно. На Перле(вот не могу вспомнить, но какой-то из самых популярных блоговых движков на нем сделан), на С++(например, на Amazon много такого кода). Можно спорить, можно не спорить; но усредненная точка зрения — эти языки не подходят для веба: первый позволяет запутывать код; второй — делать множество ошибок на низком уровне.

Никто не отменял элементарные good engineering practiсes, которые действуют в системах любой сложности на произвольных языках. Скажем, юнит-тесты; разбиение на мелкие функции; качественное использование oop.

Однако, вы покажите начинающему программисту (пожалуй, еще годика три сам буду себя к оным относить) листинг программы на php и той эже программы — на python/ruby/etc. Спорим, потянет руки к последним? Код интуитивно понятен. Лично проверял, когда помогал знакомым студентам собирать небольшие проекты под курсовые.

Дизайн языка — понятие, конечно, размытое; но если и можно сказать «симпатично» — то это не про Php.
Ну то и значит, «размыто» — ни одного конкретного аргумента. Этим комментом вы тоже их не добавили, скажем прямо.

Я не спорю с тем, что можно сайты писать, опять же, на лиспе. Что есть «усредненная точка зрения»?
А запутать вам код и сделать стопицот ошибок на низком уровне я вам могу в любой программе на любом языке. Не надо ошибки программистов выставлять изъянами технологий.

В PHP можно прекрасно и без особых камней «юнит-тесты, мелкие функции, ооп». Не понял, что вы хотели сказать этим абзацем.

Однако, вы покажите голодному человку (пожалуй, ещё часа два сам буду себя к оным относить) удочку и уже пойманную рыбу. Спорим, потянет руки к последним?
Я не спорю, что, возможно, кому-то не нравится внешний вид листингов PHP. Это дело вкуса. А мне вот не нравится (ненавижу просто) селёдка под шубой, но я же не говорю, что она — фигня. Просто это _дело вкуса_, и никакие критерии тут не катят.
И, опять же, не надо выставлять личное мнение «начинающих программистов» объективной точкой зрения. Это просто _их_ мнение, не более.

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

Да и языки, в первую очередь, не синтаксисом сравнивнают…

Ваш довод по синтаксису понятен, а вот есть ли ещё какие-то доводы не в пользу php как языка для web?
Гм.

Ну если синтаксис так себе и усваивается дольше;
если язык изначально даже не содержал в себе средств для построения больших программных систем (ООП);
если имеется богатая традиция написания небезопасного кода(хотя фреймворки, пожалуй, этот вопрос уже решили);

… то главным и единственным плюсом можно назвать распространенность.

Pascal изначально даже не содержал в себе средств для построения больших программных систем. Сейчас на DELPHI пишется огромное окличество сложных баз данных (Толстый клиент).

Что вы имеете ввиду под выражением «небезопасный код»?
линку на стаститику, пожалуйста.
т.е.
количество систем на делфи
— на джаве
— на дотнете
и т.д.
разработанных за 2008 г., и за половину этого года.
Я не смогу привести статистику, потому что для данной ниши, скорее всего её нет.

Да я и не сказал, что DELPHI занимает лидирующее положение на этом рынке.
на сервер-сайд эту нишу плотно держат Java/.NET
в качестве тонких клиентов, зачастую, выступают обычные браузеры.
Но, в случае, «толстого клиента», очень часто это либо MFC(legacy)/WinForms, в случае кроссплатформенности, это — Qt, либо, начиная с 2008 года — Wpf, в этом году всё больше толстых клиентов пишут на Adobe Air/SilverLight -они прекрасно поддерживают оффлайновый режим работы с последующей синхронизаций с server-side
Делфи стал мёртвым уже в 2001 году, когда главного архитектора «ушли» и он перешёл в МС и, собственно говоря. спроектировал .NET
Да и не был delphi особо популярным на Западе. Больше в экс-СССР. Увы, даже и тут он потерял популярность. Больше поддержка старых проектов, что естественно: глупо переписывать сотни тысяч строк кода, тратить тысячи человеко-часов — и всё ради того, что бы проект работал на новой технологии.
На западе, честно, не знаю. Больше по странам СНГ сужу.
Сейчас вышел ещё DELPHI 2008. Может, что изменится.

WPF — отличная штука. Интересно, есть ли аналог в Delphi, они ведь уже шагнули в сторону .NET.
Открою вам секрет: есть даже Delphi 2009! 2010 ещё в стади бета-теста.
И да, кстати, не могли бы вы привести примеры относительно «традиций небезопасного кода», раз уж бьёмся на пруфлинках.
Данный вид уязвимости не относится именно к PHP. Он относится к кривым рукам программиста. Вы приписываете эту уязвимость пхп, потому что много малообразованных программистов работает имеено на нём. И потому что удобнее всего делать инъекции через HTTP протокол.

Если бы вы писали программу на С++/cgi у вас бы даже gpc_magic_quotes по умолчанию не было. А напишут его только те, кто подумает об этом. А таких, на моё мнение, не много.

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

PS. Не получилось?
Дело не в том, что уязвимость легко исправлялась; дело в том, что она была очень распространена благодаря особенностям языка.

PS а что не получилось-то?
Мне кажется, распространённость не сильно меняется от PHP до С++/cgi, через ASP и JSP. Проблема ведь в HTTP протоколе.

Не получилось вот это:
Лично, будучи еще в универе, с целой толпой зрителей на yandex пробовал выполнять команду uname -a

?
Да, конечно, это по заметке в каком-то блоге — или скринкаст это был? — делалось, и перед моментом истины проверялось дома.
Хм, всегда думал что веб-морда яндекса написана на перле…
мог перепутать сервисы, это действительно давно было.
Нет, ну это уже бред. Видно аргументы закончились. Почти любой язык даёт возможность «прострелить себе ногу» — но произойдёт это или нет зависит от программиста, а точнее от его квалификации.

Ну а тот кто иклюдит аргументом из ГЕТ — то таким надо запрещать приближаться к компьютерам.
Аргументы? :)

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

Вопрос иначе стоит. Почему именно php, кроме как по причинам чисто историческим?
«Угловатый синтаксически»

Ну вам же вверху разъясняли что это_дело_вкуса, чъорт возьми! Видимо для вас «не нравится» == «угловатый синтаксис».

«используется в единственный области»
А вы хотите чтобы пхп можно было использовать в просчёте траектории шаттлов? Кстати, первый раз слышу подобный аргумент как минус пхп.

«прославился всякими фокусами с выполнением внешнего кода»
хмм, не слышал о таком, можете пример предоставить?

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

Как это? Вам неожиданно слышать, что незачем учить лишний язык? Нафиг студенту php, когда на нем лабы нельзя сделать? Что лучше: иметь штат программистов, способных быстро решать только веб-задачи, или все же строить самые разнообразные приложения? Даже если закрыть глаза на синтаксис.

Насчет фишки… Это как С++ — надстройка над С, угловатая и некрасивая; с невнятным стандартом и большой школой написания «волшебного» кода (я про фокусы в стиле Александреску), которые потом почти невозможно понять.
Писал скрипты оплаты через терминалы QIWI и UniPlat, автоматическую блокировку портов коммутаторов у местного провайдера.
Работает и не чихает :)
А куда они денутся, ясное дело… Естественно, что огромное число веб-программистов на Php постарается перенести свой опыт и в другие плоскости, да поможет им Господь ;)
Да и насчет интуитивно понятного…

Язык может располагать к простоте; а может подталкивать к искусственному усложнению. Ярчайший пример — Perl с его встроенными регэкспами, жуткими тонкостями использования массивов и переменных и прочими прелестями.

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

Примитивный пример из Питона:
if isGood:
    doGood()


Аналог на Php:
if ($isGood){
    doGood();
}


Здесь же целая пачка лишних пальцедвижений и символов, фактической нагрузки не несущих! Я уж молчу про обращения к методам, обозначения массивов, объявления классов и прочее.
if( $isGood )
doGood();

Как по мне, второй пример куда удобнее на более сложных и ветвистых алгоритмах.
Нет, преимуществ не будет.

if isGood:
     doGood()
elif isVeryGood:
     doPray()
else:
     doFly()

Здесь исключается возня со множеством лишних «долларов», скобочек, вариаций синтаксиса в смысле переносов — вариант только один. Теперь вариации на php (относится и к C/C++ тусовке):

1) так бы написал я:

if($a) { 
   conditional1(); 
} elseif($b) { 
   conditional2(); 
} else { 
   conditional9(); 
}

2) Так Вася:
if($a) {  conditional1(); } 
elseif($b) { conditional2(); } 
else {  conditional9(); }

3) И так далее

Мне кажется, однозначность — это плюс для таких точных вещей, как программирование.
Хм… программирование это творчество, и я расставляю скобки в зависимости от настроения, а так скушно жить совсем будет:)
ПыСы а вообще case рулит
Я тоже так думаю :) Но творчество — это функционал; смысл. Аккуратно, лаконично и внятно решить задачу — высший пилотаж.

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

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

А чтобы всем было ясно и понятно, есть «соглашение по формлению кода» и коммит кода архитектором.

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

Вот так будет правильно :)
При чем здесь процесс разработки проекта? Гляньте Extreme Programming, там вообще все работают надо всем кодом.

Я говорю о поддержке после сдачи.

Насчет переписывания. Так, может статься, это такой признак редких спецов — когда не хочется переписывать? Или легко добавлять? Я таких не очень много лично встречал. Гм. Одного-двух. И уж себя так точно не отношу к оными.
Поддержка проекта и его дополнение — разыне задачи.
Первая решается оттестированностью продукта и полнотой возможностей CMS (Тогда в код лезть просто не нужно)
Вторая масштабируемостью системы.

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

Да и из собственного опыта знаю, лезть в код нужно крайне редко. И то если «поламалось». Это при том, что сам я делаю эти самые «полукустарные» сайты.
Ну-у-у-у… до нынешней работы мне довелось работать в конторе над системой документооборота уровня предприятия. Строго unit-testing и действительно замечательный программист в качестве тимлида. Архитектуру определял фреймворк и его архитектор, что сидел в соседнем помещении.

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

Так вот. В обоих случаях приходится забираться в чужой код, дабы понять, как и что работает, врубиться в общую архитектуру, решение типовых задач… Хорошо же, блин, когда это все грамотным человеком написано!
Хорошо же, блин, когда это все грамотным человеком закомитчено! :)
НЛО прилетело и опубликовало эту надпись здесь
Знаете, когда я программировал на PHP мне тоже часто хотелось переписать чужой код. Теперь я программирую на Руби и такого желания не возникает. Странно, правда?
Ибо кода на руби мало попадается? :)
Просто код на Руби в среднем на порядок качественне. Видимо, это связано с тем, что для многих ПХП — это первый в жизни язык программирования. А в Руби, в основном, приходят уже имея какой-то опыт (PHP5 или Java).
аналогично с питоном… как попадется какое-то завоевание вселенной одной строкой кода аля двойное замыкание на питоне так сразу желание его осилить и понять и пропадает и не дай бог попросят переписать…
Весь код на Руби, с которым я сталкивался, мне понятен, к счастью )
Это хорошо, просто у нас с коллегами игра такая была, проект был специфический благо, переписать кусок кода на питоне одной строкой и потом делать ставки кто угадает результат его выполнения, слава богу что старичек пых попроще в этом смысле.
Для таких игр ничего лучше Перла еще не придумали )))
не… перл врач запретил, еще с рождения
Для таких игр придумали BrainFuck.
вахх, и что питон даже так умеет? ;)

$isGood? doGood(): doElse();

уж меряццо пипи… синтаксисом там меряццо

Кстати идея с отступами в питоне также относится к категории «пачка лишних пальцедвижений»… а как замечательно дебажить, пару раз правда сталкивался за год юзания, когда pydev показывает ошибку разметки (табы) питон тоже ругается а ты бъешься об стену головой «у меня там сцуко стопудово 2 пробела, ну вот же один и еще один, и выше вот и вот» — лечилось «переписыванием» пары строк «с нуля»

П.С. прощу прощения если последние версии все-же умеют, отстал от жизни питона на пару месяцев.
П.П.С А вообще нашли чем меряться (я про синтаксис конечно)
НЛО прилетело и опубликовало эту надпись здесь
мда, словили, я имел в виду конечно такого типа $t = $if? 1: 2; опять-же может уже и умеет.
увы это не тараканы это то с чем лично сталкивался, раз за Вас что с таким не сталкивались

«Читать доки надо прежде, чем писать»
Обязательно учту совет умудренного опытом старца, то-то я думаю у меня каменный цветок не выходит а вот оно оказывается что… поклон Вам низкий ;)
НЛО прилетело и опубликовало эту надпись здесь
что самое интересное, до пайтона это называлось «тернарный оператор» и до Python 2.5 он таки не умел… хм как быстро время идет, казалось совсем недавно дело было а два года уже прошло.

www.python.org/doc/2.5/whatsnew/pep-308.html
НЛО прилетело и опубликовало эту надпись здесь
Не хочу никого обижать, но даже приличный ООП в php появился сравнительно недавно.
:) когда заканчиваются доводы переходим к схеме «на себя посмотри», а вообще как-бы и не спорю, беседа началась с обсуждения как раз достоинств одного пункта из синтаксического сахара по сравнению с отсутствием этого пункта у виновника торжества.
П.С. веб творил на пыхе, J2EE, Питоне (Django + Twisted)… вот только руби не осилил ввиду недостаточной скошенности мозгов (без обид) — дальше ковыряния плагинов redmine дело не дошло :) до этого творил «не веб»… сейчас вернулся к пыху и упиваюсь его простотой и прагматичностью если хотите — собрал в фреймворк все что нравилось в других технологиях и теперь просто творю.
Это просто зеркальное отражение вашего уточнения насчет даты. :))

Насчет redmine — сам малкий глюк руками исправлял, не зная языка. Оттуда приятные впечатления о синтаксисе. Впрочем, возможны довольно жуткие завороты, поэтому как-то Питон с его единой философией ближе.

А зачем вернулись-то к пэхэпэ? Заказов вэбовских больше?
нет, в нем я нашел для себя ДЗЕН, я как в матрице «смотрю сквозь код и вижу девушку в красном платье»

относительно заказов, без разницы, занимаюсь крупными заказами с постоянными клиентами и там без разницы на чем писать серверам то по барабану, вот на пыхе получается в 2 раза быстрее.
НЛО прилетело и опубликовало эту надпись здесь
не… это метафора была, с личной жизнью все ок… даже ни разу не гик :)
НЛО прилетело и опубликовало эту надпись здесь
Movable Type
Livejournal
А ведь не сложно догадаться, что ваш основной ЯП — PHP, даже если бы вы этого не сказали выше.

Вопрос в том, положа руку на сердце, действительно ли вы так думаете? Постарайтесь рассуждать объективно.

Вот я пишу на C# и, думаю, тоже отвечаю на критику оного предвзято. Что-ж здесь такого — мы же люди все-таки.
В чем проблема написать на джанге приложение со сложной бизнес логикой?
Никаких, прям сейчас сижу и пишу :)
PHP — отличный инструмент в умелых руках. Если он неподходящий для веба — грешите в первую очередь на себя!
В хороших руках, да за большие деньги даже notepad — замечательный текстовый редактор :))
Да notepad и так замечательный текстовый редактор :)
Ну да. Это как пилить дрова ножовочным полотном. Пилить-то пилит, но нет ни ручки, ни футляра…
Google Wave использует для написания плагинов Python/Java.
Google Apps — Python
много внутренних проектов пишется на джава или питоне
вопрос, почему гугл отказался от РНР, ведь они вроде что-то начинали на нём делать.
как это отказался? на нем сделана внутренняя сраничка заказа кофе в офис! :)
кто-то там на гугловской конфе про это говорил
А можно поподробнее про Wave? Клиентское приложение — GWT(Java), откуда там Python? Сервер вроде не зарелизили но для кучи Comet-соединений точно что-то на Java будет, тот же Plurk не смотря на то, что Python-shop, использует Java для этих целей — Twisted не потянул.
groups.google.com/group/google-wave-api/browse_thread/thread/203024830b26e1fa/98621c0c1ef597e5?lnk=raot

Hi there. We have every intention of having Java and Python be equal
in Wave. The current state of tutorials is only due to the Java API
being developed first. If you look deeper, you will notice that the
Python API exposes a lower level API of events and operations, while
the Java API is a little higher level maintaining the «effective»
state of the Wave on the Robot client. It is our plan to expose both
layers and even describe the wire protocol such that developers can
use their language of choice to develop with Wave.
groups.google.com/group/google-wave-api/browse_thread/thread/203024830b26e1fa/98621c0c1ef597e5?lnk=raot

Hi there. We have every intention of having Java and Python be equal
in Wave. The current state of tutorials is only due to the Java API
being developed first. If you look deeper, you will notice that the
Python API exposes a lower level API of events and operations, while
the Java API is a little higher level maintaining the «effective»
state of the Wave on the Robot client. It is our plan to expose both
layers and even describe the wire protocol such that developers can
use their language of choice to develop with Wave.
Мало ли на чём пишут в гугле, они GoogleFS для своих приложений используют, в отличие от Вас.
PHP для практиков, которые решают реальные задачи за реальное время. Написать сайт можно на чём угодно, скажется лишь на времени разработки, и потом могут быть проблемы с его размещением. Красивый язык без реального массового использования будет использоваться лишь для обучения, а сайты в это время будут создаваться на корявеньком PHP, который просто работает.
«PHP для практиков, которые решают реальные задачи за реальное время»
очень смелое заявление.
Практики используют ASP.NET MVC
эта новая платформа, позволяет предсказуемо и за предсказуемые сроки (уже быстрее, чем на РНР) создавать как и простенькие эл.магазины, так и сложные Enterprise системы (увы, старые ASP.NET WebForms мало подходили для быстрой разработки, больше для Enterprise)
МС учёл опыт RoR/PHP/Python и создал действительно мощнейшую платформу для быстрой разработки приложений любого уровня сложности.
Единственный ближайший потенциальный конкурент, это — Python и базируемая на этом языке Django

П.С. яндекс тоже юзает Python

Яндекс и Django юзает (см. Яндекс.Расписания)
да, хорошая платформа. Гугл обещает к следующему году увеличить скорость работы питона в 5 (!!!) раз + мощный базируемый на питоне(уже работающим в 5 раз быстрее) Django-фрейморк :) получится ядрённая смесь
полагаю, основная конкуренция начиная со следующего года будет идти в основном между ASP.NET MVC и между фреймворками, основанными на питоне, наподобие Django
вот чесслово, не понимаю.
чего на пустом месте холивары устраивать?!
новость — просто констатация факта.
что за флуд…
Первый тост за PHP!
Второй за родителей: за Perl! :)
А дальше?
А дальше за Google, Firefox, Linux. Всё напьются. Потом придут сторонники yahoo, opera, windows и начнется беседа кулаками
Однако, а уже 14 лет…
Переходный возраст.
Главное не прыщавый :)

PHP мой второй язык. С днюхой его!
«вздрогнули»
Ура!!! Гуляем товарищи?
что бы не говорили, а PHP изменил мир!
С днюхой PHP )
до сих пор где-то на полках лежит справочник по PHP от издательства Питер 2000-го года заюзанный весь… ностальгия =)
Поздравляю!
Поздравления самому PHP и всем его адептам.
Всех благ языку, который столько сделал для интернета!
Happy birthday to you, Happy birthday to you, Happy birthday dear PHP, Happy birthday to you!
Congratulations!
viva!

Кто бы что не говорил, но в свое нише php очень даже неплох и позволяет с правиться с проектами практически любой сложности.
Да, есть кое-какие несуразности, но мы с нетерпением ждем php6 ;-)
Юбилей, 15 лет))
\m/

Perl > PHP

(. ) (. )

какое совпадение) у меня день рождения 8 июня.
С тех пор как Вас задумали, случайно, не 15 лет прошло? =)))
P.S.: С днем рождения Вас!
Может вы PHP? ))
нет, я гриб)
С прошедшим!
А есть у кого-нибудь исходники первой версии, которая на перле была?
Когда-то тоже разрабатывал на PHP. С днем рождения! :)
<?php echo «С днем рождения!»; ?>
Или так:
Вот так тоже можно:
<?=«С днём рождения!»?>
и даже так:
<?=base64_decode("0KEg0LTQvdC10Lwg0YDQvtC20LTQtdC90LjRjyE=");?>
Можно короче:

0SDk7eXsIPDu5uTl7ej/IQ==
Выпусти php team в честь день рождения stable 5.3
Было бы уапще круто! С днем Рождения!
«ООП-а в головах новичков!»
Полная оппа, ага
[?php
if (date(«d»,time()) == 9 || date(«m»,time()) == 6 || date(«Y»,time()) > 1995) { echo «Hi, im PHP. Im ».(date(«Y»,time()) — 1995)." years old today! Yeah! :)"; }
?]
сорри, ступил :)

< ?php
if (date(«d»,time()) == 8 && date(«m»,time()) == 6 && date(«Y»,time()) > 1995) { echo «Hi, im PHP. Im ».(date(«Y»,time()) — 1995)." years old today! Yeah! :)"; }
? >
time() можно убрать
НЛО прилетело и опубликовало эту надпись здесь
в общем да, исполнение на троечку
НЛО прилетело и опубликовало эту надпись здесь
Предлагайте свои, более кошерные варианты.
Ура! С днём рождения, PHP! :-)
попробуйте на php из строки «In the early morning astronomers spiritualized nonmathemeticians» получить ряд чисел, где каждое число — размер слова, и сравните с кодом на языке сами знаете каком, уважаемые фанаты пыха.

ruby -e "'In the early morning astronomers spiritualized nonmathemeticians'.split.each {|p| print p.size, ' '}"
#=> 2 3 5 7 11 13 17

кстати интересный получается ряд.(шутки ради)
echo «Почтим память PHP минутой молчания»
АААА!!!

рась:
array_map('strlen', explode(' ', 'In the early morning astronomers spiritualized nonmathemeticians'));

два:
foreach(explode(' ', 'In the early morning astronomers spiritualized nonmathemeticians') as $w) echo strlen($w);
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
звиняйте под виндой
<?php
$t1 = microtime(true);
for($i=1; $i<1000; $i++) array_map('strlen', explode(' ', 'In the early morning astronomers spiritualized nonmathemeticians'));
$t2 = microtime(true);
echo ($t2 — $t1)*1e6/1000;

C:\temp\test>php a.php
8.5940361022949
НЛО прилетело и опубликовало эту надпись здесь
:) страшно там где мохнато?
да нету встроенного средства профилирования как в питоне, пришлось на коленке изобразить (это 70% кода приведенного если посмотрите), а про медленнее… ну а АЖ!!! двухкратное отставание спишем на ноут бюджетный?
НЛО прилетело и опубликовало эту надпись здесь
таак… раз топик про пых, позволю себе пофлеймить :)

VPS фря 1G (Xen правда)
server1# php a.php
6.33311271667
НЛО прилетело и опубликовало эту надпись здесь
а какая разница, считаем то «per loop»
пример мягко говоря не очень. сила руби/питона (как и слабость пхп) заключается совсем не в том как бы что-то сделать в одну строчку что потом хрен отладишь.

к слову на пхп это делается абсолютно аналогично.

$ php -r "var_dump(array_map(strlen, explode(' ', 'In the early morning ...')));"
мда, пока писал уже и померили блин… ))
ну дык мужики ж пока не померяют не угомонятся
НЛО прилетело и опубликовало эту надпись здесь
ну главное что факт того что было 1:0 Вы признали :) шутко
НЛО прилетело и опубликовало эту надпись здесь
я вовсе не собирался показывать как можно кодить в одну строчку. Меня явно не поняли любители php, что не удивительно.
тут показали альтернативные варианты кода на php и что? какой код красивее и логичнее?
представленный код на Ruby прозрачен для человеческого мышления:
как я мыслю так и пишу, а если мыслю логично и последовательно то получается так и ни как иначе:

Беру строку — дроблю на слова — ловлю кажое слово — печатаю размер

«In the early morning astronomers spiritualized nonmathemeticians».split.each {|p| print p.size, ' '}"

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

Спорить с php фанатами бессмысленно, они пытаются мерятся размерами своих хуев, совершенно не представляя себе, что возможно довести до оргазма леди естественным языком. (Ruby)

P.S необоснованный фанатизм не понимаю.
> echo «Почтим память PHP минутой молчания»
это где-то рядом с необоснованным фанатизмом? да и объявлять всех юными кодерами не будучи знакомыми лично как-то «не по джентельменски»

теперь относительно понимания и стройности, есть схема «что сделать, с чем сделать» а есть «с чем сделать, что сделать» что стройнее (первое пых второе руби), я попробовал первое и второе, вторым не проникся поскольку думаю именно в первом ключе, вы думаете в «японском стиле», а для меня это абсолютно противоестественно.
Что Вы ждете в ответ написав такой комментарий?
Получите то что заслуживаете, и языки здесь ни причем.
Фу, вы узколобы, как минимум.

Ну придумали синтаксис исключительно для целей подходящих вам. И что?

Язык сразу стал круче? :) А вот засада — вычисление диффуравнений одной сторокой в php или ruby не запишешь.
Гадские языки, да?

На основании чего я дроблю строку на слова? почему именно на слова? Почему это не могут быть произвольные токены? Зачем мне такая узкоспециальная функция?
Кто мешает реализовать в любом языке подходящую функцию для таких операций?

И выглядеть оно будет примерно одинаково везде.

obj.obj.obj.func(....)

obj.func.func.func(....)

А в чем разница? :) Где аргументы ваши? :)
perl -e «print length $_ foreach split ' ', 'In the early morning astronomers spiritualized nonmathemeticians'»
perl -E«say length for split ' ', 'In the early morning astronomers spiritualized nonmathemeticians'» ;)

PS: 5.10
Безусловно, получение ряда чисел, где каждое число — размер слова, это очень жизненная, практичная и часто встречаемая задача.
В реальных проектах — буквально в каждом третьем (а то и втором) методе.
Может вы PHP? ))
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории