LINUX.ORG.RU
ФорумTalks

Почему PHP?


0

0

Почему php популярнее perl в вебе? Что можно сделать на php, чего нельзя сделать на perl? Почему сплошь и рядом все форумы php'шные, а перловые все какие-то убогие (fastbb например)?

anonymous

потому что Mason менее популярен...

на php писать проще, чем на перле, потому что мало кто знает возможности CGI.pm (c этим к Артему Чуприне aka ran из fido7.ru.cgi.perl)

vilfred ☆☆
()

> Что можно сделать на php, чего нельзя сделать на perl?

Что можно сделать на perl, чего нельзя сделать на {LISP,Python,C,ASM,<что-там-ещё>}?

watashiwa_daredeska ★★★★
()

потому-что этот язык первоночально создавался для Web програмирования, в отличие от perl, и имеет соотвествующие удобства, в отличие от perl.

anonymous
()

Это реально просто и при наличии головы - качественно. Собственно, почему бы и нет?

Shaman007 ★★★★★
()
Ответ на: комментарий от anonymous

А чем он неудобен и некрасив?
Свой код и код своих коллег в качестве примера не является аргументом.

drd ★★
()
Ответ на: комментарий от svyatogor

>красивый и удобный.

Не шути так больше, я чуть не подавился чаем. Ты видел ПХП парсер XML файлов этоже просто ужас. Да и вообще последнее время от ПХП меня блевать тянет...

CrazyPit ★★★
()
Ответ на: комментарий от theserg

другой пример: преобразование кодировки:

перл:

use Text::Iconv;                

$converter = Text::Iconv->new ("KOI8-R", "UTF-7");
$Name = $converter->convert ($Name);

пхп:
$Name = iconv ("KOI8-R", "UTF-7", $Name);

ну, где проще?

и как там в перл с getnamebyaddr? Я придумал только

sub GetIPByName
{
  my ($name, $alias, $adrtype, $length, @address) = gethostbyname ($_[0]);
  my ($a,$b,$c,$d) = unpack ("C4", $address[0]);
  my $V = $a.".".$b.".".$c.".".$d;
  return $V;
}

theserg ★★★
()

На перле студенту труднее наговнять сайт за 50 долларов... ;-)

drd ★★
()

За что народ любит синтаксис C? За выразительность, лаконичность и гармонию. Где такое в Perl? А PHP создавался с синтаксисом C. Опять же, с С переходить на него легче.

Ay49Mihas ★★★★
()
Ответ на: комментарий от Ay49Mihas

Синтаксис Си любят от лени и маленького IQ. Выучили его, считают его привычным, и не желают изучать ничего нового. Никаких объективных преимуществ (и уж тем более - выразительности и лаконичности) у этого примитивного и архаичного синтаксиса нет.

vsl
()
Ответ на: комментарий от theserg

>и как там в перл с getnamebyaddr

Как и в любом "C": sub GetIPByName { use Socket; return inet_ntoa(scalar(gethostbyname(shift))); }

>За что народ любит синтаксис C? За выразительность, лаконичность и гармонию. Где такое в Perl?

Чем указанная выше функция отличается от Сишной? Да и на вашем С можно также жутко писать :)

roller ★★★
()
Ответ на: комментарий от roller

Сорри, Preformatted Text забыл включить
sub GetIPByName {
  use Socket;
  return inet_ntoa(scalar(gethostbyname(shift)));
}

roller ★★★
()
Ответ на: комментарий от roller

А что делают эти строки?

$result=$conn->exec("create index _RSERV_LOG_INDX_REL_KEY_ on _RSERV_LOG_ (reloid, key)");
RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK);

Я конечно понимаю, что это выполнение запроса к БД с откатом в случае ошибки, но по-моему это не очень так наглядно и читаемо (/usr/bin/MasterInit (78-79) из FC3). К тому же бесконечные $, %, @ вместо оодних $ в PHP довольно путают. Короче, мне, как человеку, не писавшему на Perl ничего крупного, кажется, что даже исходники на LaTeX более понятны, чем на Perl.

Ay49Mihas ★★★★
()
Ответ на: комментарий от Ay49Mihas

Конструкция
  выражение if (выражение);
эквивалентна
  if (выражение){
    выражение;
  }

Т.е. это же можно было записать:
  if ($result->resultStatus ne PGRES_COMMAND_OK) {
    RollbackAndQuit($conn);
  }

