Почему это тормозное косорылое угробище не сгинуло во тьме веков?
Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Здравствуйте, Smooky, Вы писали:
S>Для этого надо более всесторонне развиваться... Если бы человек знал хоть немного историю возникновения PHP, большинство вопросов бы отпало.
Знаете, мне до лампочки вся эта ваша история развития. Я взял в руки инструмент, а он оказался говенным. Пример для танкистов: мне на работе дали плоскогубцы, а у них рукоятки с острыми зубцами по всей длине. Но на мой вопрос "какого хрена и как ими пользоваться?" вместо признания очевидной ущербности этого "инструмента", мне начинают рассказывать душещипательную историю о том, как эти плоскогубцы постепенно развивались из двуручной пилы.
S>И так же замечу, что у большинства почему та PHP ассоциируется только в разработке web приложений, хотя он прекрасно работает не в контексте веб сервера, а как самостоятельный интерпретатор с командной строки шелла.
Ну да, ну да. Еще на нем можно гуишные оконные приложения делать. Вот только зачем мне троллейбус из буханки хлеба?
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>Почему нельзя?
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Развитие ЯП и средств разработки всегда шло в направлении более удобной разработки. Особенно в областях где важна — скорость выпуска работающего ПО.
И не только их. Когда-то шофер — это была эксклюзивная профессия. Сейчас любой пацан может завести автомобиль и поехать.
Фотоаппарат, бытовые мед приборы — так же.
Во тьме веков сгинет хаскель, может быть, оставив нечто полезное в виде вкраплений в массово применяемых ЯП.
"Эволюция выбирает не лучшее, а более приспособленное к действительности"
Здравствуйте, quwy, Вы писали:
Q>Здравствуйте, Calc, Вы писали:
C>>Написано очень много документации и не нужно ничего настраивать, чтоб работало с httpd хоть под виндой, хоть под линухой и т.д. Q>Замечательно! А теперь курим простую и банальную функцию fnmatch(). Занимательно, php-девелоперы не нашли ее аналога в WinAPI и тупо забили! В итоге имеем скриптовый язык, у которого под разными платформами разный набор базовых функций. Круто, блин. И это при том, что ее ручная реализация у меня заняла ровно 30 строк php-кода (без использования регекспов).
не вижу проблемы.
Документация ясно говорит, что такой функции нету. Даже написано как это можно обойти.
Т.е. доки рулят.
Если есть возможность использовать плюс системы, то надо его использовать.
И можно закончить разговор на том, что файловая система в POSIX и non-POSIX ой как сильно различается, так что логично предположить, что различия будут.
Здравствуйте, Mamut, Вы писали:
M>>>В прямом... V>>То есть, все это реально сильно хуже чем perl? Тогда я тоже не понимаю, почему PHP есть, когда имеем Perl и mod_perl
M>Потому что при всем при том он легче, чем перл
+
Пхп хоть и дурацкий, но простой. Перл же просто взрывает мозг. Читать даже свои исходники на нем трудно, а чужие почти невозможо.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
AB>Я не об этом. Я о том, что много утечь за время жизни обработчика не сможет. К тому же, у php есть "родное" ограничение по потреблению памяти.
Это не самое лучшее оправдание языку, которому недоступно управление памятью вручную. Представляешь срач, если бы java допускала утечку реальной памяти при вызове каких-либо методов, или вообще любая утечка, не связанная с неконтролируемым помещением ненужных объектов в живые коллекции(что, по сути, тупо косяк программиста, причем грубый, но легко ловимый)?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, quwy, Вы писали:
q> Шела нет, system() запрещен. У клиента там большой проект, переезжать он не будет ни на другой хостинг, ни на другой php. Так что бага в моем случае перманентная, а судя по багтрекеру, совсем не новая.
Сочувствую. Но там, где нет шелла и запрещен вызов system/popen/exec/etc разговор об альтернативных языках для веба типа питона/руби вообще лишен смысла. Так же у меня не вяжется словосочетание "большой проект" и "shared hosting" — выделенный сервер стоит всего 1500 рублей в месяц и большой проект наверняка его окупит с лихвой.
q> P.S. Написал свой вариант "следующего воскресенья" и других подобных вызовов, скорость процессинга данных упала на 40%. Сабж.
"Наивное" решение, которое не работает в первой неделе 1970 года и исходит из постулата, что в секунду координации значения UNIX time повторяются:
Тест с strtotime: 64.84 user 66.24 system 2:12.13 elapsed (~132s)
Тест с решением выше: 26.74 user 0.02 system 0:26.95 elapsed (~27s)
Т.е. типа ускорили в ~5 раз. Хотя я мог допустить грубую ошибку где-то, т.к. под утро голова не соображает.
q> P.P.S. В какой версии функция crc32() научится принимать значение от предыдущей итерации, чтобы можно было посчитать CRC чего-нибудь большего, чем фразы "Hello world" не используя своей php-реализации с потерей 95% производительности? Почему мне нужно реализовывать хитровывернутый (и, как следствие -- тормозной, ибо писать его приходится на том же php) алгоритм объединения двух независимых CRC в один?
S>И так же замечу, что у большинства почему та PHP ассоциируется только в разработке web приложений, хотя он прекрасно работает не в контексте веб сервера, а как самостоятельный интерпретатор с командной строки шелла.
Ну вот там он точно не нужен.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Недавно посетил семинар Байдачного (евангелист в Украине) по продуктам компании Майкрософт. Одна из тем — WebMatrix.
Прикол в том, что Майкрософт проанализировала количество сайтов написанных на ASP.NET и PHP. На последнем оказалось на порядок более. В итоге майкрософт выпускает платформу под названием WebMatrix.
Целевая группа — нубы.
Новшества — IIS поддерживает php + в инсталяхе серверной части встроены куча движков: джумла, вордпресс etc Главное новшество — поддержка лапши аля "код C# или PHP вперемешку с HTML". Теперь бокопорить станет легче.
Здравствуйте, Гест, Вы писали:
Q>>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда? Г>В пользу, например, чего?
Сейчас линуксоиды подтянутся, объяснят
Здравствуйте, quwy, Вы писали:
Q>Здравствуйте, Гест, Вы писали:
Q>>>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>>>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда? Г>>В пользу, например, чего? Q>Сейчас линуксоиды подтянутся, объяснят
S>Прикол в том, что Майкрософт проанализировала количество сайтов написанных на ASP.NET и PHP. На последнем оказалось на порядок более. В итоге майкрософт выпускает платформу под названием WebMatrix.
WebMatrix-у уже много лет
S>Новшества — IIS поддерживает php
Он уже 10 лет его поддерживает
S>Главное новшество — поддержка лапши аля "код C# или PHP вперемешку с HTML". Теперь бокопорить станет легче.
Вы про ASP.NET MVC что ли? ))
Поясню немного свое негодование. Я с этой дрянью столкнулся буквально вчера. До этого проносило как-то. Что сразу бросилось в глаза и заставило тупо сидеть и материться:
1. Полный разнобой в стандартных функциях.
1.1. Постоянно используются разные нотации.
1.2. Порядок параметров (объект/субъект операции) всегда разный.
2. Кривая динамическая типизация.
2.1. Почему после присвоения $Str = '123456';, Str имеет предпочтительный тип int, а не string?
3. Неадекватное поведение интерпретатора.
3.1. Зачем, если fopen() не удалось открыть файл, гадить в stdout своими мусорными ворнингами? Ф-ция возвращает ошибку, я ее сам обработаю! (про @ я в курсе)
3.2. Почему нельзя индексировать непосредственно возвращаемый ф-цией массив?
3.3. Теряет память!
4. Идиотизм синтаксиса.
4.1. Нахрена доллары?
4.2. Почему нет структур? (ассоциативный массив -- это не структура!)
4.3. Почему нет перечислений?
4.3.1. Почему регистр "заменяющих" перечисления строк в разных местах разный?
4.4. Работа с бинарными данными -- это сказка!
4.5. Почему вообще для этого языка был выбран C-подобный синтаксис? Тут гораздо уместнее был бы BASIC или Паскаль.
5. Даунские стандартные библиотеки.
5.1. Большинство библиотек вообще непригодны для обработки данных, которое целиком не умещаются в память.
5.2. Что за дурацкий способ нумерации частей POP3-сообщения в либе php_imap?
5.2.1. Почему тело сообщения [text/plain] имеет номер '1', а часть [multipart/mixed->multipart/alternative->text/plain] -- 'x.y', хотя по нормальной рекурсивной логике он должен быть '1.x.y'?
5.2.2. Почему не работает imap_delete($Conn, $Header->Msgno); пока не триманещь Msgno?
6. Обычное дело, когда размещенные php.net примеры кода совершенно неработоспособны.
7. Почему же он такой тормозной? Как будто вернулся на пятнадцать лет назад!
P.S. Это я еще ООП не пробовал и с большинством библиотек дела не имел...
Г>Т.е. сами вы не знаете? Понятно, следующий.
Знаю. Вот только это к разговору отношения не имеет. Если в организме есть опухоль, то ее нужно удалять не задумываясь о том, чем занять освободившееся место.
Q>>Поясню немного свое негодование. Я с этой дрянью столкнулся буквально вчера. До этого проносило как-то. S>На чем таком чудесном и сколько лет, писали до этого
asm, C, Delphi/Pascal
S>и какая нужда заставила заняться гадостью?
Деньги.
S>Я правда php не знаю, но список претензий схож на любые претензии новичка к Java, C#, C++, Ruby, Python и т.д.
Я не знаю руби с питонами, в жабе да, тоже с API беда была. А вот в других приведенных языках таких масштабов и близко нет.
S>у C++ память течет
Только по вине быдлокодера. В php же память течет сама по себе.
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров?
Исторический фактор. На php написано куча CMS и тому подобных систем. Это позволяет создавать новые сайты на существующих движках, повышая спрос PHP.
Q>И получается он будет жить всегда?
Нет, со временем выдавят более современные платформы, но пока у них плохо получается. Исторический фактор давит (типа Facebook сделан на PHP)
Здравствуйте, QrystaL, Вы писали:
S>>Прикол в том, что Майкрософт проанализировала количество сайтов написанных на ASP.NET и PHP. На последнем оказалось на порядок более. В итоге майкрософт выпускает платформу под названием WebMatrix. QL>WebMatrix-у уже много лет
S>>Новшества — IIS поддерживает php QL>Он уже 10 лет его поддерживает
К сожалению я не владею глубокими познаниями в администрировании IIS, но со слов того же Байдачного — скорость выполнения PHP скриптов существенно возросла в Windows server 2008.
S>>Главное новшество — поддержка лапши аля "код C# или PHP вперемешку с HTML". Теперь бокопорить станет легче. QL>Вы про ASP.NET MVC что ли? )) QL>Вобщем не пишите о том, чего не понимаете
При чем ASP.NET MVC к лапше HTML+PHP? Не понимаете — не пишите. Даю хинт: .cshtml
Здравствуйте, quwy, Вы писали:
q> Только по вине быдлокодера. В php же память течет сама по себе.
Даже если это так (в чем меня берут некоторые сомнения), это не является проблемой для веб-приложений — утекшая память освобождается со смертью обработчика.
Здравствуйте, quwy, Вы писали:
Q>Знаю. Вот только это к разговору отношения не имеет. Если в организме есть опухоль, то ее нужно удалять не задумываясь о том, чем занять освободившееся место.
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Ну да. Из-за максимально низкого порога вхождения для небольших говносайтов сайтов ничего другого не будет. Ибо людям нужны сайты по 20 баксов, которые можно втулить на условно-бесплатный шаред хостинг. И есть те, кто за 20 баксов их готов клепать. В этой нише альтернативы нет.
А потом школьники выростают, и есть вероятность появления даже более крупных проектов.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, quwy, Вы писали:
Q>Здравствуйте, Гест, Вы писали:
Q>>>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>>>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда? Г>>В пользу, например, чего? Q>Сейчас линуксоиды подтянутся, объяснят
А линуксоиды-то к ПХП каким боком?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
S>При чем ASP.NET MVC к лапше HTML+PHP? Не понимаете — не пишите. Даю хинт: .cshtml
Microsoft has recently introduced the first beta of its new stack for building great web sites – WebMatrix. One of the key components of WebMatrix is the ASP.Net Web Pages “Razor” Syntax (or simply: CSHTML) that lets you write C# code inside the HTML markup.
ASP.NET MVC этот Razor и использует
И где тут HTML+PHP? ))
Здравствуйте, QrystaL, Вы писали:
S>>При чем ASP.NET MVC к лапше HTML+PHP? Не понимаете — не пишите. Даю хинт: .cshtml
QL>
QL>Microsoft has recently introduced the first beta of its new stack for building great web sites – WebMatrix. One of the key components of WebMatrix is the ASP.Net Web Pages “Razor” Syntax (or simply: CSHTML) that lets you write C# code inside the HTML markup.
QL>ASP.NET MVC этот Razor и использует QL>И где тут HTML+PHP? ))
Если бы я написал "Хинт .php" было бы не так понятно. А теперь Вы сами нашли цитату:
that lets you write C# code inside the HTML markup
я скажу по секрету, что есть возможность писать и php+html в одном файле.
Кроме того, ASP.NET MVC может использовать не только Razor а например и MasterPages. Если я где-то упомяну о MasterPages Вы опять мне напишете "это ASP.NET MVC чтоли?"
А если по сути, и вернуться к вопросу темы, то фича с лапшой придумана чтобы заманить нубов легкостью создания первой в жизни страницы.
Здравствуйте, Anton Batenev, Вы писали:
q>> Только по вине быдлокодера. В php же память течет сама по себе. AB>Даже если это так (в чем меня берут некоторые сомнения)
Это так. При массированной работе с mysql, убегает только в путь (все результаты выборки дестрою и соединения разрываю).
AB>это не является проблемой для веб-приложений — утекшая память освобождается со смертью обработчика.
Ну конечно, вообще проблема утечек памяти надумана, гигабайты ныне копейки стоят.
S>я скажу по секрету, что есть возможность писать и php+html в одном файле.
Когда я писал на РНР, то так и делал ))
S>А если по сути, и вернуться к вопросу темы, то фича с лапшой придумана чтобы заманить нубов легкостью создания первой в жизни страницы.
Ну или чтобы выбор был ) Кому от этого хуже будет? ))
Здравствуйте, Lloyd, Вы писали:
Q>>У меня утекает со скоростью примерно 500 КБ/сек, красота! L>В реальном использовании это не будет проблемой, т.к. по завершении запроса вся память все-равно будет выброшена.
У меня реальные условия и из-за этой фигни скрипт вылетает на хостинге.
Здравствуйте, quwy, Вы писали:
L>>В реальном использовании это не будет проблемой, т.к. по завершении запроса вся память все-равно будет выброшена. Q>У меня реальные условия и из-за этой фигни скрипт вылетает на хостинге.
пациент: доктор, когда я делаю вот так, то мне больно
доктор: пациент, не делайте так
Здравствуйте, quwy, Вы писали:
q> q>> Только по вине быдлокодера. В php же память течет сама по себе. q> AB>Даже если это так (в чем меня берут некоторые сомнения) q> Это так. При массированной работе с mysql, убегает только в путь (все результаты выборки дестрою и соединения разрываю).
Пример для воспроизведения проблемы можно?
q> AB>это не является проблемой для веб-приложений — утекшая память освобождается со смертью обработчика. q> Ну конечно, вообще проблема утечек памяти надумана, гигабайты ныне копейки стоят.
Я не об этом. Я о том, что много утечь за время жизни обработчика не сможет. К тому же, у php есть "родное" ограничение по потреблению памяти.
Здравствуйте, Eugeny__, Вы писали:
E> Это не самое лучшее оправдание языку, которому недоступно управление памятью вручную.
Почему же недоступно. Управление памятью доступно на уровне объектов самого языка.
E> Представляешь срач, если бы java допускала утечку реальной памяти при вызове каких-либо методов
А почему ты уверен, что JVM этого не может допустить?
Здравствуйте, Anton Batenev, Вы писали:
E>> Это не самое лучшее оправдание языку, которому недоступно управление памятью вручную.
AB>Почему же недоступно. Управление памятью доступно на уровне объектов самого языка.
E>> Представляешь срач, если бы java допускала утечку реальной памяти при вызове каких-либо методов
AB>А почему ты уверен, что JVM этого не может допустить?
Найди мне хоть один пруф. Допустить теоретически — может. Практически же прецедентов не было.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, Anton Batenev, Вы писали:
E>> Представляешь срач, если бы java допускала утечку реальной памяти при вызове каких-либо методов AB>А почему ты уверен, что JVM этого не может допустить?
В JVM как таковой утечки возможны из-за:
1) Случайно оставленных живых ссылок.
2) Нативного кода, оставляющего живые ссылки.
3) Багов в JVM.
Третий пункт тоже встречался в истории, но очень редко. Он считался критической багой.
Нативного кода в приложениях на Java не так много, так что пункт 2 не такой острый.
Здравствуйте, Anton Batenev, Вы писали:
q>> У меня реальные условия и из-за этой фигни скрипт вылетает на хостинге. AB>У тебя версия php 5.2.8 или ранее (5.2.9 выпущена до 26 февраля 2009)?
5.2.14 от Jul 27 2010 10:47:27. И не у меня, а на хостинге, так что обновить (даже если будет на что) не выйдет.
Здравствуйте, quwy, Вы писали:
q> 5.2.14 от Jul 27 2010 10:47:27. И не у меня, а на хостинге, так что обновить (даже если будет на что) не выйдет.
Ага, нашел. В 5.3.3 баг уже не воспроизводится, а для старых версий заведены баги #46889 и #47285 — можешь в последний добавить свой комментарий по воспроизводимости, но есть сомнение, что кто-то будет чинить устаревшую версию (хотя ветка 5.2 упорно цепляется за жизнь ввиду множественных отличий от 5.3, но ее смерть неизбежна).
Если посмотреть на ChangeLog, то можно увидеть, что ошибки исправляются, вносятся новые — в общем идет развитие.
Как вариант, собрать на хостинге собственную сборку php и назначить ее в качестве обработчика.
Здравствуйте, Anton Batenev, Вы писали:
AB>Как вариант, собрать на хостинге собственную сборку php и назначить ее в качестве обработчика.
Шела нет, system() запрещен. У клиента там большой проект, переезжать он не будет ни на другой хостинг, ни на другой php. Так что бага в моем случае перманентная, а судя по багтрекеру, совсем не новая.
P.S. Написал свой вариант "следующего воскресенья" и других подобных вызовов, скорость процессинга данных упала на 40%. Сабж.
P.P.S. В какой версии функция crc32() научится принимать значение от предыдущей итерации, чтобы можно было посчитать CRC чего-нибудь большего, чем фразы "Hello world" не используя своей php-реализации с потерей 95% производительности? Почему мне нужно реализовывать хитровывернутый (и, как следствие -- тормозной, ибо писать его приходится на том же php) алгоритм объединения двух независимых CRC в один?
Re[4]: почему в вебе распространены именно динамические язык
Здравствуйте, quwy, Вы писали:
S>>и какая нужда заставила заняться гадостью? Q>Деньги.
Вот потому и жив
Если бы люди не думали о деньгах, то есть о хлебе насущном, мноооого чего в мире было бы по другому.
S>>у C++ память течет Q>Только по вине быдлокодера
Да-да, старая пестня — если бы программисты не были бы людьми, то ...
Только получается — быдлокодер получает деньги за php и жабу, а гений на С++ вынужден голодать.
Такая вот несправедливость мировая — за разную квалификацию — приблизительно одна и та же оплата
Здравствуйте, Abalak, Вы писали:
A>Здравствуйте, quwy, Вы писали:
S>>>и какая нужда заставила заняться гадостью? Q>>Деньги.
A>За последние несколько недель встречаю второго человека, который взялся за пхп ради денег. Куда мир катится?
А за PHP и берутся ради денег...
Мне он деньги приносит, я доволен. Что еще нужно?
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
Написано очень много документации и не нужно ничего настраивать, чтоб работало с httpd хоть под виндой, хоть под линухой и т.д.
У меня сервер IPтелефонии работает на asterisk, админка на php, статистика в mysql. Знаю что будет работать и на Linux и на Wondows без особых затрат времени. Разница только в планировщике задач, в linux это crond
Здравствуйте, quwy, Вы писали:
Q>Почему это тормозное косорылое угробище не сгинуло во тьме веков? Q>Причины? Зашкаливающее количество неграмотных школокодеров? И получается он будет жить всегда?
А почему php обсуждается абстрактно?
Может обсудить то, что обрабатывает php?
Fast-CGI
CGI
Mod-PHP
suPHP?
Здравствуйте, Calc, Вы писали:
C>Здравствуйте, Abalak, Вы писали:
A>>Здравствуйте, quwy, Вы писали:
S>>>>и какая нужда заставила заняться гадостью? Q>>>Деньги.
A>>За последние несколько недель встречаю второго человека, который взялся за пхп ради денег. Куда мир катится?
C>А за PHP и берутся ради денег... C>Мне он деньги приносит, я доволен. Что еще нужно?
Я не спорю Просто мой знакомый до того момента вполне успешно зарабатывал дотнетом.
Здравствуйте, 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).
Я 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
M>>Потому что при всем при том он легче, чем перл V>В каком смысле "легче"?
В том, что, по сути, для в PHP есть только один способ сделать что-то, а не несколько, как в Перле Ну и синтаксис даже в самых жтких комбинациях вполне читаем, в отличие от жутких комбинаций перла
Здравствуйте, quwy, Вы писали:
q> AB>hash_file? q> А если мне не файл? Если мне нужно посчитать сумму блоба или иного потока большого размера?
stream_filter_register, а поток сделать или прямо, если возможно, или через php://temp
А вообще, "все — есть файл".
q> Да и появилось это аж в 5.1.2, до этого даже файл без тормозов посчитать нельзя было (напомню, что у многих хостингов используется и более ранние версии PHP).
Версия 5.1.2 была выпущена 12 января 2006 года. Странно, что ты не вспомнил 4-ю ветку. Многие хостеры уже навзрыд плачут от нее, но не могут отказаться потому что хомячки мозг съедят потом, т.к. не осилили.
Здравствуйте, 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' и т.п..
Здравствуйте, gandjustas, Вы писали: G>Исторический фактор давит (типа Facebook сделан на PHP)
Это миф. У Facebook на PHP сделан только рендеринг страниц.
Логика — на Erlang, системные части — на C++
Здравствуйте, quwy, Вы писали:
Q>>>4.2. Почему нет структур? (ассоциативный массив -- это не структура!) V>>Не нужны при наличии ассоциативных массивов. Q>Нужны. Во-первых цена ассоциативного массива слишком высока. Во-вторых структура предсказуема. В-третьих структура позволяет безгеморройно обмениваться данными с внешним миром.
а структура была бы сделана через тот же ассоциативный массив.. значит не нужно..
AE>Здравствуйте, gandjustas, Вы писали: G>>Исторический фактор давит (типа Facebook сделан на PHP) AE>Это миф. У Facebook на PHP сделан только рендеринг страниц. AE>Логика — на Erlang, системные части — на C++
логика вообще неизвестно на чем. скорее всего на всем, что есть в facebook'е. на erlang'е — чат
Здравствуйте, Calc, Вы писали:
C>Написано очень много документации и не нужно ничего настраивать, чтоб работало с httpd хоть под виндой, хоть под линухой и т.д.
Замечательно! А теперь курим простую и банальную функцию fnmatch(). Занимательно, php-девелоперы не нашли ее аналога в WinAPI и тупо забили! В итоге имеем скриптовый язык, у которого под разными платформами разный набор базовых функций. Круто, блин. И это при том, что ее ручная реализация у меня заняла ровно 30 строк php-кода (без использования регекспов).
Здравствуйте, Alex EXO, Вы писали:
AE>Здравствуйте, gandjustas, Вы писали: G>>Исторический фактор давит (типа Facebook сделан на PHP) AE>Это миф. У Facebook на PHP сделан только рендеринг страниц. AE>Логика — на Erlang, системные части — на C++
Здравствуйте, Alex EXO, Вы писали:
AE>Здравствуйте, gandjustas, Вы писали: G>>Исторический фактор давит (типа Facebook сделан на PHP) AE>Это миф. У Facebook на PHP сделан только рендеринг страниц. AE>Логика — на Erlang, системные части — на C++
На Erlang — только чат. Erlang — сам-в-себе миф.
А вообще, там не PHP а HipHop уже:
"HipHop allows us to write the logic that does the final page assembly in PHP
and iterate it quickly while relying on custom back-end services in
C++, Erlang, Java, or Python to service the News Feed, search, Chat,
and other core parts of the site."
Итого по custom back-end services:
___________________________________
HipHop (ранее PHP) — логика+рендеринг
NewsFeed — ?
Messages — ? HBase(Hadoop database) http://www.facebook.com/note.php?note_id=454991608919
Search — Java (Lucene Nutch&Hadoop)
Chat — Erlang (только ядро), детали http://www.scribd.com/doc/22428456/Erlang-at-Facebook
Python — "other core parts" (phpsh наверное
Еще они очень обожают memcached и его друга Varnish
Резюме: Учитывая уровень интерабильности (==широкое использование Thrift) в обработке каждого запроса браузера
используется все вышеперечисленные языки.
Здравствуйте, DenisCh, Вы писали:
Q>>>4.3. Почему нет перечислений? V>>А где они есть, кроме Паскаля?
DC>в 1с и С
Я больше скажу, они есть в java и C#.
Правда, в жабе это просто класс с инициализируемыми при его загрузке статическими значениями. Зато возможны такие финты:
public enum SomeEnum {
ENUM_1(12, "This is cool enum 1"), ENUM_2(131, "This is cool enum 2"),
ENUM_3(14, "This is poor enum 3");
private final int intValue;
private final String strValue;
SomeEnum(int intValue, String strValue) {
this.intValue = intValue;
this.strValue = strValue;
}
public int getIntValue() {
return intValue;
}
public String getStrValue() {
return strValue;
}
public static void main(String[] args) {
System.out.println(ENUM_1.getStrValue());
}
}
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, quwy, Вы писали:
Q>4.5. Почему вообще для этого языка был выбран C-подобный синтаксис? Тут гораздо уместнее был бы BASIC или Паскаль.
Не, ну, ты ваще неврубашся. Это же круто!!!
Q>7. Почему же он такой тормозной? Как будто вернулся на пятнадцать лет назад!\\
Дык, интерпретатор же.
Q>P.S. Это я еще ООП не пробовал и с большинством библиотек дела не имел...
А зачем ты это дерьмо для даунов вообще использовать стал? Нормальные люди его если выбирают, то только чтобы что-то готовое на сайте по бырому разместить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, quwy, Вы писали:
Q>Поясню немного свое негодование.
Для этого надо более всесторонне развиваться... Если бы человек знал хоть немного историю возникновения PHP, большинство вопросов бы отпало.
И так же замечу, что у большинства почему та PHP ассоциируется только в разработке web приложений, хотя он прекрасно работает не в контексте веб сервера, а как самостоятельный интерпретатор с командной строки шелла.
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Здравствуйте, Lloyd, Вы писали:
Q>>У меня утекает со скоростью примерно 500 КБ/сек, красота! L>В реальном использовании это не будет проблемой, т.к. по завершении запроса вся память все-равно будет выброшена.
Т.е. про fastcgi ты не вкурсе?
Здравствуйте, lost_guadelenn, Вы писали:
L>>В реальном использовании это не будет проблемой, т.к. по завершении запроса вся память все-равно будет выброшена. _>Т.е. про fastcgi ты не вкурсе?
А fastcgi сохраняет память интерпретатора? Я всегда считал, что не должен.
Здравствуйте, Lloyd, Вы писали:
L>>>В реальном использовании это не будет проблемой, т.к. по завершении запроса вся память все-равно будет выброшена. _>>Т.е. про fastcgi ты не вкурсе? L>А fastcgi сохраняет память интерпретатора? Я всегда считал, что не должен.
fastcgi сохраняет процесс, следовательно сохраняет и память процесса.
Что конкретно в памяти сохраняется/не сохраняется отдано на откуп самому процессу.
По опыту, не стоит думать о php слишком хорошо. Сталкивался не то что с ликами, он сам себе память херил.
Здравствуйте, lost_guadelenn, Вы писали:
_>>>Т.е. про fastcgi ты не вкурсе? L>>А fastcgi сохраняет память интерпретатора? Я всегда считал, что не должен. _>fastcgi сохраняет процесс, следовательно сохраняет и память процесса. _>Что конкретно в памяти сохраняется/не сохраняется отдано на откуп самому процессу.
Здравствуйте, quwy, Вы писали:
Q>Поясню немного свое негодование. Я с этой дрянью столкнулся буквально вчера. До этого проносило как-то. Что сразу бросилось в глаза и заставило тупо сидеть и материться:
Q>1. Полный разнобой в стандартных функциях. Q> <много-много всего!> Q>7. Почему же он такой тормозной? Как будто вернулся на пятнадцать лет назад!
Q>P.S. Это я еще ООП не пробовал и с большинством библиотек дела не имел...
И попрошу заметить: не смотря на все написанное выше, язык живет и здравствует! Вывод простой: это рынок, детка — если ПХП все еще так хорошо себя чухает, значит на этом можно заработать деньги. Никого не сношает красота синтаксиса и логика, по которой определяется тип переменных — главное, это чтобы инструмент мог приносить прибыль. Если говноПХП дает возможность в разумные сроки/за разумные деньги/... слобать тот или иной продукт, выпустить на рынок и зарабатывать денежку — вай нот?
Здравствуйте, Mamut, Вы писали:
V>>В каком смысле "легче"?
M>В том, что, по сути, для в PHP есть только один способ сделать что-то, а не несколько, как в Перле Ну и синтаксис даже в самых жтких комбинациях вполне читаем, в отличие от жутких комбинаций перла
Здравствуйте, quwy, Вы писали:
Q>Замечательно! А теперь курим простую и банальную функцию fnmatch(). Занимательно, php-девелоперы не нашли ее аналога в WinAPI и тупо забили!
Version Description
5.3.0 This function is now available on Windows platforms.
Здравствуйте, Sni4ok, Вы писали:
Q>>Замечательно! А теперь курим простую и банальную функцию fnmatch(). Занимательно, php-девелоперы не нашли ее аналога в WinAPI и тупо забили! S>
S>Version Description
S>5.3.0 This function is now available on Windows platforms.
S>
Я рад за них. К версии 9.8.32, глядишь, все устаканится...
Здравствуйте, Mamut, Вы писали:
Q>>>3.2. Почему нельзя индексировать непосредственно возвращаемый ф-цией массив? V>>Почему нельзя? M>Потому что нельзя M>
Здравствуйте, quwy, Вы писали:
Q>>>4.1. Нахрена доллары? V>>Наследие шелла, где доллар означает обращение к переменной. Q>Когда это PHP шеллом выполнялся?
Здравствуйте, quwy, Вы писали:
q> Я рад за них. К версии 9.8.32, глядишь, все устаканится...
Просто они реалисты и понимают, что винда не является приоритетной платформой на которой имеет смысл заострять особое внимание (ну приблизительно та же история что и с моно).
Здравствуйте, Eugeny__, Вы писали:
E__>Это не самое лучшее оправдание языку, которому недоступно управление памятью вручную. Представляешь срач, если бы java допускала утечку реальной памяти при вызове каких-либо методов, или вообще любая утечка, не связанная с неконтролируемым помещением ненужных объектов в живые коллекции(что, по сути, тупо косяк программиста, причем грубый, но легко ловимый)?
Здравствуйте, Anton Batenev, Вы писали:
q>> Я рад за них. К версии 9.8.32, глядишь, все устаканится... AB>Просто они реалисты и понимают, что винда не является приоритетной платформой на которой имеет смысл заострять особое внимание (ну приблизительно та же история что и с моно).
Я согласен, винда -- это вотчина конкурента по web-девелопингу, но чтобы вот так тупо взять и не реализовать банальную системно-независимую функцию...
V>>>В каком смысле "легче"?
M>>В том, что, по сути, для в PHP есть только один способ сделать что-то, а не несколько, как в Перле Ну и синтаксис даже в самых жтких комбинациях вполне читаем, в отличие от жутких комбинаций перла
FR>Ну тогда питон должен был быть вместо PHP.
Не стоит недооценивать распространенность и популярность C-синтаксиса