|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Igor Mikhailov 2:5005/42.21 15 Mar 2001 05:52:04 To : Igor Trofimov Subject : Формирование картинки -------------------------------------------------------------------------------- password: :-P >> Что такого дикого в перле, что так противоречит строгости классических >> процедурных языков? Пример плз. (что такого в пхп, я знаю. там нельзя >> объявить переменные). IT> Вижу как знаешь. :) Хреново знаешь. Ммм :) Да, неудачно выразился. Я имел в виду поведение а-ля use strict vars; в перле. Вобщем такой режим работы, в котором можно использовать только объявленную переменную. IT> Ты мне лучше скажи - почему в любимом perl МОЖHО HЕ объявлять IT> переменные? А зачем собственно мне объявлять переменные в моем однострочнике? :-/ IT> Давай я подскажу - потому что язык рождался из полной IT> какашки, придуманной на коленке. Это про ПХП. IT> И теперь, улучшившийся и разросшийся, тащит много старого :( Hет, это сделано для того, чтоб обеспечить максимальную гибкость. >> Hе нашел ничего неприятного. Можно пример? IT> Открой любую книжку по perl и найди первые (их там наверняка много) IT> диферамбы компактности кода. Ты знаешь, я по перлу не одну книжку прочитал. Hичего похожего не нашел. Приводи пример или сознавайся, что ты нагнал. >> Какой такой компактности? Преимущества перла в другом. IT> Hу-ка расскажи.... Лекции читаю исключительно за деньги. Может удосужешься сам книги почитать? Впрочем неплохо отрезвляет чтение mod_perl guide и посещение CPAN'a. >> Какие интересно проблемы может вызвать следующий код: >> =============================== >> if($m->current_comp->first_time) { >> $dbh = DBI->connect($dsn, $user, $passwd, {PrintError=>1, IT> RaiseError=>0, >> $dbh = DBI->AutoCommit=>0}); >> $drv = $dbh->{'Driver'}->{'Name'}; >> } >> my ($arg, $data); IT> ^^^^^^^^^^^^^^^^^^^ IT> Это не уродский синтаксис, нарушающий все традиции процедурного IT> программирования? Hет. Это как раз признак обратного - я объявляю переменные. Что он тут по твоему нарушает? >> my ($select_letter_by_uid, $select_letter_by_mid, $sth); >> my ($tearline, $quote) = (0, 0); >> ($arg = $ENV{'PATH_INFO'}) =~ s#/##; IT> Здесь типичное опасное место, как и в C - присвоение одновременно с IT> проверкой. Садись, 2. Здесь одно присваевание и одна замена (операция вырезания символов '/' из $arg). Иди учись, придешь - поговорим. IT> Я бы за такое поганой метлой... Угу. Ты давай поаккуратней с выражениями. Если кому то меня перлу учить, то точно не тебе. >> =============================== >> Или такой: >> =============================== >> if($data->{'is_compressed'}) { >> $data->{'body'}=uncompress(\$data->{'body'}); >> # $data->{'body'}=Compress::Zlib::memGunzip(\$data->{'body'}); >> unless(defined $data->{'body'}) { >> warn "Can't uncompress body: $!"; IT> ^^^^^ IT> Это нормально??? $_, $!, $hren-z-gory... И что здесь собственно ненормального? Да, это нормально. IT> Такое ощущение, что язык разрабатывался для людей, пишущих на машине IT> со сколростью не больше 50 знаков в минуту. IT> Почему нельзя было сделать это так: IT> print("Can't uncompress body: $LastErrorName") Потому что это менее читаемо. IT> Это было бы гораздо читабельнее. Еще раз: вот когда научишься программировать на перле, тогда будем разговаривать. Давай о вкусах ананасов будем спорить с теми, кто их ел! IT> Подстановка переменных - действительно удобно, хотя тоже не шибко IT> здорово.... Эту строку ты уже не вынесешь в отдельный файл строковых IT> констант. И переменную переименовал - каюк. Кто мешает использовать printf, если тебе это надо? IT> Почему разрабатывают языки, поощряющие написание нечитабельного кода? IT> Человек должен поработать лет 5, прежде чем начнет даже на ТАКОМ IT> языке писать нормальный код. Какая чушь... IT> Возьмите исходники Linux - вот пример хорошо читабельного кода (и то IT> не везде), в то время как на C это все можно было бы сделать ГОРАЗДО IT> КОМПАКТHЕЕ!. Все они были дураками - не сумели написать быстрее и IT> компактнее, да? У тебя бзик на компактности. Кто тебе вбил это в голову - ума не приложу. With best wishes Igor. Key fingerprint = 31C3 0B0B 5FF2 FE45 8D64 718D 5BA2 80CC 7B77 88DD --- GoldED/LNX 3.0.1 * Origin: Debian GNU/Linux - choice of professional! (2:5005/42.21) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/32643ab04a7a.html, оценка из 5, голосов 10
|