Как стать автором
Обновить
23
0
Константин Кудряшов @everzet

Пользователь

Отправить сообщение
Ну я как бы и не утверждал обратного.

Это просто ответ на комментарии «PHP недостаточно быстро развивается» и «другие языки развиваются быстрее».

Есть разница между развитием и переделыванием. Python как раз переделали — получили 2 активно используемые, но практически несовместимые версии и сообщество, которое вот уже 4 года не могут заставить перейти на новую ветку.
Это не развитие, это бездумное копирование с задержкой в год. Я вижу тот же сири, только в другой обертке и никакого развития идеи. Ждем грядущей презентации нового айфона, затем целого года разговоров про «это нам не надо», потом снова бездумная копия и сравнительные замеры скорости.

Серьезно, это не развитие. Мне нравится продукция эпл, но я ненавижу то, что происходит с рынком вокруг нее. Вся индустрия будто разучилась думать. Честное слово, хочу увидеть продукт от Google, чтобы у меня отпала челюсть как от первого айфона. Первым бы побежал его покупать, но на выходе лишь те же самые айфоны и айпады в другой обертке.
И да, никого больше не смущает, что мы не видим «гонки вооружений»? Что нет развития основанного на конкуренции? Это когда кто-то реализует какую-то идею, а другая компания берет эту идею за основу и делает что-то намного интереснее.

Что мы видим сейчас? Apple делает Siri, через почти год Google выпускает точно такой же Siri с немного измененным интерфейсом и разбором текста на девайсе. Не новый интерфейс построенный на голосовом управлении, не развитие идей, заложенных в изначальной идее, а просто копия в другой обертке. Я не вижу развития — я вижу как одна компания вводит инновации на рынке маленькими шажками каждый год а остальные только ждут результатов их работы, чтобы бездумно скопировать на своем стеке технологий.

Сугубое ИМХО.
Вы так говорите будто это патенты заставляли Google разрабатывать это:
www.infinitezest.com/images/android-first-app-window.jpg

Патенты не работают, с этим никто не спорит. Но их применение в большинстве случаев обусловлено злостью, основанной на том, что через пол-года после выхода первого 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. И оно работает!

XML? Bitch, please:
github.com/symfony/symfony1/blob/1.4/data/bin/release.php
Ну, значит саппорт стима мне наврал. Впрочем, не удивлен…
Добро пожаловать в реальный мир. Так везде. Асболютно. Мы с собой во Францию привезли Российскую PS3 — BluRay диски стоимостью 30euro (одни из самых дорогих в мире) на ней идут через один (региональные ограничения).

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

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

Про AppStore — используйте Россию в качестве страны профиля, судя по всему там нет ограничений по карточкам и их регионам. У меня был российский аккаунт, когда я жил в Беларуси с белорусской карточкой. Теперь я во Франции, но пользую тот же российский аккаунт уже с французской карточкой.
Потому что он это делает автоматом. Привязка идет по IP — пол-года назад переехал во Францию, все игры, купленные в российском ритейле в списке присутствуют, но их мне ни скачать, ни поиграть не дают. Можно, конечно, заморочиться с проксями, но мне легче перекупить.
Т.е. вы специально вяжете ActiveRecord на все объекты, которые хотите выводить в шаблоне, чтобы упростить ваши шаблоны?

Давайте теперь представим, что $category собирается в памяти, никуда не персистится и имеет структуру, которую я в начале привел. Что будете делать? Привяжете туда ActiveRecord или просто добавите публичные проперти, чтобы упростить шаблон?
Мои примеры абсолютно одинаковые. Twig автоматически заресолвит:

{{ category.metaInformation.name }}

В:

$meta = $category->getMetaInformation();
echo $meta['name'];

Или в:

echo $category->getMetaInformation()->getName();

В зависимости от того, что из себя представляет $category. Это и называется отделением логики от представления.
Давай предположим, что эта метаинформация — контейнер переменного размера, в который сущности системы могут помещать что угодно и когда угодно, помимо типичной информации типа «name». В этом случае, использование объекта для представления меты излишне, хэш для этого подходит куда лучше ;-)

Да, пример достаточно редкий, но не «невозможный».
То есть наличие чистого публичного API домена для вас — говнокод, а опубличивание пропертей домена с целью упрощения шаблонов — вариант «без говнокода». ОК!
Ах и да, часто вместо <?= $category->name ?> у вас будет что-то вроде:

<? $meta = $category->getMetaInformation(); ?>
<?= $meta['name'] ?>


Сравниваем:

{{ category.metaInformation.name }}
<?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; ?>

Наконец ваш шаблон читабелен и лаконичен, так?

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность