LINUX.ORG.RU
Ответ на: комментарий от anonymous

хороший язык, но батарейки всё же рулят

anonymous
()
Ответ на: комментарий от anonymous

всем лучше.
тем что ОО без исключений.
перл ОО языком назвать можно только с большой натяжкой :)
и code blockи рулят.

например

a = [1,2,3,4,5]
a.each { |element|
  puts element if element > 3
}

anonymous
()
Ответ на: комментарий от anonymous

имхо, в обязательном порядке. это же японская разработка.

скажите, как Руби в сравнении с Перлом по скорости? все так же раза в 2 медленнее?

anonymous
()
Ответ на: комментарий от anonymous

скорость.. а когда ты его последний раз смотрел? вот со времен 1.6 та аагромаднейшие ускорения. а для 1.8.x -- вообще не замечал тормозов. нет, по сравнению с perl5 он всегда будет тормозить на запуске за счет инициализации классов, но и это-то уже постараться надо заметить.

блин, да когда же Matz за Rite возьмется?!..

dmiceman ★★★★★
()
Ответ на: комментарий от anonymous

> 1) работает
Неужели питон не работает? :) А мужики то не знают...

> 2) не через zope
Не очень остроумно, на самом деле zope работает через python. И наличию таких штук как Zope это огромный плюс python'у.

> 3) не нужно мучаться отступами (пока окружающие работают)
Ах вас отступы мучают. Всех питоновских программистов эти отступы радуют, а вас мучают. Всё ясно.

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

Я немного процитирую http://www.msiu.ru/~radigin/docs/ruby-faq/node21.html:

> Полная объектно-ориентированность Ruby порождает некоторое количество свойств, отсутствующих в Python, или только появляющихся в нем: единая иерархия типов/классов, возможность наследоваться от всех классов

Нужно отметить что в питоне это уже давно есть (начиная с 2.2), так что инфа немного устарела.

Можно узнать про преимущества классов коллекций в Ruby над питоновскими? Мне когда-то Smalltalk'овские коллекции тоже очень понравились, однако когда познакомился с питоном, то понял что ничего особенного в них нет.

> Ruby имеет синтаксическую вариативность. Модификаторы выражений (if, unless, while, until и другие) могут следовать после любого выражения. Некоторые служебные слова опциональны (например, then в условной конструкции). Скобки в вызове метода могут быть иногда опущены. self может быть опущен.

IMHO ничего хорошего в этом нет.

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

> то ли дело perl: foreach (@a) {print}

аналогичная приведенной конструкция ruby выглядит:

a=[1,2,3,4,7,11,3]

<b>puts a</b>

а если нужно более сложное, то:

a.each{|n| puts n if n<6 }

А это на perl получиться сложнее:

a.each_with_index{|n,i| puts i if [2..5].include?(n) } puts a.inject{|n,acc| acc+n}

Я раньше сидел на Perl, но мне в нем не нравилось: 1. "ненормальная" модель объектов (неудобная и "неполноценная") 2. "мешанина" типов (0 равен "0", но не равен "00"..., "неноль" = true) 3. явное наличие нескольких синтаксисов (хотя в начале тащился) 4. некоторые другие шероховатости, которые в результате ставили перед диллемой: "или оптимизация, или понимаемость".

Я перешел на ruby и не жалею. Советую и Вам попробовать - может понравится.

anonymous
()
Ответ на: комментарий от SKYRiDER


Фишки раби. Просто перечислю.

1. Переменные по умолчанию. $_ $! $: $1 $2 и т.д. (ага из перла :) )
2. Blocks (closures). очень удобно для итераций. sql.query.fetch{ |row| #some action with row }
3. Наследование от базовых типов (integer, string) вплоть до базового Object.
4. case с регулярными выражиниями
case(str){
when /^a.*/ then
# stuff
when /^b.*/ then
# stuff
}
5. Mix-ins
class String
def send_by_email(email)
# code to send email
end
end
"TEst..sdaasdas".send_by_email("pupkin@n.com")
расширние уже сущ. класов без наследования.
6. возможности Reflection поистине безграничны. в раби разница между рантайм/компиле тайм очень незначительна.
7. классная стандартная библеотека (distributed ruby (drb),embeded ruby (erb, для шаблонов), SOAP, parser generator, reXML(!), YAML, net(ftp,http)).
8.

a Ruby program
before I even notice
is already done

:)

anonymous
()
Ответ на: комментарий от anonymous

я знаю, Ruby - кульная вещь, сам держу Wiki на Ruby - instiki.org. Но дело не в этом, да язык крут и удобен (а drb!), но мало библиотек, непонятно кто все это спонсирует, и на Oreilly мало книг - что очень важный показатель! Хотя мне язык понравился.

anonymous
()
Ответ на: комментарий от SKYRiDER

Ну Zope это плюс или минус - х.з. еще. Впрочем Zope != Python, так что можно ее и не юзать :) Отступы в питоне рулят, не рулят они только для тех, кто пишет х.з. в чем и день через два свои редакторы меняет. Я вот пишу в vim и у меня все рулит. А вообще зачем делать сравнения ruby vs python. Ruby - это просто еще один очень неплохой язык со своими фишками, достоинствами и недостатками.

