[Moscow.pm] Запутался

ksvs ksvs1996 на ymail.com
Пн Окт 1 23:18:21 PDT 2012


Зрасте.

Недавно начал учить Perl и вот узнал, что в нем есть goto.
А препод информатики говорит, что за использование goto по рукам надо бить, а языки с ним - ушербны.

И че-то я засомневался. Может как все учить Python? Типа, там все круто на объектах. Но нашел в инете несколько челов, которые с Python переши на Haskell, в котором даже объекты не нужны.

Решил найти реальные проекты на Perl, Python и Haskell, и сравнить сам.
Но никак не могу найти. Подсткажите, кто знает, где можно найти?

Нашел только Redis Sharding:
Python:  https://github.com/youngking/redis-shard
Perl:    https://github.com/kni/redis-sharding
Haskell: https://github.com/kni/redis-sharding-hs

И то и то не очень понятно.
Кажется на Python короче, чем на Perl.
Но на Perl как-то меньше функций и понятней. Хотя кода больше.

Не понятно, почему только в Haskell используется fork?
Ведь в Perl и в Python тоже есть fork.

А я нашел как упростить Perl версию! cmd2stream можно перписать как 

sub cmd2stream {
    join "", '*', scalar @_, "\015\012", args2stream(@_);
}

Значит Perl версия не оптимальна. Или уже такой спец. :-)

А как perl понимает, что scalar относиться только к @_, а не ко всему до конца строки?

Но и в Python версии я увидел тоже есть одинаковые куски: строки 80-105 в pipeline.py и строка 121-147 в shard.py идентичны.

И еще. В Perl функции вызывает модуль EV. А как в Python? Не вижу.

Вижу, где в Python и Haskell ловят ошибок, а в Perl не вижу...

Что-то запутался окончательно.
Неужели, чтобы выбрать что-то одно, надо выучить все три?
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121002/4a62cd86/attachment-0001.html>


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