Но в одну строку намного нагляднее(Роллбак_и_выход если статус не ОК vs если статус не ОК тогда роллбак_и_выход.

Кстати, оч. удобная в этом же отношении конструкция unless:
  exit unless ($result == 0)
Для ПХП это будет выглядеть так:
  if (!($result == 0)) exit.
Понятно что для условия !($result == 0) можно в данном случае написать  $result != 0, однако для более сложных условий...


А различный $, %, @ - это наоборот лучше! Говоря %a я подразумеваю хеш(именованный массив). Говоря @a я подразумеваю массив.
В пхп ихние смешанные хеши-массивы неудобны. Поясняю:
  $a = array();
  $a["100"] = 1;

Вопрос: сколько элементов в $a. Что такое $a - хеш или массив?

Для перла все однозначно. Если:
  my %a;
  $a{"100"} = 1
То это хеш с одним елементом.

roller ★★★
()

> а перловые все какие-то убогие

Особенно LiveJournal :)

Deleted
()
Ответ на: комментарий от roller

>Ну тогда пиши use Encode; :)

а зачем лишние слова в программе? php само определяет какие библиотеки/модули нужно подгрузить

theserg ★★★
()
Ответ на: комментарий от theserg

кстати, а как я узнаю, что нужно использовать Encode?

Вот ещё один недостаток перла: плохая документация (в отличие от php)

theserg ★★★
()
Ответ на: комментарий от theserg

>а зачем лишние слова в программе? php само определяет какие библиотеки/модули нужно подгрузить

Ага. Канечна. В php.ini.

>Вот ещё один недостаток перла: плохая документация (в отличие от php)

Не смешите плиз. Любой модуль с CPAN документирован. Это требование. В отличие от...

Например для вышеупомянутого Encode:

http://search.cpan.org/~dankogai/Encode-2.09/Encode.pm

>кстати, а как я узнаю, что нужно использовать Encode?

а)Пойти на CPAN и воспользоватся поиском(хинт слова encoding, encode, charset)

б)Почитать идущие с перлом доки.

в)Почитать любую современную книжку.

roller ★★★
()
Ответ на: комментарий от roller

>а)Пойти на CPAN и воспользоватся поиском(хинт слова encoding, encode, charset)

>б)Почитать идущие с перлом доки.

>в)Почитать любую современную книжку.

Издеваешься??? У меня нет на это времени, деньги надо зарабатывать!

Нужна __ОДНА__ дока, типа php-manual, а не зоопарк из perdoc, perldoc -f, search.span.org и каких-то книжек!

theserg ★★★
()
Ответ на: комментарий от theserg

> Нужна __ОДНА__ дока, типа php-manual, а не зоопарк из perdoc, perldoc -f, search.span.org и каких-то книжек!

Для первоначального изучения советую книжку. В качестве справочника -- man perl* и perldoc. Одну доку сделать сложно, потому что в CPAN находится туева хуча доп. модулей, и у каждого -- своя документация.

На самом деле, если въехать, с документацией проблемы нет.

Deleted
()
Ответ на: комментарий от Deleted

>На самом деле, если въехать, с документацией проблемы нет.

Понятно, просто плохо, когда в рамках одного и того же языка одинаковые задачи решаются по-разному. Эта избыточность никакого функционала не вносит, а только непонятки.

В пхп, кстати, тоже есть такие "места", как, например, отправка писем с аттачментом.

theserg ★★★
()
Ответ на: комментарий от theserg

>Издеваешься??? У меня нет на это времени, деньги надо зарабатывать!

>Нужна __ОДНА__ дока, типа php-manual, а не зоопарк из perdoc, perldoc -f, search.span.org и каких-то книжек!

Мир не меняется: Ничего не знаю. Учить не хочу. Книги читать некогда. А денег зарабатывать надо....

roller ★★★
()
Ответ на: комментарий от roller

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

а мы, простые люди, будем деньги зарабатывать, с помощью пхп и жавы

главное, ты понял "Почему PHP?" ?

theserg ★★★
()
Ответ на: комментарий от roller

НАсколько я понял, все разногласия (кроме хэшей-массивов, но об этом потом) сводятся к разногласиям типа юзаю или не юзаю инверт-маус в 3D-играх: если я сначала сел за Перл, то не смогу полюбить PHP, если ясначала сел за PHP (или C, или еще чего C-подобное), то не смогу полюбить Перл.

В пользу моего мнения могу сказать, что на С проходит большая часть образования программистов (хотите - кодеров). И как я однажды начал применять реляционные отношения и сопутствующие понятия к 1C (а этому очень удивился народ, который кроме 1С ничего и не видел), так и люди, кроме Перла да баша ничего не видевшие, не понимают стремление к унифицированному С-синтаксису.

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

PS: про хеши-массивы.

"Конструкция выражение if (выражение); эквивалентна if (выражение){ выражение; }

Т.е. это же можно было записать: if ($result->resultStatus ne PGRES_COMMAND_OK) { RollbackAndQuit($conn); }

