Рубин, питон, перловка, пых
8th March 2005 - 05:24
Уже второй месяц урывками читаю «Programming Ruby — The Pragmatic Programmer’s Guide», обнаруженный после установки ruby 1.8.2, и мучаюсь. У меня, как у человека, знакомого лишь с PHP, пускай даже достаточно поверхностно знакомого, конструкции
a, b = b, a
[ 3, 1, 7, 0 ].sort.reverse
mon, day, year = $1, $2, $3 if /(\d\d)-(\d\d)-(\d\d)/
вызывают обильное слюноотделение. Чувствую, что неплохо было бы более пристально посмотреть в сторону других языков, но вот какого из трёх (Perl, Python, Ruby) — никак не определюсь.
P.S. Ruby On Rails, Рубин На Рельсах, PHP. Утренний юмор, да.
P.P.S. А никому не попадались «Hackers and Painters» в бесплатной цифре?
Categories: PHP | comments: (14)
Комментарии
1. Илья Бирман 8th March 2005 - 08:17
Я вот ещё когда-то прочитал доку по Icon — тоже интересный язык, посмотри.
Mash:
Этот? Не, не то. Хочется чего-то более близкого к жизни.
2. BOLK 8th March 2005 - 12:18
На Perl это будет:
($a, $b) = ($b, $a);
reverse sort (3,1,7,0);
($mon, $day, $year) = ($1, $2, $3) if /(\d\d)-(\d\d)-(\d\d)/;
Mash:
«Девушка, Вы что будете пить: водку или спирт?» Вот и я говорю, «даже не знаю, всё такое вкусное». :)
Perl подкупает хостингом и базой знаний.
3. ilishin 8th March 2005 - 13:43
Python красивее. Великолепный язык общего назначения. Для изучения лучше чем http://diveintopython.org/ не найдешь.
Главная засада — на shared hosting его редко ставят, потому что mod_python позволяет делать с системой слишком многое.
Mash:
Да, он более human-readable, чем тот же Perl, но Ruby мне показался более симпатичным. Да и четыре пробела этих… Нет, я понимаю, некоторые подсаживаются и потом жизни себе без этого уже не представляют, но как-то не по мне, хотя и не проблема.
С другой стороны, у Питона больше документации, third-party support и библиотек по сравнению с Рубином.
4. BOLK 8th March 2005 - 14:43
2ilishin: что mod_python позволяет делать такого, что не позволяет делать mod_perl или CGI?
5. ilishin 8th March 2005 - 21:28
2 Bolk:
Python конечно же может работать через CGI. Но тогда интерпретатор будет стартовать на каждый хит. о mod_perl:
mod_python может читать файлы в чужих каталогах и писать вредоносные pre_output хэндлеры. В принципе, из того что я знаю о mod_perl — его возможностей тоже должно бы на это хватать :). Но mod_perl ставят на shared hosting, а mod_python — только выделяя каждому клиенту по экземляру Апача.
6. BOLK 8th March 2005 - 22:14
подозреваю, что у mod_perl ровно такие же возможности как у mod_python. Что же до CGI, я спрашивал в следующем ключе: что может такого делать mod_python, что не может CGI (неважно на каком языке). Дело в том, что CGIи разрешены у каждого второго провайдера, причём внимание безопасности почти не уделяется.
7. ilishin 8th March 2005 - 23:10
Только две вещи — не подымать каждый раз интерпретатор и определять хендлеры отличные от OutputHandler. На ранних стадиях обработки запроса — разбор каталога, аутентификация etc. Очень удобно когда надо, скажем, при запросе на avi или mp3 проверить права пользователя а дальше отдавать его стандартным апачем.
8. YuppY 9th March 2005 - 11:57
В питоне:
a, b = b, a
sorted([3, 1, 7, 0], reverse = True)
Последнее подлинее, потому как в питоне регэкспов в синтаксисе языка не предусмотрено, это отдельная библиотека:
import re
match = re.match(r'(\d\d)-(\d\d)-(\d\d)', s)
if match:
mon, day, year = match.groups()
Тут s — строка со значением. Я, к сожалению, плохо разбираюсь в ruby и перле и не понимаю откуда она там берется.
Mash:
Из документации:
If a single regular expression appears as a boolean expression, it is matched against the current value of the variable $_.
if /re/ ... is equivalent to if $_ =~ /re/ ...
Т.е. могу надумать вот такой пример:
Или такой:
Что интересно, Ruby на это матерится (не знаю почему, сам плохо пока разбираюсь), но отрабатывает. А так…
9. Baka 9th March 2005 - 16:11
Ещё есть «Японский Forth» (MIND (сайт на японском, да) ). ^_^
(via kuro5hin.org)
10. G100m 14th March 2005 - 21:34
mod_python не дают на общих хостингах потому, что это отнимет время у админа и за это можно срубить хорошие деньги.
2 BOLK: он может вмешиваться в фазы обработки запроса, в остальном это тот же самый интерпритатор.
http://www.onlamp.com/pub/a/python/2003/10/02/mod_python.html
11. Julik 19th March 2005 - 23:50
Приложение на Rails в виде обычного CGI будет выполнять примерно 10 запросов в минуту, занимая немерянное количество памяти и ресурсов. Пробовали.
Mash:
В минуту?! %)
Не, мне Rails не нужен. Жаль только, что mod_ruby под винду пока что «почти» нет. Есть под второй апач, в стадии beta, прикрутить не получилось, плюнул. FastCGI наш друг…
12. Julik 20th March 2005 - 01:17
Мне-то как раз Rails нужен, но под CGI он ненормален (даже для девелопмента).
Rails — чудо. Под MacOS X у меня спокойно собрался mod_ruby под второй апач но ставить я его пока не пробовал, под ним только одно приложение можно крутить. А пока — FastCGI, да…
Кстати, забавно — сборка ruby со всеми нужными кусочками занимает примерно вчетверо меньше времени чем сборка mod_php с сопоставимым функционалом.
13. yA! 25th March 2005 - 21:19
Mash>> Не, мне Rails не нужен.
Mash>> Жаль только, что mod_ruby под винду пока что «почти» нет.
Mash>> Есть под второй апач, в стадии beta, прикрутить не получилось, плюнул.
Mash>> FastCGI наш друг…
А где это вы видели FastCGI под винду??
Mash:
Там же, где и mod_ruby.
14. Vanger 11th May 2005 - 12:55
Как человек, два года посвятивший веб-разработке на руби — он того стоит. Язык на котором приятно работать.
Единственный, но смертельный трабл, увы и ах, его неподдерживаемость средним хостером. ЗЫ: у вас хороший журнал — интересно читать. спасибо.