[Moscow.pm] А все таки классный язык Perl.

Ivan Petrov i.petro.77.00 на gmail.com
Пн Дек 10 07:20:29 PST 2012


>> "Костыль" призванный устанить недостатки языка никогда не будет
>> полнофункциональным. Тем более когда в языке нет конструкций для
> правильного
>> отлавливания таких исключений.

> "в языке нет", а Mojolicious вполне ловит. чудеса да и только

> Ну так поймать исключение perl вполне может. Но вот поймать определенный тип
> исключений уже нет. Для этого нужно писать эмуляцию, которая еще и глючит в
> некоторых ситуациях.

    eval {
        ...
    };

    if (ref $@ eq 'My::Exception::CoolClass') {
        ....
    } elsif ($@) {
        die;
    }

> Впрочем, Ваша мысль мне так и осталась не понятной. Что же такого плохого в
> самих structured exceptions?

в них нет ничего плохого. впрочем хорошего в них я тоже не нашел
ничего :)

>> Вообще-то существуют и другие варианты.

> да понятное дело что существуют, разговор зашел то об этом варианте

> Нет, разговор шел не об этом.

написано было "неудобно везде писать $self->". я это понял именно в
контексте того что человеку нравится что язык за него это неявно
дописывает. 

> эмм. b.to_i - это теплое
> а $self->b - это мягкое

> Я потерял нить. Так почему в мягком случае много boilerplate кода хорошо, а в
> теплом - плохо?

эмм. еще раз.
трудно читается код (ИМХО разумеется) когда в нем идет обращение к
переменным, определенным далее локальной области видимости.

когда человек видит

 a = b;

и не видит b внутри функции, он не знает где искать его. толи в
глобальных переменных, толи внутри класса, толи в модульных
переменных.

когда человек видит

 $a = $self->b;

то где что искать определено однозначно.

это мягкое.

эта проблема имхо никак не пересекается с проблемой

 $a = '10';
 $b = 20;
 $a * $b;

ибо это уже - теплое


Подробная информация о списке рассылки Moscow-pm