>Когда у тебя свой живой проект... когда все что ты делаешь, надо делать быстро, а ТЗ составляется на текущий день (типа - убрать 20 багов, внести 30 фич) - это и называется Extreme Programming :D
имел сомнительное счастье оценивать результаты такого экстремального программирования. Ну что сказать - быдлокодеры они быдлокодеры и есть. Тяп-ляп - лишь быстрее. PHP действительно лучше других ЯП подходит для этого.
>Малым студиям можно выжить только за счет гибкости. За счет того, что проект извивается, модифицируется и растет _быстро_.
если малые студии ниасилят модульное программирование и mvc - они так и останутся малыми студями с перспективой безвременного RIP.
>Но когда пользователи вдруг захотели чат, я просто взял готовый чат и поставил. Когда им захотелось блогов, не прошло и недели....
ясно, уровень определили :)
>Секрет успеха :)
это секрет успеха барыги, а не программера. Причем мелкий такой успех, которым можно гордиться в кругу таких же барыг, обладающих талантом находить лохов и впаривать им свои поделки за безумное бабло.
нет, против ничего не имею, каждый бабки делает как умеет. Как говорится, на карму не влияет ;)
я не знаю что там у вас пишут, у нас обычно люди пишут
import MySQLdb
db = MySQLdb.connect(....)
на этом кодинх заканчивается. поскольку все базы имеют унифицированный интерфейс, можно вызвать db=PostgreSQL.connect(....) либо какойнить там db=VeryCoolSQL.connect() и все будет роботать дальше.
вот из таких мелочей и состоит преимущество языка.
причем (интересный факт!) в php (с 5й версии) давно есть прекрасный объект mysqli, хранящий в себе даже несколько патчей от вашего покорного слуги, призванный собсна унифицировать всю эту котовасию. быдло - оно пишет на php 4! причем умудряется писать такие вещи которые в 5м почему-то не работают (сколько пытался - не получалось). у быдла свой язык - php4, потому что оно пришло когда появилась 4я версия а на 5ю переходить не собирается, кому охота ещо раз мозх насиловать.
так вот из-за этого быдла пхп _всегда_ будет версии 4.x. кому нужен php6 с тредами(?) и нативным юникодом. если быдло не умеет юзать даже объекты.
например в php5 есть прекрасный объект DOMDocument. который парсает тот же html без лишних вопросов и даже круче чем в питоне - 2 строчки, вызов одного объекта и html распарсан по DOM. что мне сказал очередной мой быдло кодер? конечна! ето аъценно трудна, я буду делать как всегда, и присобачил какое-то барахло типо как в питоне есть такой древний SGMLParser.
причина одна - есть мастера своего дела. которым не взападло развиваться. и есть то быдло которое выучило пхп чтоб подзаработать деньжат. они его не любят. а оно взаимно.
> если малые студии ниасилят модульное программирование и mvc - они так и останутся малыми студями с перспективой безвременного RIP.
Это так. Каждый новый проект уровнем выше. Мы это блюдем :) Например, начинали с платных SMS, потом пошли на рекламные акции, потом разработку MMORPG, потом вот уже серьезная CMS система для рекламных агенств, потом <секретно> для <секретно>, потом еще кое-что :)
> ясно, уровень определили :)
Ну да. Кому-то надо красивый код, а кому-то - "пипл хавает".
> Причем мелкий такой успех, которым можно гордиться в кругу таких же барыг, обладающих талантом находить лохов и впаривать им свои поделки за безумное бабло.
У вас есть секрет, как сделать свои первые 1 000 000 $ в интернете иным способом? Пирамиды? :)
> причина одна - есть мастера своего дела. которым не взападло развиваться. и есть то быдло которое выучило пхп чтоб подзаработать деньжат. они его не любят. а оно взаимно.
Тогда причём тут php? Меня лично четвёрка не интересует. Именно по причине наличия пятёрки. И будущей шестёрки.
Всё с Вами понятно, типа php язык для быдла, и никто php5 и php6 использовать не будет. Скорее всего Вы просто "ниасили" php5 и теперь всех под одну гребёнку.
Ну или же мания величия, типа я такой крутой, и только я на php могу нормально писать.
>Я смогу это повторить про C/C++, когда речь зайдёт об универсальных компиляторах общего назначения? Ибо php и VB - интерпритаторы.
а быдлокодеру как-то все равно потому давайте считать php=c++=езык. более того они учат быдлизму даже наших увожаемых клиентов. когда меня первый раз попросили написать "скрипт на сях" я уже не помню. но не так давно. раньше все-таки просили программы.
> > Реальные проекты предполагают сначала выяснение требований, оценку временных затрат и проектирование.
> В отношении заказчик - исполнитель. Да.
> В отношении собственного проекта - нет. Практически никогда. Иначе - все. Смерть.
Т.е. пишем бес проектирования, без выявления приоритетных фич, а так чтобы в проекте было побольше фич и не важно, что они не юзабельны и не востребованы? нуну
> Т.е. пишем бес проектирования, без выявления приоритетных фич, а так чтобы в проекте было побольше фич и не важно, что они не юзабельны и не востребованы? нуну
Нет. Без проектирования, но с выявлением приоритетных фич. И важно, чтобы эти фичи были востребованы.
Теперь более реальная задача - этот код должен возвращать список а не печатать. В питоне и руби мы только УБЕРЁМ ненужный код. А код на PHP C и.т.д. в студию. (Размер входного массива может быть любым).
Ruby:
[1,3,5,6,20].map {|v| v*v}.select {|v| v > 10}
Python:
[i for i in map(lambda x:x*x, [1,3,5,6,20]) if i > 10]
И свои и чужие вел, поэтому и удивляюсь, ибо не встречал еще ни одного человека (знающего что-то еще кроме php), который бы захотел использовать php по своей воле кроме как для прототипирования или разработки чего-либо сложнее cms или гесты.
> [1,3,5,6,20].map {|v| v*v}.select {|v| v > 10}.each {|v| puts v} - это прямой аналог знаменитого ls|sort|less. Или вы будете говорить, что и юникс маздай, а настоящие поцаны выбирают explorer.exe?
> И свои и чужие вел, поэтому и удивляюсь, ибо не встречал еще ни одного человека (знающего что-то еще кроме php), который бы захотел использовать php по своей воле кроме как для прототипирования или разработки чего-либо сложнее cms или гесты.
Была другая проблема. Я знаю PHP и Parser (ну и C). Другой программист - PHP и Python со словарем. Третий - PHP и Perl. Четвертый - PHP и все. Пятый знал только С, но его переучили, естественно, на PHP.
Так и получается, что при все богатстве выбора - другой альтернативы нет :)
Да и проект изначально представлял собой _готовый_ форум, который очень быстро оброс новыми модными фичами.
Вот собственно из этого примера и видно, что выбор в пользу PHP был обусловлен не реальными его преимуществами, а всего лишь незнанием существующих аналогов.
> Была другая проблема. Я знаю PHP и Parser (ну и C). Другой программист - PHP и Python со словарем. Третий - PHP и Perl. Четвертый - PHP и все. Пятый знал только С, но его переучили, естественно, на PHP.
Ну да, сишник и парсист не смогли осилить питон и перл :))))))))))
> Надо массив - итертатор есть, делай $result[$i].
Да это, блять, вообще незнание основ. Слушай, Ацелер, кто тебя обманул, что ты пхп знаешь???
правильно будет $result[] = ...
Но во первых это тебя не отмазывает, потому что я уже писал, что этот код на пхп все равно займет 4-6 строк, в зависимости от соблюдения правил хорошего тона. Если бы ты знал про анонимные функции и create_function, а также array_walk, array_map и еще из того же семейства, ты бы может сподобился написать пример на пхп в одну строчку. Просто проблема в том, что этот код будет выглядеть все равно фигово, потому что create_function нужно передать строку кода...
Но ты этого не знаешь! Как не знает и gloomdemon, и atrus и другие гуру, которые ахуеть знают пятый пхп, но никуя даже в четвертом не знают.
> foreach(array(10, 20, 30) as $item) {$item*=$item;($item>10)?$result[]=$item:'';};
Слушай, прочитай еще раз пост про хороший стиль в пхп и необходимость наличия отступов и переносов строк. Потом посмотри на пост про create_function, array_walk, array_map. А потом подумай почему в пхп все так хуево.
> foreach(array(10, 20, 30) as $item) {$item*=$item;($item>10)?$result[]=$item:'';};
Слушай, прочитай еще раз пост про хороший стиль в пхп и необходимость наличия отступов и переносов строк. Потом посмотри на пост про create_function, array_walk, array_map. А потом подумай почему в пхп все так хуево.
>анонимные функции и create_function, а также array_walk, array_map
Да, ну и покажи мне как с помощью array_walk ты напишешь это короче чем я предложил, и в одну строчку. Я не даром написал, про то что можно и про извратнее. Вот видно и вылезли на призыв.
>Упс. Ну тогда да не укладываеться это просто так в лист комприхэншс.
фключи моск (если есть).
[ write (e*e) for e in [1, 3, 8, 2, 8]]
или для извращенцев:
[ write (e) for e in [ ee * ee for ee in [1, 3, 8, 2, 8]] ]
в питоне и в рубях напрягает отсутствие объявления переменных ( НЕ ТИПОВ ПЕРЕМЕННЫХ, а ПЕРЕМЕННЫХ ). Это приводит к эффекту "полное или
частичное отсутствие local scope" (помимо необходимости self,
который еще можно терпеть, невыносимых @, @@, $ - бррррр!!! и трудно-
уловимых ошибок)
напрмер:
def outer():
x = 10
def inner():
print x
return inner
outer().inner()
работает, однако
def outer():
x = 10
def inner():
print x
x = 20
print x
return inner
outer().inner()
удивительным образом сосет. т.е. замыкание получается какое то read
only. (интересно как поведет себя подобный код в рубях)
А что, в PHP присваивание переменной $result значения сразу останавливает выполнение функции и возвращает значение? Не знал. Надо проверить. Всю жизнь пользовался return и как-то не надо было.
> Но ты этого не знаешь! Как не знает и gloomdemon, и atrus и другие гуру, которые ахуеть знают пятый пхп, но никуя даже в четвертом не знают.
Глупышь. Решения требовали в одну строчку. Я привёл наиболее короткое. C create_function будет длиннее.
> Но во первых это тебя не отмазывает, потому что я уже писал, что этот код на пхп все равно займет 4-6 строк, в зависимости от соблюдения правил хорошего тона.
Оставь эти правила кому-нибудь другому. Решение делается как надо. Если вы хотите извращений, вы их получете. И не надо отмазываться. Получается что Ruby насквозь извращенческий и никого не волнует, что там эти правила назначены как хороший тон.
> Хватит обсырать пхп, подлый засланец-парсертрист! А то все подумают, что пхп-кодеры полные бараны, что даже синтаксиса своего языка не знают!! > В посте выше брат глумдемон написал правильный пример с использованием $result[] = ... Протри глаза и иди дальше пиши на парсере.
На парсере как раз именно так :)
Ну значит, в моем примере надо было сделать $result_[$i]= вместо print и return $result_[]; либо $result[]=$result_;
подобные заявления идут от быдлопривычек быдлокодерства. за такие вещи в нормальных конторах яйца отрывают, ибо такой код не документировать не дебагить невозможно. нормальные люди делают - одно действие - одна строка. вот так мальшик.
Да, суки! ПХП самый лучший язык всех времен и народов!
Потому что на нем написан пхпбб! пхпНюк! ПыыыР и есче много полезного софта. А еще на нем дистр линакса делают и мы все ее себе поставим и будем все писать под нее скрипты и у нас все хорошо и мы вас всех неслышим.
А вы еще рубисты, питонисты и хренисты попроситесь к нам обратно, чтобы мы позволили на нашем лучшем языке сайты писать, но мы вам гордо скажем НЕТ!