Re: Почему PHP все ещи жив?!
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.11.10 16:12
Оценка: 1 (1)
Здравствуйте, quwy, Вы писали:

Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков?


Откуда такая кровожадность? Но лично для меня это приятнее ASP.NET.
Re: Почему PHP все ещи жив?!
От: Calc Россия  
Дата: 05.11.10 16:17
Оценка:
Здравствуйте, quwy, Вы писали:

Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков?

Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?

А почему php обсуждается абстрактно?
Может обсудить то, что обрабатывает php?
Fast-CGI
CGI
Mod-PHP
suPHP?
Re[2]: Почему PHP все ещи жив?!
От: Calc Россия  
Дата: 05.11.10 16:33
Оценка:
У меня
for($i = 0; $i < 1000000; ++$i) strtotime("next Sunday", 0);

13.977380990982 14.08549284935 Fast-cgi
14.915786981583 15.230484008789 mod_PHP

for($i = 0; $i < 1; ++$i) strtotime("next Sunday", 0);

9.918212890625E-5 Fast-CGI
0.00010204315185547 0.0071671009063721 mod_PHP
Re[6]: Почему PHP все ещи жив?!
От: Abalak США  
Дата: 05.11.10 16:58
Оценка:
Здравствуйте, Calc, Вы писали:

C>Здравствуйте, Abalak, Вы писали:


A>>Здравствуйте, quwy, Вы писали:


S>>>>и какая нужда заставила заняться гадостью?

Q>>>Деньги.

A>>За последние несколько недель встречаю второго человека, который взялся за пхп ради денег. Куда мир катится?


C>А за PHP и берутся ради денег...

C>Мне он деньги приносит, я доволен. Что еще нужно?

Я не спорю Просто мой знакомый до того момента вполне успешно зарабатывал дотнетом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[9]: Почему PHP все ещи жив?!
От: quwy  
Дата: 09.11.10 11:10
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Тест с strtotime: 64.84 user 66.24 system 2:12.13 elapsed (~132s)

AB>Тест с решением выше: 26.74 user 0.02 system 0:26.95 elapsed (~27s)
AB>Т.е. типа ускорили в ~5 раз. Хотя я мог допустить грубую ошибку где-то, т.к. под утро голова не соображает.
Вы не поняли. Я написал аналог, который принимает на вход строки так же, как это делает strtotime(). Хотя похоже придется написать отдельные функции типа вашей.

q>> P.P.S. В какой версии функция crc32() научится принимать значение от предыдущей итерации, чтобы можно было посчитать CRC чего-нибудь большего, чем фразы "Hello world" не используя своей php-реализации с потерей 95% производительности? Почему мне нужно реализовывать хитровывернутый (и, как следствие -- тормозной, ибо писать его приходится на том же php) алгоритм объединения двух независимых CRC в один?

AB>hash_file?
А если мне не файл? Если мне нужно посчитать сумму блоба или иного потока большого размера? Писать на диск? Да и появилось это аж в 5.1.2, до этого даже файл без тормозов посчитать нельзя было (напомню, что у многих хостингов используется и более ранние версии PHP).
Re[2]: Почему PHP все ещи жив?!
От: Vamp Россия  
Дата: 09.11.10 15:12
Оценка:
Я PHP не знаю. Но знаю Perl — а PHP это, как мне кажется, уродливый перл. Если это не так — мои ответы не имеют смысла.

Q>1. Полный разнобой в стандартных функциях.

В смысле?

Q>1.1. Постоянно используются разные нотации.

В смысле?

Q>1.2. Порядок параметров (объект/субъект операции) всегда разный.

Пример?

Q>2. Кривая динамическая типизация.


Q>2.1. Почему после присвоения $Str = '123456';, Str имеет предпочтительный тип int, а не string?

Что ты понимаешь под "предпочтительным" типом? Тип определяется операцией.

Q>3. Неадекватное поведение интерпретатора.

А именно?

Q>3.1. Зачем, если fopen() не удалось открыть файл, гадить в stdout своими мусорными ворнингами? Ф-ция возвращает ошибку, я ее сам обработаю! (про @ я в курсе)

Не должен. Это полный бред.

Q>3.2. Почему нельзя индексировать непосредственно возвращаемый ф-цией массив?

Почему нельзя?


Q>4. Идиотизм синтаксиса.

Q>4.1. Нахрена доллары?
Наследие шелла, где доллар означает обращение к переменной.

Q>4.2. Почему нет структур? (ассоциативный массив -- это не структура!)

Не нужны при наличии ассоциативных массивов.

Q>4.3. Почему нет перечислений?

А где они есть, кроме Паскаля?

Q>4.3.1. Почему регистр "заменяющих" перечисления строк в разных местах разный?

Чего?

Q>4.5. Почему вообще для этого языка был выбран C-подобный синтаксис? Тут гораздо уместнее был бы BASIC или Паскаль.