Но в одну строку намного нагляднее(Роллбак_и_выход если статус не ОК vs если статус не ОК тогда роллбак_и_выход."

Это, на мой взгляд, удобно тем, кто не привык к ставшей обычной в процедурном и ОО-программировании логике.

"Кстати, оч. удобная в этом же отношении конструкция unless: exit unless ($result == 0) Для ПХП это будет выглядеть так: if (!($result == 0)) exit. Понятно что для условия !($result == 0) можно в данном случае написать $result != 0, однако для более сложных условий..."

Что-то типа repeat ... until в паскале. На мой взгляд, гаденькая конструкция была...

"А различный $, %, @ - это наоборот лучше! Говоря %a я подразумеваю хеш(именованный массив). Говоря @a я подразумеваю массив. В пхп ихние смешанные хеши-массивы неудобны. Поясняю: $a = array(); $a["100"] = 1;

Вопрос: сколько элементов в $a. Что такое $a - хеш или массив?"

Ответ: в $a count($a) элементов. $a - всегда хэш с прозрачным заданием индексов (можно задать 100, а можно "100"). Почему это неудобно - я не понял. Вроде, в том же Питоне примерно так же дело обстоит (кроме изменяемых-неизменяемых списков, различающихся низкоуровневой реализацией).

"Для перла все однозначно. Если: my %a; $a{"100"} = 1 То это хеш с одним елементом."

Что самое интересное, записи-то одинаково "говорящие", и результат что в Перле, что в PHP одинаков. Так что это дейстительно религиозная война :)

Ay49Mihas ★★★★
()
Ответ на: комментарий от theserg

Зарабатывай, дитятко, по $50 за сайтик. Слесарь-сантехник - и тот лучше заработает, чем глупые пыхыпы-кодеришки.

vsl
()
Ответ на: комментарий от theserg

Херово же ты "деньги" зарабатываешь, дитятко, если у тебя нет времени на самообразование...

vsl
()
Ответ на: комментарий от vsl

>Зарабатывай, дитятко, по $50 за сайтик. Слесарь-сантехник - и тот лучше заработает, чем глупые пыхыпы-кодеришки.

иди нах, луговский aka фанатик ёбнутый! не $50, а $2k!

--theserg

anonymous
()
Ответ на: комментарий от theserg

>ну учи, учи, студент... читай всякие книжки про перл... про питон...

Учу, учу. Хотя давно уже не студент. Таки, да - Ленин был прав.

>а мы, простые люди, будем деньги зарабатывать, с помощью пхп и жавы

Вы БУДЕТЕ, а мы уже ДАВНО зарабатываем. С помощью PHP/Perl.

>главное, ты понял "Почему PHP?" ? Нет :(

roller ★★★
()
Ответ на: комментарий от Ay49Mihas

>если ясначала сел за PHP

Бейсик был первым, и мне не стыдно :)

>так и люди, кроме Перла да баша ничего не видевшие, не понимают стремление к унифицированному С-синтаксису

Это ты о ПХП или вообще о супер-унифицированости С-синтаксиса?

Дать кучу примеров ТРУДНОРАЗБИРАЕМОГО кода как на С так и на ПХП?

(Любители питона не радуйтесь - и у вас есть любители ;) )

>Это, на мой взгляд, удобно тем, кто не привык к ставшей обычной в процедурном и ОО-программировании логике.

Нет. Это удобно тем кто привык к перлу :). Он дает тебе свободу. Свободу использовать более удобную и привычную тебе конструкцию.

>Что-то типа repeat ... until в паскале. На мой взгляд, гаденькая конструкция была...

Чем это она гаденькая? Нормальный цикл с постусловием. Только условие не продолжение а выхода.

>Почему это неудобно - я не понял

Это просто дороже стоит.

>Что самое интересное, записи-то одинаково "говорящие", и результат что в Перле, что в PHP одинаков. Так что это дейстительно религиозная война :)

Неа. Если я в перле напишу

$a{"100"} = 1

То у меня в хеш а добавится один элемент. Ключ "100", значение 1.

Если же

$a["100"] = 1

то в массив а по индексу 100 будет занесено значение 1. Если элементов в массиве было меньще 100, то размер массива будет увеличен до 101 элемента(нумерация с 0)

roller ★★★
()
Ответ на: комментарий от roller

>Вы БУДЕТЕ, а мы уже ДАВНО зарабатываем. С помощью PHP/Perl.

а как вы, интересно, зарабатываете деньги с помощью перл? неужели сайты автоматизируете? может CMS? а?

theserg ★★★
()
Ответ на: комментарий от anonymous

