> С другой стороны, он вообще, принципиально не содержит никаких средств расширения языка, которые позволили бы его конкретно под эту узкую задачу заточить.
На поверку оказалось -- почти содержит. То есть, например, можно грузить вещи, написанные сразу в зэндовском байт-коде, что позволяет генерасить их, теоретически, с любого языка, был бы генератор (вот его и можно написать, а потом использовать). Только там, насколько я закопался в эти глуби, та же бяка, что и в машине .NET -- сначала класс надо сохранить в файл, потом из файла загрузить. Они не с целью предоставить возможности расширения это делали, а для поощрения проприетарщиков. :(
Ну и то, что только классы компилить таким образом можно, а просто функции нельзя, напрягает здорово.
Возможно, я переоцениваю данную фичу, так как на практике не использовал; а возможно, до конца ее не досмотрел и она чуть даже на самом деле гибче.
> То есть, например, можно грузить вещи, написанные сразу в зэндовском
На фиг. Можно текстовое метопрограммирование по типу Tcl и JavaScript применять. Только - криво это, неудобно, сложно, и, что самое главное, те, кто это умеют, не станут пользоваться PHP.
> Ну и то, что только классы компилить таким образом можно, а просто функции нельзя, напрягает здорово.
С JVM я эту проблему решаю просто - у меня есть кэш функций, и как только какая-то из ещё не скомпилированных функций оказывается вызванной из топлевела - весь текущий кэш заворачивается в класс и компилится.
> На фиг. Можно текстовое метопрограммирование по типу Tcl и JavaScript применять. Только - криво это, неудобно, сложно, и, что самое главное, те, кто это умеют, не станут пользоваться PHP.
Мне, например, еще на протяжении года придется вариться на той работе, на которой я варюсь. Там надо делать в лучшем случае пыхпых. В худшем дельфи. А роскошь писать _дерьмовый_ код я себе не могу позволить, мне же его и сопровождать. Итого, выхожу с той ситуации, которая есть.
Сложно-несложно, но лучше, чем тупые кроссворды разгадывать, уж поверь.
> В таком случае - ждём-с появления фреймворка для метапрограммирования в PHP. Только настоятельно рекомендую с байткодами не заморачиваться. :)
А, собственно, в свободное время таким и занимаюсь помаленьку (в свободное, дабы юридических трений с конторой не возникало). К сожалению, показать еще пока нечего, но до нового года хочу хотя бы промежуточный результат родить.
> А вообще - если работа плохая, то бежать с неё надо.
Место пригретое, за%бы начальства изучены, можно и задержаться.
Млин, я фигею!
Что это вокруг РНР всегда какой-то нездоровый ажиотаж поднимается?? РНР - всего лишь язык для написания встраиваемых в хтмл несложных скриптов и не более того! То что в него добавили зачатки ООП только сбивает с толку. Господа фанатики, занимайтесь церебральным сексом с чем угодно, но не стоит обвинять язык в том, что он не может делать то для чего он никогда не был предназначен. А то аргументация уровня Тузика получается (та знаменитая фраза где он "доказывал", что freebsd сосет по сравнению с gentoo)
> Млин, я фигею!
Что это вокруг РНР всегда какой-то нездоровый ажиотаж поднимается??
Ну смотри. Иногда бывает так, что в случае невменяемого админа в большой мир интернета выход ломается сквозь туннель, проложенный... пингами. Костыль? Несомненно. Сложно? Естественно. Но если нужно, то вазелин в помощь... А тут прикинь -- большая часть хостеров и заказчиков как тот невменяемый админ.
>Мы не PHP обсираем, а то быдло, которое на нём кодерит. Сам то PHP не виноват, что его таким кривым сделали. :)
Ммм... потрясающе построенное с точки зрения логики предложение :)
>Мы не PHP обсираем
ой ли?
>а то быдло, которое на нём кодерит.
следует ли это понимать как "то быдло, к-рое кодерит на РНР, вдвойне быдло" или "все кто кодят на РНР - быдло" или "среди РНР-кодеров повышенная концентрация быдла"? Принципиально разные вещи.
>Сам то PHP не виноват, что его таким кривым сделали.
Ага, виноват тот кто РНР придумал, а РНР - кривой, так? А как же самая первая фраза? И в чем собсно кривизна? В том что у РНР _слишком_ простой синтаксис и его очень легко использовать (по сравнению с другими языками подобного плана), что привлекает толпы пианерии? Кто ж виноват-то? :) Быдло, в том что его не может не быть? Создатель РНР, который не усложнил его и не сделал его тем самым быдлоустойчивым? (лол! :)) Или еще кто?
> > Сам то PHP не виноват, что его таким кривым сделали.
> Ага, виноват тот кто РНР придумал, а РНР - кривой, так? А как же самая первая фраза? И в чем собсно кривизна? В том что у РНР _слишком_ простой синтаксис и его очень легко использовать (по сравнению с другими языками подобного плана), что привлекает толпы пианерии? Кто ж виноват-то? :) Быдло, в том что его не может не быть? Создатель РНР, который не усложнил его и не сделал его тем самым быдлоустойчивым? (лол! :)) Или еще кто?
PHP сделан кривым и это есть факт. Вначале он _был_ вспомогательным язычком для встраивания в страницы. Типа SSI, только круче. Но потом пыанэрам захотелось большего, но именно в этом языке. Можешь поинтересоваться у разработчиков, по какому принципу они развивают свое творение. Наверняка услышишь ответ -- "как бабка на кофейной гуще нагадает". Ибо так они и делают. Сам PHP сильно напоминает здание, построенное с обильным и повсеместным применением скотча и подпираемый деревянными столбами.
А то почему: 1) функций в штатном PHP насчитывается около 3000, 2) они все совершенно разные по стилю наименования и по порядку параметров (даже функции одной и той же группы), и, наконец, 3) нельзя делать unset() для функций ненужных или грузить лишь нужные пакаджи?
> В том что у РНР _слишком_ простой синтаксис и его очень легко использовать (по сравнению с другими языками подобного плана), что привлекает толпы пианерии?
Он слишком сложен, только не там, где надо. И не о синтаксисе речь. А о количестве вещей, которые нужно одновременно держать в голове при работе с PHP.
> Типа SSI, только круче.
Стоп, все остальное уже лишнее... в SSI не надо unset(), не надо "грузить пакаджи" итд, именно с такой позиции и стоит рассматривать РНР. И в этом плане язык довольно удачный, и есть все что надо для простых _практических_ задач от работы с БД, до динамической генерации картинок, когда же начинаешь писать что-то более сложное (по функционалу, а не по объему кода :)) тогда да, начинается ужас и большие проекты превращаются в помойку (недавно с таким ковырялся :( ).
> В том что у РНР _слишком_ простой синтаксис и его очень легко использовать (по сравнению с другими языками подобного плана), что привлекает толпы пианерии?
>Только твоего сраного маляра, когда это быдло сдохнет от сифилиса в канаве с бомжами, никто и на следующий день не вспомнит. А картины таких вот художников-"нахлебников" сейчас висят в Третьяковке и в Лувре, и их имена помнят спустя многие столетия.