anonymous
()
Ответ на: комментарий от anonymous

чем она конкретно лучше питона - конкретно ?
синтаксис нехороший в руби - посмотрите как питон изящно смотрится и сравните с перлоподобной руби

а перл совсем ужас - сейчас проект один на перле - ужасно отладка идёт - месяц назад начинал писать - сейчас уже файлов много и чёрт ногу сломит

на питоне аналог занимает раза в 4 меньше кода ! и всё понятно - словно книгу код читаешь

vm ★★
()
Ответ на: комментарий от anonymous

> Ну Zope это плюс или минус - х.з. еще. Впрочем Zope != Python, так что можно ее и не юзать :)

Согласен. Однако как наличие Zope можно причислить к минусам языка питон? Не нравится не пользуйся.

> Я вот пишу в vim и у меня все рулит.

Я тоже в виме пишу. :)

> А вообще зачем делать сравнения ruby vs python. Ruby - это просто еще один очень неплохой язык со своими фишками, достоинствами и недостатками.

Никто с этим не спорит. А это точно LOR? Что-то ругани нет, странно... ;)

SKYRiDER ★★★
()
Ответ на: комментарий от SKYRiDER

>Никто с этим не спорит. А это точно LOR? Что-то ругани нет, странно... ;)

Я, как обычно, раз уж разговор (в который раз!) зашёл о Python, хотел бы услышать о наличествующих аналогах TT2 (http://www.template-toolkit.org/) для него. И, чувствую, в который раз не услышу.

Это вместо ругани.

dsx
()
Ответ на: комментарий от SKYRiDER

> А это точно LOR? Что-то ругани нет, странно... ;)

Ностальгия? Ну ладно, скажем хором: Ruby не нужен!

IMNSHO
()
Ответ на: комментарий от anonymous

>мхо, в обязательном порядке. это же японская разработка.

я спрашиваю не про мхо, а про юникод ( хотя знаю что нет там юникода).

anonymous
()
Ответ на: комментарий от anonymous

> я спрашиваю не про мхо, а про юникод ( хотя знаю что нет там юникода).

кстати, не подскажете где можно почитать про японские и вообще азиатские кодировки, такие как Big5, Shift_JIS, EUC-JP и т.п. Интересуют различия, история появления, где какая используется и т.д. Просто ради интереса.

SKYRiDER ★★★
()
Ответ на: комментарий от dsx

