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

Nikita Zubkov nikzubkov на gmail.com
Пн Дек 10 09:40:13 PST 2012


10 декабря 2012 г., 16:20 пользователь Ivan Petrov
<i.petro.77.00 на gmail.com>написал:

>
> >> "Костыль" призванный устанить недостатки языка никогда не будет
> >> полнофункциональным. Тем более когда в языке нет конструкций для
> > правильного
> >> отлавливания таких исключений.
>
> > "в языке нет", а Mojolicious вполне ловит. чудеса да и только
>
> > Ну так поймать исключение perl вполне может. Но вот поймать определенный
> тип
> > исключений уже нет. Для этого нужно писать эмуляцию, которая еще и
> глючит в
> > некоторых ситуациях.
>
>     eval {
>         ...
>     };
>
>     if (ref $@ eq 'My::Exception::CoolClass') {
>         ....
>     } elsif ($@) {
>         die;
>     }
>
А можно еще то же самое, только с аналогом finally/ensure?
И да, это конечно читабельнее, чем:

begin
  ...
rescue My::Exception => e
  ...
end

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

А при чем тут тогда
> а вот что, спасибо напомнили.
> мне не нравятся в нем Exception'ы в виде классов
?


> >> Вообще-то существуют и другие варианты.
>
> > да понятное дело что существуют, разговор зашел то об этом варианте
>
> > Нет, разговор шел не об этом.
>
> написано было "неудобно везде писать $self->". я это понял именно в
> контексте того что человеку нравится что язык за него это неявно
> дописывает.
>
А это-то тут при чем? Речь о разборе параметров функции/метода.


> > эмм. b.to_i - это теплое
> > а $self->b - это мягкое
>
> > Я потерял нить. Так почему в мягком случае много boilerplate кода
> хорошо, а в
> > теплом - плохо?
>
> эмм. еще раз.
> трудно читается код (ИМХО разумеется) когда в нем идет обращение к
> переменным, определенным далее локальной области видимости.
>
> когда человек видит
>
>  a = b;
>
> и не видит b внутри функции, он не знает где искать его. толи в
> глобальных переменных, толи внутри класса, толи в модульных
> переменных.
>
> когда человек видит
>
>  $a = $self->b;
>
> то где что искать определено однозначно.
>
Вы, определенно, мало значете о ruby. В нем все прекрасно читается.

На этом пожалуй откланяюсь, ибо пошел беспредметный разговор, полный
домыслов.

-- 
С уважением,
Никита Зубков
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121210/1cf75943/attachment.html>


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