[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