Консультируйте по вопросам Ruby по сравнению с Python для кого-то, кому нравится LISP много

21
задан the Tin Man 13 June 2011 в 01:07
поделиться

11 ответов

Я пошел бы с Ruby. Это имеет все виды метапрограммирования и утки, перфорирующей взломы, которые делают действительно легким расшириться. Функции как блоки не могут походить на много сначала, но они делают для некоторого действительно чистого синтаксиса, если Вы используете их правильный. Открытые классы могут отлаживать ад при завинчивании их, но если Вы - ответственный программист, можно сделать вещи как 2.days.from_now (пример от направляющих) действительно легко (Python может сделать это также, я думаю, но с немного большим количеством боли)

пз: Выезд , "Почему Ruby является приемлемым LISP" .

26
ответ дан jfs 29 November 2019 в 06:08
поделиться

Peter Norvig , известный и большой lisper, преобразованный в Python. Он записал статье Python для Программистов Lisp , который Вы могли бы найти интересным с его подробным сравнением функций.

Python похож на исполняемый псевдокод. Легко взять, и часто использование Вашей интуиции будет просто работать. Python позволяет Вам легко помещать свои идеи в код.

Теперь, для веб-разработки, Python мог бы походить на более рассеянную опцию, чем Ruby с изобилием веб-доступных платформ Python. Однако, в целом Python является очень хорошим и полезным языком для знания. Как Ruby и нишевое перекрытие Python, я соглашаюсь с Kiv, что это - частично вопрос персонального вкуса, какой Вы выбираете.

31
ответ дан namin 29 November 2019 в 06:08
поделиться

Защитник дьяволов:Кому какое дело?

Они - и хорошие системы и имеют экосистему хороших веб-платформ и активных сообществ разработчиков. Я предполагаю, что Вы структурируете свое решение на основе неправильных критериев. Вопрос кажется, что Вы разъедаете о том, поразите ли Вы проблемы реализации или другие трудности путем выбора один по другому. не Делают.

Это подобно решениям Java/.Net. В определенном экземпляре могут быть неопровержимые доводы, но мягкими факторами как знакомство архитектора с платформой является намного более сильный предиктор успеха проекта.

я признаю, что использовал Python намного больше, чем Ruby, но я не сказал бы, что у меня есть любое большое предпочтение между двумя кроме знакомства. Я использовал Python прочь и на приблизительно с 1998, и мне нравится Smalltalkish-мыс Ruby, когда я использовал Smalltalk кратко приблизительно 15 лет назад. Они оба делают подобные вещи немного по-другому.

я хотел бы определенные функции от Ruby (или Smalltalk в этом отношении), но Python не прокладывает себе путь. Вместо этого это имеет другие функции, и идиомы языка немного отличаются от Ruby или Smalltalk. Несколько из другой плакаты связались со статьями, которые сравнивают два.

, Если Вы волнуетесь о направляющих по сравнению с Django, который предполагает, что Вы ищете платформу для веб-приложений. Оба языка имеют хорошую поддержку инструмента и активное сообщество разработчиков. Django, кажется, победитель веб-рукопашной платформы Python, и направляющие, кажется, находится в процессе 'пересечения пропасти' и обеспечения Ruby наряду с ним. Оба - довольно зрелые системы и были продемонстрированы для работы хорошо на респектабельные объемы трафика.

ProTip: присутствие религиозных войн является хорошим индикатором, что никакая сторона не имеет принуждение arguement.

Так, я собираюсь играть защитника дьявола и сказать, что волнение по поводу выбора бессмысленно. Языки имеют преимущества и недостатки друг относительно друга, но ничто, что могло быть просмотрено как заставляющий в общем случае. Фреттинг о подробных достоинствах одной платформы или другого структурирует решение неправильно.

Выбор один и использование это. Вы будете в состоянии к системам сборки эффективно с также.

17
ответ дан Community 29 November 2019 в 06:08
поделиться

Говоря как "Rubyist", я согласился бы с Kiv. Эти два языка оба предоставляют хорошую сумму дрейфа когда дело доходит до парадигм программирования, но, также имеют преимущества/недостатки. Я думаю, что компромиссы, которые Вы делаете так или иначе, много о Вашем собственном стиле программирования и вкусе.

Лично, я думаю, что Ruby может читать больше как псевдокод, чем Python. Во-первых, Python имеет активный пробел, который, в то время как изящный в глазах многих, не имеет тенденцию вводить уравнение при записи псевдокода. Кроме того, синтаксис Ruby довольно гибок. Та гибкость вызывает много причуд, которые могут перепутать, но также и позволяют код, на который это довольно выразительно и симпатично для взгляда.

Наконец, я действительно сказал бы, что Ruby чувствует больше выхода Perl мне. Это частично, потому что я намного более доволен им, таким образом, я могу вырубить сценарии скорее быстро. Много синтаксиса Ruby было одолжено от Perl, хотя, и я не видел, что много Python кодирует, который чувствует себя подобным (хотя снова, у меня есть небольшой опыт с Python).

