[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.15377 Reply
Давайте лучше про Перл, он же интереснее.
>> No.15378 Reply
>>15377
Тогда уж сразу перлшесть. Он ещё интереснее. Кстати, когда выйдет кто-нибудь знает?
>> No.15379 Reply
>>15378
Я прочитал его спеки, Синопсис которые. Пропёрся.
>> No.15380 Reply
Ну где ещё вы напишете

open $file or die;

???

Дай ски!
>> No.15381 Reply
>>15378
Так вышел же, не?
>> No.15382 Reply
>>15380
на си с макросами
>> No.15383 Reply
>>15380
На похапе например.
>> No.15384 Reply
>>15380
На пайтоне, хаскеле, руби, кофискрипте...
Короче, на хуй не нужен ваш пёрл.
>> No.15470 Reply
Тело функции:

print "sample for $file\n";
open my $f, '<', $file
or do { warn "Couldn't open file: $!\n"; return undef };
read $f, my $buffer, 4096
or do { warn "Couldn't read from file $file: $!\n"; return undef };
close $f;
return $buffer;

Дай ски!
>> No.15471 Reply
>>15470
Ты не можешь в вакабамарк?
>> No.15479 Reply
Основная проблема Перла в том, что он был создан лингвистом, позволяет свободно запутывать код и каждый разработчик извращается над языком своим уникальным способом, что делает поддержку кода нереальной. Самовыражение хорошо для творчества, но не для технологических решений.

мимо-крокодил
>> No.15493 Reply
>>15479
> Основная проблема перла — Тим Тоутди.
Поправил.
>> No.16775 Reply
>>15479

Видимо вы повторяете услышанное где-то, не имея своего опыта.
> Основная проблема Перла в том, что он был создан лингвистом,
Это основное преимущество языка. Благо.
> позволяет свободно запутывать код
Охохо, чувствую себя дедом-патриархом перед зелёным школьником.
Вы видели язык, который "не позволяет запутывать код"?
Найдите и прочитайте текст "Настоящие программисты не использую Паскаль", а также познакомьтесь с мемом "Настоящий программист может написать фортрановскую программу на любом языке".

Короче - запутывает код не язык, а автор. "Наша пила не позволит вам отпилить себе руку", хахаха.

Перель - язык речи, язык мысли. Язык высказывания мысли. Перелесть! Дай ски!
>> No.16777 Reply
>>16775
Типичный перлоёб. Даже состав постов не отличается разнообразием. Изолировать бы вас таких от нормальных людей.

>>15493
> Основная проблема перла — перл.
Ещё раз поправил.
>> No.16788 Reply
Перель несёт в себе немало наследия древних 80-х, когда он придумывался и создавался. Кое-какие вещи просто страшны, я всегда пропускаю их описание, если читаю книжку по Перелю. Но самый красивый и выразительный код я пишу именно на нём! (и ещё на Питоне)

Дай ски!
>> No.16792 Reply
В Perl слишком много eval.
Для исключений, надо оборачивать код в eval.
ООП сделан через задницу.
Плохая многопоточность.
В чужом коде порой не разобраться.
Модули без ssh не поставишь.
Очень слабо развивается в последние года.
На CPAN некоторые по 5 лет не обновляют.

Дропнул Perl несколько лет назад.
>> No.16794 Reply
Хватит бампать тред прокажённых.
>> No.16811 Reply
Вот это речь не мальчика но мужа.

>>16792

Я бы употреблял eval только в роли try. Где ещё-то? Вы наверно кул хакер.

'Бы' оттого, что я делаю use Try::Tiny и юзаю try {...}

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

Сейчас-то ООП движок Moose, кому надо.
> Плохая многопоточность.
Она не мешала делать на Перле весь интернет в 90-е.
> Очень слабо развивается в последние года.
С 2000 года автор разрабатывает Перл 6. Что это - посмотрите сайт Rosetta Code, впечатлит.
> На CPAN некоторые по 5 лет не обновляют.
Только тссс! - некоторые и по 10 лет, сам видел!!!
Это ж люди делает, такие как вы. А вот кто двигает Питон, мне что-то не понятно.
> Дропнул Perl несколько лет назад.
И я не осуждаю вас за это. Многие перешли на Питон, иные ещё куда.

Но всё равно - язык ВЫСОКОГО уровня, пригодный для человеческого выражения мысли, это в памяти навсегда.

Дай ски!
>> No.16816 Reply
>>16811
> Дай ски!
Не дам.
>> No.16826 Reply
File: 123.png
Png, 6.70 KB, 463×240 - Click the image to expand
edit Find source with google Find source with iqdb
123.png
На тему читаемости и возможности использовать перл как язык для серьёзного проекта в серьёзной фирме:
стиль кода показывает скилл программиста, не только в перле каждую задачу можно решить тонной способов. Красиво и понятно записать свой код, придерживаться хотя бы собственных(а лучше написать внутрикомпанейский code conventions) правил по оформлению - это необходимый скилл, присущий каждому программисту.
Нечитаемый быдлокод можно написать на любом языке.

Насчёт обновляемости CPAN - некоторые модули ядра винды/линупса не обновлялись более 5 лет, и что с того, они не могут выполнять свою работу? Обновление модуля - есть главное зло. Самое главное - довести его до stable версии и больше не трогать, лишь делать наследников от него.

Многопоточность - нормальная на данный момент.

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

мимо перло-фаг
>> No.16830 Reply
Третьего дня переделывал вакабу под fastcgi. Для этого понадобилось сунуть вакабовый диспатчер в цыкол, т.е. вместо
if ($task == "post") {
     ...
} elsif ($task == "admin") {
     ...
}
написать
while (my $query=new CGI::Fast) {
     	pm_pre_dispatch(); 
            if ($task == "post") {
                 ...
            } elsif ($task == "admin") {
                 ...
            }
     	pm_post_dispatch(); 
}
и радоваться жизни, если бы не маленький нюанс. Дело в том, что вакаба любит использовать конструкции вида
$dbh->prepare("select hurr from durr") or make_error(S_SQLFAIL);
а процедура make_error выглядит примерно так
sub make_error($) {
     derp_derp();
     exit(1); # Завершить работу скрипта
}
Разумеется мне в fastcgi никаких exit'ов не нужно, иначе сервер падает от каждой ошибки. Осознав это, я сперва отчаялся, но потом вспомнил, что перл - абсолютно ебанутый язык и вместо старого make_error написал несложное
sub make_error($) {
     derp_derp();
     eval { next; }; # Перейти к следующему fastcgi запросу
     if ($@) {
         exit(0); # Если мы вне главного цикла то выйти
     }
}
И мой next, вынесеный в отдельную процедуру, вполне заработал. И тогда-то я понял, что перл - это не древнее верблюжее говно, а простой и понятный язык, на котором удобно писать и поддерживать красивые и хорошие программы. Конечно, куковать про правильные системы обработки исключений можно сколько угодно. Однако когда можно существенно изменить control flow программы, оставив систему обработки исключений в практически полной нетронутости - это чего-нибудь да стоит.
>> No.17024 Reply
>>16826
> Многопоточность - нормальная на данный момент
threads - не нормальные потоки. С такой ужасной производительностью использовать их невозможно ни для чего.
Есть какие-то другие?
>> No.17055 Reply
File: x_5353520a.jpg
Jpg, 39.75 KB, 407×521 - Click the image to expand
edit Find source with google Find source with iqdb
x_5353520a.jpg
>>17024
fork()
>> No.17056 Reply
>>17024
clone(2) неплохие.

captcha: пояснить ещё. Ну окей. clone(2) создаёт процесс-не процесс, а неведому зверушку с отведённым стековым сегментом (которая, ясное дело, выделяется в памяти (в data или heap разумно) родителя, имеет общий с ним хип, файловые дескрипторы и обработчики сигналов (опционально). Вместо exec вызывается произвольная переданная функция. В целом, man 2 clone.
>> No.17068 Reply
>>17056
Какое отношение функция из sched.h имеет к потокам в перле?
>> No.17090 Reply
Вместо обычных тредов можно использовать это: http://search.cpan.org/dist/Coro/
>> No.17260 Reply
>>17068
Это системный вызов, в каком бы он там заголовочном файле не лежал. Обернуть его в перле должно быть не очень сложно, ведь так?
>> No.17388 Reply
>>15380
> open $file or die
Но зачем, когда есть use autodie на все случаи жизни?


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]