Это perl
Да здравствует мыло душистое и веревка пушистая.
Re[5]: Почему PHP все ещи жив?!
От: carpenter Голландия  
Дата: 09.11.10 15:35
Оценка: +1 :))
Здравствуйте, Anton Batenev, Вы писали:


AB>утекшая память освобождается со смертью обработчика.


прочитал — со смертью разработчика — много думал
Весь мир — Кремль, а люди в нем — агенты
Re[3]: Почему PHP все ещи жив?!
От: Mamut Швеция http://dmitriid.com
Дата: 09.11.10 16:23
Оценка: 4 (2) +1
V>Я PHP не знаю. Но знаю Perl — а PHP это, как мне кажется, уродливый перл. Если это не так — мои ответы не имеют смысла.

Q>>1. Полный разнобой в стандартных функциях.

V>В смысле?

В прямом. Половина — с C-синтаксисом, другая — с перловым. Часть функций есть, части функций нет или появляются очень поздно (date_add), три или четыре способа подключаться к мускулю и работать с ним

Q>>1.1. Постоянно используются разные нотации.

V>В смысле?


то camelCase, то_подчеркивания, то скрщнзвния, то скрщ_нзвания, то полные_названия то вообще какая-то хрень

Q>>1.2. Порядок параметров (объект/субъект операции) всегда разный.

V>Пример?

http://php.net/array_map vs. http://php.net/array_filter

Q>>2. Кривая динамическая типизация.


Q>>2.1. Почему после присвоения $Str = '123456';, Str имеет предпочтительный тип int, а не string?

V>Что ты понимаешь под "предпочтительным" типом? Тип определяется операцией.

Нифига он не определяется операцией. == в РНР ведет себя, как хочет. Даже в документации описано.

Q>>3.2. Почему нельзя индексировать непосредственно возвращаемый ф-цией массив?

V>Почему нельзя?

Потому что нельзя
$a = call_my_fnction()[1]; //oops


dmitriid.comGitHubLinkedIn
Re[4]: Почему PHP все ещи жив?!
От: Vamp Россия  
Дата: 09.11.10 16:29
Оценка:
M>В прямом...
То есть, все это реально сильно хуже чем perl? Тогда я тоже не понимаю, почему PHP есть, когда имеем Perl и mod_perl?
Да здравствует мыло душистое и веревка пушистая.
Re[5]: Почему PHP все ещи жив?!
От: Mamut Швеция http://dmitriid.com
Дата: 09.11.10 21:22
Оценка: +1
M>>В прямом...
V>То есть, все это реально сильно хуже чем perl? Тогда я тоже не понимаю, почему PHP есть, когда имеем Perl и mod_perl

Потому что при всем при том он легче, чем перл


dmitriid.comGitHubLinkedIn
Re[6]: Почему PHP все ещи жив?!
От: Vamp Россия  
Дата: 09.11.10 21:24
Оценка:
M>Потому что при всем при том он легче, чем перл
В каком смысле "легче"?
Да здравствует мыло душистое и веревка пушистая.
Re[7]: Почему PHP все ещи жив?!
От: Mamut Швеция http://dmitriid.com
Дата: 09.11.10 21:27
Оценка:
M>>Потому что при всем при том он легче, чем перл
V>В каком смысле "легче"?

В том, что, по сути, для в PHP есть только один способ сделать что-то, а не несколько, как в Перле Ну и синтаксис даже в самых жтких комбинациях вполне читаем, в отличие от жутких комбинаций перла


dmitriid.comGitHubLinkedIn
Re[10]: Почему PHP все ещи жив?!
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.11.10 21:52
Оценка:
Здравствуйте, quwy, Вы писали:

q> AB>hash_file?

q> А если мне не файл? Если мне нужно посчитать сумму блоба или иного потока большого размера?

stream_filter_register, а поток сделать или прямо, если возможно, или через php://temp
А вообще, "все — есть файл".

q> Да и появилось это аж в 5.1.2, до этого даже файл без тормозов посчитать нельзя было (напомню, что у многих хостингов используется и более ранние версии PHP).


Версия 5.1.2 была выпущена 12 января 2006 года. Странно, что ты не вспомнил 4-ю ветку. Многие хостеры уже навзрыд плачут от нее, но не могут отказаться потому что хомячки мозг съедят потом, т.к. не осилили.
avalon 1.0rc3 rev 366, zlib 1.2.3
Re[6]: Почему PHP все ещи жив?!
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.11.10 22:07
Оценка:
Здравствуйте, carpenter, Вы писали:

c> AB>утекшая память освобождается со смертью обработчика.

c> прочитал — со смертью разработчика — много думал

