Это просто ответ на комментарии «PHP недостаточно быстро развивается» и «другие языки развиваются быстрее».
Есть разница между развитием и переделыванием. Python как раз переделали — получили 2 активно используемые, но практически несовместимые версии и сообщество, которое вот уже 4 года не могут заставить перейти на новую ветку.
Это не развитие, это бездумное копирование с задержкой в год. Я вижу тот же сири, только в другой обертке и никакого развития идеи. Ждем грядущей презентации нового айфона, затем целого года разговоров про «это нам не надо», потом снова бездумная копия и сравнительные замеры скорости.
Серьезно, это не развитие. Мне нравится продукция эпл, но я ненавижу то, что происходит с рынком вокруг нее. Вся индустрия будто разучилась думать. Честное слово, хочу увидеть продукт от Google, чтобы у меня отпала челюсть как от первого айфона. Первым бы побежал его покупать, но на выходе лишь те же самые айфоны и айпады в другой обертке.
И да, никого больше не смущает, что мы не видим «гонки вооружений»? Что нет развития основанного на конкуренции? Это когда кто-то реализует какую-то идею, а другая компания берет эту идею за основу и делает что-то намного интереснее.
Что мы видим сейчас? Apple делает Siri, через почти год Google выпускает точно такой же Siri с немного измененным интерфейсом и разбором текста на девайсе. Не новый интерфейс построенный на голосовом управлении, не развитие идей, заложенных в изначальной идее, а просто копия в другой обертке. Я не вижу развития — я вижу как одна компания вводит инновации на рынке маленькими шажками каждый год а остальные только ждут результатов их работы, чтобы бездумно скопировать на своем стеке технологий.
Патенты не работают, с этим никто не спорит. Но их применение в большинстве случаев обусловлено злостью, основанной на том, что через пол-года после выхода первого iPhone аппарат с первой картинки «плавно» трансформировался в: thehottestgadgets.com/wp-content/uploads/2008/09/tmobileg1.jpg
Никто не спорит, что патенты — зло, которое вредит развитию индустрии. Но как по мне, так этой же индустрии не меньше вредят целые линейки продуктов, занимающихся простым копированием вместо попытки родить/попробовать что-то новое.
> ни один большой проект на PHP тоже невозможно полноценно разрабатывать без современной IDE
Занимаюсь разработкой 2ух (Behat, Mink) и активным контрибутом в другой десяток очень крупных проектов (Symfony2, Composer, Doctrine2) на PHP через vim. Другие аргументы?
Про разделение данных, конечно можно использовать десятки программ, которые в совокупности возможно сделают редактирование пакетной конфигурации проще, а можно просто отредактировать *.json файл в vim/textmate/notepad/sublime/anything_else.
Про DSL на PHP — как вы будете разбирать такие описания пакетов на центральном сервере (packagist?) не рискуя безопасностью? Почитайте мэйл-листы ребят с rubygems чтобы понять всю суть проблемы.
Речь про PHP. JAVA — отдельная история. Неоднократно слышал от джавистов что на джава писать без IDE невозможно. В виду этого, для джавы XML действительно может быть идеальным форматом для всего :) Ибо IDE, которая для многих (всех?) джавистов обязательна, будет автоматически компенсировать огрехи формата.
Это к тому, что XML никогда в качестве формата конфигурации/описания пакетов не работал. Смотрим на PEAR — каждый крупный проект писал скрипт для билда xml описания пакета. Скрипт, который генерировал описание пакета, который использовался для создания пакета. И так делали все проекты с мало-мальски крупной базой кода.
Оно просто никогда не работало. Если вам кажется обратное, значит вы просто никогда серьезно этим не пользовались.
Это у вас XML головного мозга. Если ваш IDE убирает все изначальное неудобство и нечитаемость XML, это не значит что XML резко становиться лучшим форматом для конфигов. Это лишь значит, что ваш IDE убирает все изначальное неудобство и нечитаемость XML (отжирая на это сотни мегабайт оперативы?).
JSON не идеальный формат. Изначально был разговор с Жорди и о yml и о DSL на чистом PHP, но ребята решили пойти по пути npm. И оно работает!
Добро пожаловать в реальный мир. Так везде. Асболютно. Мы с собой во Францию привезли Российскую PS3 — BluRay диски стоимостью 30euro (одни из самых дорогих в мире) на ней идут через один (региональные ограничения).
Но на все правила есть исключения, которые надо знать и учитывать. Незнание корпоративного бреда не освобождает вас от последствий.
Про стим — ограничения идут только но ритейловые версии, все, что куплено в самом стиме будет работать везде.
Про AppStore — используйте Россию в качестве страны профиля, судя по всему там нет ограничений по карточкам и их регионам. У меня был российский аккаунт, когда я жил в Беларуси с белорусской карточкой. Теперь я во Франции, но пользую тот же российский аккаунт уже с французской карточкой.
Потому что он это делает автоматом. Привязка идет по IP — пол-года назад переехал во Францию, все игры, купленные в российском ритейле в списке присутствуют, но их мне ни скачать, ни поиграть не дают. Можно, конечно, заморочиться с проксями, но мне легче перекупить.
Т.е. вы специально вяжете ActiveRecord на все объекты, которые хотите выводить в шаблоне, чтобы упростить ваши шаблоны?
Давайте теперь представим, что $category собирается в памяти, никуда не персистится и имеет структуру, которую я в начале привел. Что будете делать? Привяжете туда ActiveRecord или просто добавите публичные проперти, чтобы упростить шаблон?
Давай предположим, что эта метаинформация — контейнер переменного размера, в который сущности системы могут помещать что угодно и когда угодно, помимо типичной информации типа «name». В этом случае, использование объекта для представления меты излишне, хэш для этого подходит куда лучше ;-)
Да, пример достаточно редкий, но не «невозможный».
То есть наличие чистого публичного API домена для вас — говнокод, а опубличивание пропертей домена с целью упрощения шаблонов — вариант «без говнокода». ОК!
<?php if ($category_tree && count($category_tree)): ?>
<?php foreach($category_tree as $category): ?>
<?= $category->name ?>
<?php endforeach; ?>
<?php else: ?>
No items in tree
<?php endif; ?>
Хоть както полегчало за счет этого <?= $category->name ?>?
Окей окей, у вас собственный VPS, где вы можете включить шорты на начало/конец блоков кода тоже:
<? if ($category_tree && count($category_tree)): ?>
<? foreach($category_tree as $category): ?>
<?= $category->name ?>
<? endforeach; ?>
<? else: ?>
No items in tree
<? endif; ?>
Это просто ответ на комментарии «PHP недостаточно быстро развивается» и «другие языки развиваются быстрее».
Есть разница между развитием и переделыванием. Python как раз переделали — получили 2 активно используемые, но практически несовместимые версии и сообщество, которое вот уже 4 года не могут заставить перейти на новую ветку.
Серьезно, это не развитие. Мне нравится продукция эпл, но я ненавижу то, что происходит с рынком вокруг нее. Вся индустрия будто разучилась думать. Честное слово, хочу увидеть продукт от Google, чтобы у меня отпала челюсть как от первого айфона. Первым бы побежал его покупать, но на выходе лишь те же самые айфоны и айпады в другой обертке.
Что мы видим сейчас? Apple делает Siri, через почти год Google выпускает точно такой же Siri с немного измененным интерфейсом и разбором текста на девайсе. Не новый интерфейс построенный на голосовом управлении, не развитие идей, заложенных в изначальной идее, а просто копия в другой обертке. Я не вижу развития — я вижу как одна компания вводит инновации на рынке маленькими шажками каждый год а остальные только ждут результатов их работы, чтобы бездумно скопировать на своем стеке технологий.
Сугубое ИМХО.
www.infinitezest.com/images/android-first-app-window.jpg
Патенты не работают, с этим никто не спорит. Но их применение в большинстве случаев обусловлено злостью, основанной на том, что через пол-года после выхода первого iPhone аппарат с первой картинки «плавно» трансформировался в:
thehottestgadgets.com/wp-content/uploads/2008/09/tmobileg1.jpg
Никто не спорит, что патенты — зло, которое вредит развитию индустрии. Но как по мне, так этой же индустрии не меньше вредят целые линейки продуктов, занимающихся простым копированием вместо попытки родить/попробовать что-то новое.
Занимаюсь разработкой 2ух (Behat, Mink) и активным контрибутом в другой десяток очень крупных проектов (Symfony2, Composer, Doctrine2) на PHP через vim. Другие аргументы?
Про разделение данных, конечно можно использовать десятки программ, которые в совокупности возможно сделают редактирование пакетной конфигурации проще, а можно просто отредактировать *.json файл в vim/textmate/notepad/sublime/anything_else.
Про DSL на PHP — как вы будете разбирать такие описания пакетов на центральном сервере (packagist?) не рискуя безопасностью? Почитайте мэйл-листы ребят с rubygems чтобы понять всю суть проблемы.
Оно просто никогда не работало. Если вам кажется обратное, значит вы просто никогда серьезно этим не пользовались.
JSON не идеальный формат. Изначально был разговор с Жорди и о yml и о DSL на чистом PHP, но ребята решили пойти по пути npm. И оно работает!
XML? Bitch, please:
github.com/symfony/symfony1/blob/1.4/data/bin/release.php
Но на все правила есть исключения, которые надо знать и учитывать. Незнание корпоративного бреда не освобождает вас от последствий.
Про стим — ограничения идут только но ритейловые версии, все, что куплено в самом стиме будет работать везде.
Про AppStore — используйте Россию в качестве страны профиля, судя по всему там нет ограничений по карточкам и их регионам. У меня был российский аккаунт, когда я жил в Беларуси с белорусской карточкой. Теперь я во Франции, но пользую тот же российский аккаунт уже с французской карточкой.
Давайте теперь представим, что
$category
собирается в памяти, никуда не персистится и имеет структуру, которую я в начале привел. Что будете делать? Привяжете туда ActiveRecord или просто добавите публичные проперти, чтобы упростить шаблон?В:
Или в:
В зависимости от того, что из себя представляет
$category
. Это и называется отделением логики от представления.Да, пример достаточно редкий, но не «невозможный».
<?= $category->name ?>
у вас будет что-то вроде:Сравниваем:
Хоть както полегчало за счет этого
<?= $category->name ?>
?Окей окей, у вас собственный VPS, где вы можете включить шорты на начало/конец блоков кода тоже:
Наконец ваш шаблон читабелен и лаконичен, так?