В зависимости от подхода к веб-программированию требуется взять, я думаю, что типы веб-платформ, доступных на каждом языке, могли, возможно, быть фактором в решении также. Я сказал бы, пробуют их обоих. Можно получить практическое знание каждого из них днем, и в то время как Вы не будете писать потрясающий Ruby или Python, можно, вероятно, установить чувство для каждого и решить, который Вам нравится больше.

Обновление: я думаю, что Вашим вопросом должны на самом деле быть два отдельных обсуждения: один с Ruby, один с Python. Сравнения менее важны, потому что Вы начинаете обсуждать достоинства различий, в противоположность которым язык будет работать лучше на Вас. Если бы у Вас есть вопросы о Ruby, я был бы более, чем рад ответить как лучше всего, я могу.

12
ответ дан nakajima 29 November 2019 в 06:08
поделиться

И Ruby и Python довольно удалены от традиций Lisp неизменных данных, программы как данные и макросы. Но Ruby является очень почти клоном Smalltalk (и я надеюсь, вырастет больше как Smalltalk, поскольку хлам Perlish удерживается от использования), и Smalltalk, как Lisp, является языком, который берет одну идею экстремальным значениям. На основе Вашего требования сделать прохладные взломы на уровне языка я пошел бы с Ruby, поскольку это наследовало много мышления метапрограммирования от Smalltalk, и то мышление подключено к традиции Lisp.

8
ответ дан Norman Ramsey 29 November 2019 в 06:08
поделиться

Alex Martelli дает хороший анализ предмета . Это немного датировано теперь, но я соглашаюсь с основной сутью его: Python и Ruby являются двумя различными способами реализовать то же самое . Уверенный существуют некоторые вещи, которые можно сделать в Ruby, который Вы не можете сделать в Python. И синтаксис верного Python (возможно) лучше, чем Ruby. Но когда Вы переходите к нему, нет большой объективной, научной причины предпочесть один по другому.

А общая вещь, которую Вы услышите, является этим: платформа более важна, чем язык и Python имеют лучшую платформу, чем Ruby (этот аргумент работы оба пути, так не проваливайте меня, все Вы rubyists). И существует некоторая истина к нему. К сожалению, это не очень релевантно все же. Если Вам не нравится платформа для любого языки, существуют реализации и в Java и в.Net, таким образом, можно использовать тех, если у Вас есть опасения по поводу платформы.

5
ответ дан Jason Baker 29 November 2019 в 06:08
поделиться

Я также рекомендую статью Peter Norvig то отправленное именование. Если Вы хотите посмотреть на функциональное программирование в выезде Python модуль functools в стандартной библиотеке.

существует также много комнаты для бездельничания в Python; частные переменные условно и не осуществлены, таким образом, можно ввести по абсолютному адресу вокруг во внутреннем состоянии объектов, если Вы чувствуете себя подобно ему. Обычно это не необходимо, все же.

И Ruby и Python очень объектно-ориентированы и поддерживают функциональное программирование; я не сказал бы, что любой ясно выше к Вашему проекту; это - частично вопрос персонального вкуса.

3
ответ дан Kiv 29 November 2019 в 06:08
поделиться

Я - Pythonista; однако, на основе Ваших требований, особенно "прохладные взломы на уровне языка", я предложил бы Вас, работают над Ruby. Ruby более гибок в Perl путь, и можно сделать много взломов; Python предназначен к удобочитаемость , который является очень хорошей вещью, и обычно взломы языка немного осуждены. Основные типы Ruby могут быть изменены hackish способом, которым обычно позволяют языки прототипа, в то время как основные типы Python больше подходят для разделения на подклассы.

Между прочим, я добавил бы незначительное исправление: и Ruby и Python очень, очень объектно-ориентированы, и ни один не предназначается, чтобы использоваться для быстрых-и-грязных сценариев Perl путь. Среди этих двух Ruby синтаксически более подобен Perl, чем Python.

3
ответ дан tzot 29 November 2019 в 06:08
поделиться

При необходимости в поддержке Unicode не забудьте проверять, как хорошо поддерживаемый это. AFAIK, поддержка Python Unicode лучше, чем Ruby, тем более, что Python 3.0. С другой стороны, Python 3 все еще пропускает некоторые популярные пакеты и сторонние библиотеки, так, чтобы мог бы играть против.

1
ответ дан Adriano Varoli Piazza 29 November 2019 в 06:08
поделиться

Я - Rubyist, который выбрал язык на основе очень похожих критериев. Python является хорошим языком, и я люблю работать с ним также, но я думаю, что Ruby является несколько больше Lispy в степени свободы, которую он дает программисту. Python, кажется, налагает свои мнения немного больше (который может быть хорошей вещью, но не является согласно нашим критериям здесь).

Python, конечно, не является большим количеством Perlish— Ruby, по существу мэшап Smalltalk/Perl (некоторые его менее используемые функции вытягивают непосредственно от Perl), тогда как Python только отдаленно связан с также.

0
ответ дан tzot 29 November 2019 в 06:08
поделиться

выберите самый популярный для своего домена, таким образом, Ваша работа получает большую часть видимости. некоторые могли бы сказать рубин/направляющие для сети, Python для всего остального. выбор языка просто, потому что как шепелявость действительно не подходит для профессионала.

0
ответ дан Dustin Getz 29 November 2019 в 06:08
поделиться