$2k дают за сайтишко, который ты 2 месяца ваять будешь. В общем, для студентиков заборостроительного провинциального вузика приработка. В общем, свыкнись с мыслью, что ты - отстой.

vsl
()
Ответ на: комментарий от theserg

Дитятко не знает, что кроме рисования вёб-мордочек есть и куда как более интересные и доходные дела.

vsl
()
Ответ на: комментарий от theserg

> а как вы, интересно, зарабатываете деньги с помощью перл? неужели сайты автоматизируете? может CMS? а?

Я, например, поддерживаю (т.е. пишу постоянно уже третий год) сайт, систему управления им, систему контроля, часть ERP и CRM, кучу административных подсистем. Всё это -- не перле и немного на баше. Обзорная документация этой части -- уже полсотни страниц. Есть ещё части на 1C и других языках, но их делает другой человек.

Очень хорошо, что удалось убедить тогда начальство делать сайт на mod_perl, а не PHP. С PHP сегодня было бы тяжелее...

Но сайт-буклетик соседней медельной фирмы я никогда бы не стал делать на Perl. Для него PHP -- самое оно.

Deleted
()
Ответ на: комментарий от Deleted

>Всё это -- не перле и немного на баше

а я правильно понимаю, что перл не умеет встраиваться в html-код?

типа <?for ( $i = 0; $i < 10; $i++ ) {?>bla-bla-bla<?}?>

как же вы пишете на нём-то?

кстати, сайт за $2k программируется за 2-3 дня. Всё программирование делится на 2 части: подгонку CMS и привязку. Работа, конечно, дебильная (пусть луговский порадуется), но очень нужная, причём делать всё надо очень быстро. С перлом сдохнуть можно :)

Хей, Луговский, а может мне сайт на лиспе сделать? Или прологе? Ещё я фортран знаю, как ты к нему относишься?

theserg ★★★
()
Ответ на: комментарий от theserg

Встраиваться. В код... Думаю, кроме люлей ты за свои сайтишки ничего не получал. Мешать код с дизайном - вершина кретинизма, а PHP/ASP/JSP - достойная реализация этого самого кретинизма. Ну ладно, в JSP custom tags хотя бы есть, если всё остальное оторвать - пущай живёт.

На Лиспе сайт делать - самое то. Особенно удобна поддержка - обновления легко заливаются на работающий сервер без перезагрузки. Производительность, опять же, гораздо выше, чем всё, что доступно с Java или PHP (кстати, единственный достойный компилятор PHP - на Схеме написан).

vsl
()
Ответ на: комментарий от theserg

Да, про 2-3 дня, думаю, ты загнал. При таком подходе - код в html встраивать - ты ничего сложнее уеб-магазинчика не нарисуешь. Если же и получается находить придурочных заказчиков, кто столько платит за уеб-магазинчик, то, уверен, далеко не каждые 2-3 дня. И не каждый месяц. Так что, дитятко, свисти потише - а то смешно выглядишь.

vsl
()
Ответ на: комментарий от theserg

>ха-ха-ха! Я хоть с паскакаля начинал :))

Маладой, зеленый. Да?

Ямахи тогда были да УКНЦ.

Кстати, последнее расшифровывается Учебный Компьютер - Научный Центр.

roller ★★★
()
Ответ на: комментарий от theserg

>а как вы, интересно, зарабатываете деньги с помощью перл? неужели сайты автоматизируете? может CMS? а?

Бум мерятся? :)

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

roller ★★★
()
Ответ на: комментарий от theserg

>кстати, сайт за $2k программируется за 2-3 дня. Всё программирование делится на 2 части: подгонку CMS и привязку. Работа, конечно, дебильная (пусть луговский порадуется), но очень нужная, причём делать всё надо очень быстро. С перлом сдохнуть можно :)

Тогда ваш уровень ясен. Поменять иконки, ксс и "шоб новости не слева а справа рисовались".

roller ★★★
()
Ответ на: комментарий от theserg

>а я правильно понимаю, что перл не умеет встраиваться в html-код?

>типа <?for ( $i = 0; $i < 10; $i++ ) {?>bla-bla-bla<?}?>

>как же вы пишете на нём-то?

Если сильно того хочется смотри mod_perl и связанные с ним технологии.

А вообще темплейты рулят, в частности и для того же пхп.

Кстати, интересный путь развития: сначала приблудина для встраивания кода в хтмл страницы, теперь высоко-ооп язык ;) для встраивания в хтмл кода полученого из темплейта.

roller ★★★
()
Ответ на: комментарий от roller

А на ямахах был турба паскакал 1.0... И msx-dos был, (c) by Microsoft...

Только всё равно, на MSX-1 кроме как на ассемблере нормально писать и не на чем было, что васик, что паскакаль - отстойненькие были...

vsl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.