> Я, как обычно, раз уж разговор (в который раз!) зашёл о Python, хотел бы услышать о наличествующих аналогах TT2 (http://www.template-toolkit.org/) для него. И, чувствую, в который раз не услышу.

Ну что за стремление просто так опустить что-ннибудь (в данном случаем питон)?

Теперь по теме. Я не очень разбираюсь в подобных вещах (TT2 и т.п.) поэтому могу немного неправильно выразить свои мысли. Итак, насколько я понял с их сайта TT2 это template processing system. Мне кажется что его питоновским аналогами являются Cheetah (http://www.cheetahtemplate.org/) и Spyce (http://spyce.sourceforge.net/). А вообще питоновцы тянутся к написанию web application серверов, таких как Zope (http://zope.org/) и Webware (http://webware.sourceforge.net/), а также таких фреймворков для веб приложений как CherryPy (http://www.cherrypy.org/) и Quixote (http://www.quixote.ca/). Все вышеперечисленные проекты имеют разные подходы и очень интересны (для меня как минимум), очень жаль что у меня сейчас нет на это времени. :( Мой ответ вас удовлетворил? ;)

SKYRiDER ★★★
()
Ответ на: комментарий от SKYRiDER

а на перле такое пишется:

@a = (1,2,3,4,5);

print map { $_ > 3 } @a;

просто и удобно. Да, перд ещё и быстрей работает.

anonymous
()
Ответ на: комментарий от anonymous

я хотел сказать

@a = (1,2,3,4,5);

print grep { $_ > 3 } @a;

anonymous
()
Ответ на: комментарий от SKYRiDER

[...] >Мой ответ вас удовлетворил? ;)

Это ПЕРВЫЙ ответ, который почти удовлетворил.

Я спрашивал не из-за желания что-то или кого-то опустить. Мне действительно интересно, так как не Перлом единым должен быть сыт человек, и от владения многими возможностями для реализации одной и той де задачи ещё никто не умирал.

То, что питоновцы тянутся к написанию web application серверов это, без сомнения, хорошо, но average hosting provider с такими решениями не дружит, и, по хорошему, даже слова Python пугается. Хотя, это уже исправляется, слава б-гу. Вот такие пироги.

dsx
()
Ответ на: комментарий от anonymous

> http://c2.com/cgi/wiki?PythonVsRuby

видели мы эту писульку. основная ее проблема в том что питонисты на c2.com заходят крайне редко и в результате информация в агитке крайне однобокая. вроде get the facts от сами знаете кого.

anonymous
()
Ответ на: комментарий от SKYRiDER

> CherryPy (http://www.cherrypy.org/)

поправка -- в последней версии от cherrypy отделили tepmlate engine, так что его теперь можно использовать отдельно.

из того что видел на перловые шаблоны больше всего похож cheetah, и dsx об этом было сказано. может он ответы невнимательно читает или еще что.

а zope -- это вещь в себе, освоить ее не так просто (по сравнению с примитивными шаблонными системами), но пока не освоишь лучше о своих соображниях насчет zope помалкивать.

anonymous
()
Ответ на: комментарий от anonymous

> а если нужно более сложное, то: a.each{|n| puts n if n<6 }

А в питоне такое делается ещё проще IMHO:

for x in a:
.    if x < 6: print x # точка в начале строки стоит для сохранения форматирования на LOR


SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

>вернись в тот тред и посмотри, там тебе все ответы дали

Учитывая космическую юзабилити LOR, следить за ответами в тредах и, тем более, возвращаться к старым настолько неудобно, что удивительно, как вообще здесь можно хоть что-то найти.

dsx
()
Ответ на: комментарий от dsx

> То, что питоновцы тянутся к написанию web application серверов это, без сомнения, хорошо, но average hosting provider с такими решениями не дружит, и, по хорошему, даже слова Python пугается. Хотя, это уже исправляется, слава б-гу.

Ну, обычный python CGI поддерживает практически любой UNIX хостер (хотя обычно это и не рекламируется), а вот с серверами приложений действительно засада.

Ещё из интересных питононовских фреймворков мне очень нравится Twisted (http://twistedmatrix.com/products/twisted), хотя конечно это не для веб приложений, а для написания обычных сетевых приложений. Кстати ещё исходники Twisted очень удобны в качестве справочника по какому-либо протоколу (Telnet, IRC и т.д.) - очень легко читаются исходники. Лепота... :)

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

> а zope -- это вещь в себе, освоить ее не так просто (по сравнению с примитивными шаблонными системами), но пока не освоишь лучше о своих соображниях насчет zope помалкивать.

Дело в том что я всё таки более-менее знаком с Zope и почитал по нему немало различных док, хотя Zope Book прочитал только частично. Так что я уверенно могу говорить что понимаю идеологию Zope и мне она нравится. Конечно я ещё не знаю всех возможностей DTML и ZPT, но представление о них имею. Кстати, а что ты думаешь о Zope?

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

В ruby нет "широких" строчек, если под поддержкой unicode имеется в виду именно это. Однако, UTF-8 работает нормально.

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

anonymous
()
Ответ на: комментарий от SKYRiDER

>обычный python CGI поддерживает практически любой UNIX хостер

Вот именно что "практически". Иногда бывает, что на вопрос "а у вас Python есть?" отвечают что-нибудь вроде "кажется есть, но мы вам его всё равно не дадим. PHP пользуйтесь". Хорошо, если заказчик ещё не снюхался с такими клёвыми пацанами, а если уже снюхался, то всё, каюк. Приходится работать с тем, что дают. Слава б-гу, там где дают PHP, там и Perl есть.

dsx
()
Ответ на: комментарий от SKYRiDER

я zope смотрел довольно давно, и по трезвом размышлении пришел к выводу что к моим скромным задачам скорее подходят более простые фреймворки, где-то хватает cgi, где-то использую cherrypy.

из впечатлений о zope (и списках рассылки по zope) осталось ощущениние что там очень легко придумать себе дополнительные сложности, как например попытки записи нетривиальных вещей в одну строку внутри шаблонов. и видимо в этом есть доля истины, поскольку третью версию насколько я понимаю переписали с нуля с несколько другими идеями и принципами организации системы.

в первом комменте я имел в виду прежде всего тех кто не знаком достаточно с zope, но полагает что zope -- отстой, потому что "оно большое и на питоне, значит тормоз"

anonymous
()
Ответ на: комментарий от SKYRiDER

Все-таки чтобы говорить о ZOPE - ее надо хорошо понать и выучить - тогда станут сразу видны эти преимущества - это как деталь - можно и напильником выточить за нескодько дней - а можно и на станке за 5 мин Когда умеешь пользоваться инструментом - тогда только видишь его преимущества!

anonymous
()
Ответ на: комментарий от SKYRiDER

Twisted рулит. Я на twisted сделал ICQ-бота для домашнего глухо зафаерволенного на вход компа, который может в какой-то степени выполнять функции ssh-шелла, минут за 30 включая установку самого фреймворка и чтение руководства.

anonymous
()
Ответ на: комментарий от anonymous

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

Про питон ты ошибаешься, они там есть причём со времён 2.0.

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

> я zope смотрел довольно давно, и по трезвом размышлении пришел к выводу что к моим скромным задачам скорее подходят более простые фреймворки, где-то хватает cgi, где-то использую cherrypy.

Многие хвалят Quixote, ты с ним не сталкивался?

SKYRiDER ★★★
()
Ответ на: комментарий от anonymous

Короче, кто тут написал на Ruby и на Питоне больше 1000 строк и может высказать компетентное мнение??

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.