Тоже вариант
avalon 1.0rc3 rev 366, zlib 1.2.3
Re[3]: Почему PHP все ещи жив?!
От: quwy  
Дата: 09.11.10 22:47
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Я PHP не знаю. Но знаю Perl — а PHP это, как мне кажется, уродливый перл. Если это не так — мои ответы не имеют смысла.

Тут уже частично ответили, но я таки дополню.

Q>>2.1. Почему после присвоения $Str = '123456';, Str имеет предпочтительный тип int, а не string?

V>Что ты понимаешь под "предпочтительным" типом? Тип определяется операцией.
Если $Str может быть истолковано и как int и как string, то PHP предпочтет int. Вот этот код сработает неправильно:
$Str = '123';
$Pos = strpos('Value is {123} units', $Str);

А все потому, что strpos(): "If needle is not a string, it is converted to an integer and applied as the ordinal value of a character". Выходит, что еще при присвоении значения переменной, на кавычки был забит болт в надежде, что когда будет нужна строка, тогда int снова сконвертим в строку. Про затрачиваемое на подобные изыски время я молчу, в данном случае гораздо хуже, что программа ведет себя неадекватно.

Q>>3.1. Зачем, если fopen() не удалось открыть файл, гадить в stdout своими мусорными ворнингами? Ф-ция возвращает ошибку, я ее сам обработаю! (про @ я в курсе)

V>Не должен. Это полный бред.
Однако тем не менее. Отключить конечно можно, но тогда и полезные ворнинги исчезают (например о выходе за границу массива).

Q>>4.1. Нахрена доллары?

V>Наследие шелла, где доллар означает обращение к переменной.
Когда это PHP шеллом выполнялся?

Q>>4.2. Почему нет структур? (ассоциативный массив -- это не структура!)

V>Не нужны при наличии ассоциативных массивов.
Нужны. Во-первых цена ассоциативного массива слишком высока. Во-вторых структура предсказуема. В-третьих структура позволяет безгеморройно обмениваться данными с внешним миром.

Q>>4.3. Почему нет перечислений?

V>А где они есть, кроме Паскаля?
В C/C++/C# есть. Даже в VB есть. Его только во всяких скриптовых "язычках" нет.

Q>>4.3.1. Почему регистр "заменяющих" перечисления строк в разных местах разный?

V>Чего?
filetype() возвращает нижний регистр: 'dir', 'file' и т.п.
поле subtype возвращаемого imap_fetchstructure() объекта идет в верхнем регистре: 'PLAIN', 'HTML' и т.п..
php неадекват
Re[2]: Почему PHP все ещи жив?!
От: Alex EXO http://aleksandr-zubarev.moikrug.ru/
Дата: 10.11.10 03:17
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Исторический фактор давит (типа Facebook сделан на PHP)
Это миф. У Facebook на PHP сделан только рендеринг страниц.
Логика — на Erlang, системные части — на C++
Re[4]: Почему PHP все ещи жив?!
От: neFormal Россия  
Дата: 10.11.10 08:45
Оценка:
Здравствуйте, quwy, Вы писали:

Q>>>4.2. Почему нет структур? (ассоциативный массив -- это не структура!)

V>>Не нужны при наличии ассоциативных массивов.
Q>Нужны. Во-первых цена ассоциативного массива слишком высока. Во-вторых структура предсказуема. В-третьих структура позволяет безгеморройно обмениваться данными с внешним миром.

а структура была бы сделана через тот же ассоциативный массив.. значит не нужно..
...coding for chaos...
Re: Почему PHP все ещи жив?!
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.10 21:00
Оценка:
Здравствуйте, quwy, Вы писали:

Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков?


Потому что тормозное косорылое угробище отлично сочетается с ламерами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Почему PHP все ещи жив?!
От: Mamut Швеция http://dmitriid.com
Дата: 11.11.10 21:55
Оценка:
AE>Здравствуйте, gandjustas, Вы писали:
G>>Исторический фактор давит (типа Facebook сделан на PHP)
AE>Это миф. У Facebook на PHP сделан только рендеринг страниц.
AE>Логика — на Erlang, системные части — на C++

логика вообще неизвестно на чем. скорее всего на всем, что есть в facebook'е. на erlang'е — чат


dmitriid.comGitHubLinkedIn
Re[2]: Почему PHP все ещи жив?!
От: quwy  
Дата: 13.11.10 00:04
Оценка:
Здравствуйте, Calc, Вы писали:

C>Написано очень много документации и не нужно ничего настраивать, чтоб работало с httpd хоть под виндой, хоть под линухой и т.д.

Замечательно! А теперь курим простую и банальную функцию fnmatch(). Занимательно, php-девелоперы не нашли ее аналога в WinAPI и тупо забили! В итоге имеем скриптовый язык, у которого под разными платформами разный набор базовых функций. Круто, блин. И это при том, что ее ручная реализация у меня заняла ровно 30 строк php-кода (без использования регекспов).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.