LINUX.ORG.RU

Python или Ruby, немного порассуждаем


2

4

Добрый день уважаемые форумчане. Это не холивар, просто хочу узнать ваше мнение об этих двух языках. Итак.

Задача: выучить новый язык, который был бы достаточно универсальным, при этом приятным в применении. Хочется выйти за рамки мира PHP, хоть он и стал уже не так плох (фреймворки Symfony, Yii, нормальный ООП и проч). Поковырявшись в обоих, пришел к мнению, что: Ruby имеет почти интуитивный синтаксис, куча замечательных фич делается легко и просто, нормальный ООП с областями видимости, блоки и итераторы. Python в этом плане более коряв. НО, когда дело касается распространенности и сферы применения, Python легко уделывает Ruby. Какой язык уже установлени почти в любом линуксовом дистрибутиве? Python. У кого куча библиотек на все случаи жизни? Опять Python. Плюс Cpython, JPython, IronPython.

Не знаю как так получилось, но хотя и возможно применять Ruby для десктопа и мобильной разработки например, мало кто это делает. Получается что Ruby узко завязан на фреймворке Ruby on Rails и веб девелопменте, остальное не так распространено.

Стало быть, мой выбор Python. Поправьте меня если я не прав.

Перемещено tazhate из general

Зачем ограничивать себя? Учи оба.

olibjerd ★★★★★ ()

Использую рубины плотно, и ни разу не для веба.

По началу тоже выбирал по «православности».

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

Выбором доволен и еще ни разу не пожалел.

fraxinum ()

Учи python+django, если для веба надо. Там много веселых фич есть.

vurdalak ★★★★★ ()

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

Учи оба.

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

python+django

python ещё ладно, это дело вкуса. Но за советание джанги надо бить морду

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

Потому что ты не делаешь ничего серьёзного. Бордочки - ерунда

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

А серьёзное это что? И чем для него не подходит джанга?

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

python ещё ладно, это дело вкуса. Но за советание джанги надо бить морду

Не суть, на питоне есть и другие фреймворки. Да и Джанга не монолитна, не нравится её ORM (вроде в осномном из-за него ругают Джангу) — можешь заменить на другой. Шаблоны тоже можно заменить.

anonymous ()

Поправьте меня если я не прав.

Ruby лучше писона. Но главный профит от него это Rails. Хочешь писать для десктопов, мобильной разработки и прочего - учи Java, писон по сравнению с ней негодный.

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

Ну так не всем же делать «серьезное».

А ты, кстати, на чем «серьезное» пишешь?

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

заменить

И что останется? Фреймворк на то и фреймворк, что в нём сразу куча нужного.

anonymous ()

Какой язык уже установлени почти в любом линуксовом дистрибутиве?

У тебя какие-то проблемы с установкой руби? Какие именно?

Cpython, JPython, IronPython

Rubinus, JRuby, IronRuby

применять Ruby для десктопа и мобильной разработки

Использовать интерпретируемые языки для десктопа, а тем паче мобилок, — очень негодная идея. Учи C++/C#/Java/Obj-C тогда уж.

Apple-ch ★★ ()

Раньше тоже таким же вопросом задавался что выбрать Python или Ruby. По совету коллеги выбрал Python, пишу на нем всякие не большие скрипты. Но тут что-то стукнуло в голову и решил поковырять Ruby. Если честно языки похожи друг на друга, где-то читал что Гвидо ван Россум сказал, языки Python и Ruby почти близнецы. Вообщем тебе решать какой из них выбрать, как мне Ruby понравился больше он легче в изучении чем Питон. А, лучше возьми и попробуй оба языка.

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

Скала? И что серьезного ты на ней написал? Показывать наверное нельзя, да?

pi11 ★★★★★ ()
Ответ на: комментарий от Apple-ch

У тебя какие-то проблемы с установкой руби? Какие именно?

Проблем с установкой нет. На дебиан таки запаковали Ruby 2 через 6 месяцев после релиза. =) До этого ставил из сырцов, полет нормальный. Имелось ввиду что Python ставится по умолчанию. То есть уже есть софт его испльзующий, и много. Значит люди писали на Python, а не на Ruby. Вот и все.

Использовать интерпретируемые языки для десктопа, а тем паче мобилок, — очень негодная идея. Учи C++/C#/Java/Obj-C тогда уж.

А чем плох Python для декстопа? Подумаешь сам интерпретатор запаковать нужно =) Не видео кодек же пишем, сишное быстродействие не нужно. Какая разница откуда Qt окошки вызывать, хоть Python хоть Ruby (последний похуже по отзывам).

belbot ()

Хочется выйти за рамки мира PHP
Ruby имеет почти интуитивный синтаксис, куча замечательных фич делается легко и просто
Python в этом плане более коряв. НО, когда дело касается распространенности

выбери руби. Не пополняй питон сообщество еще одним пыхером быдлокодером. И так «питон тормозит», пусть и руби попритормаживает.

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

Но главный профит от него это Rails.

- честно говоря мне кажется что не главный, а единственный. Так уж сложилось.

Итак, всем спасибо, как результат моих долгих колебаний и ковыряний обоих языков выбираю Python. Может он местами не так лаконичен, но он больше согласуется с ходом моих мыслей. Не взрывает мозг. Мои аргументы: - Философия Python - Тонны готовых решений - Широкая область применения

Не скажу плохого про Руби, просто положу в долгий ящик.

А насчет Rails: для веб у меня есть опыт и знание Symfony и Yii. Может они местами и уступают рельсам, но пока их более чем достаточно для сытой жизни.

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

выбери руби. Не пополняй питон сообщество еще одним пыхером быдлокодером. И так «питон тормозит», пусть и руби попритормаживает.

Автор, а вы сноб и тролль однако. И телепат похоже =) По одному языку, даже на код не взглянув, сразу определили кто перед вами.

belbot ()
Ответ на: Бери Perl от makyrros

Ибо сочетает в себе достоинства обоих языков:

почти интуитивный синтаксис, куча замечательных фич делается легко и просто

и

куча библиотек на все случаи жизни

makyrros ()

Но если Perl в пролёте, и ты выбираешь исключительно между Ruby и Python, то Ruby, ибо TIMTOWDI.

makyrros ()

Это не холивар

Ну-ну :D

просто хочу узнать ваше мнение об этих двух языках.

Моё мнение — если нужно написать и забыть, то удобнее Ruby. Если нужно поддерживать и разбираться в своём коде хотя бы год спустя — то Python.

Если нужна развитая инфраструктура в широких областях применения — то Python. Если достаточно одного Web-фреймворка — то Ruby.

В остальном они идентичны.

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

Десктопного софта на джаве полторы штуки, а отличие от.

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

честно говоря мне кажется что не главный, а единственный

Ещё скрипты на Ruby писать удобно, намного приятнее, чем на shell.

Alve ★★★★★ ()

Главная ошибка новичков - они думают, что дело в языке.

tazhate ★★★★★ ()

Оба говно. Смотри в сторону языков с статической типизацией.

Dark_SavanT ★★★★★ ()

. Стало быть, мой выбор Python.

правильный выбор

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

Это потом понимаешь, что тебе пофигу на каком языке писать, все они в рамках одной парадигмы практически одинаковы. Разница в стандартной библиотеке и синтаксисе.

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

Это потом понимаешь, что тебе пофигу на каком языке писать, все они в рамках одной парадигмы практически одинаковы. Разница в стандартной библиотеке и синтаксисе.

Казалось бы, при чем тут «потом»? :)

tazhate ★★★★★ ()

Для простеньких задач — любой скриптовый подойдет, для сложных — учи одновременно три:

Common Lisp + Erlаng/OTP + C

эта связка покрывает 99+% задач.

Кроме того, на этой связке можно комфортно писать не вылезая из GNU Emacs.

gensym ★★ ()
Последнее исправление: gensym (всего исправлений: 1)
Ответ на: комментарий от tazhate

у некоторых это «потом» не наступает вообще. Хоть лиспосрачи возьми.

Dark_SavanT ★★★★★ ()

Если ищешь что-то «универсальное», то да - Питон попроще и он более широко используется. Если больше интересен веб - то тут Руби получше - дефолтный развитый фреймворк, больше работы, стартапы.

Но вообще, оба языка день сегодняшний, полуунылый праматизм, а инновации и интересные вещи сейчас больше идут в других областях. Посмотри на Scala, Clojure, Go, Rust, Julia. Каждый из них по-своему интересен и более того, из-за смены парадигмы, отличающейся философии ты можешь стать лучшим программером на своём языке.

podelkin ()

Руби был в моде, но говорят, что Ruby is not cool anymore. А Python есть Python - ползет и душит, душит и ползет.

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

Посмотри на Scala, Clojure, Go, Rust, Julia [...] ты можешь стать лучшим программером на своём языке.

...и единственным

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

21 век на дворе, а ты предлагаешь еще зазря мучиться с типами переменных?))

anonymous ()

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

Bad_ptr ★★★★ ()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

у некоторых это «потом» не наступает вообще. Хоть лиспосрачи возьми.

а потому что лисп был первым идеологически верным языком семейства динамических. Остальные языки, фактически являются недолиспами разной степени уродства.(хотя СОММОН LNCP тоже коряв)

Bad_ptr ★★★★ ()

Получается что Ruby узко завязан на фреймворке Ruby on Rails и веб девелопменте, остальное не так распространено.

Сам ответил

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

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

Я тебя прошу, не нужно писать для десктопов на Java. Разве что когда в браузере на десктопе, а Java при этом на сервере ;)

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

Да ну? По крайней мере на Scala работы есть достаточно (если город большой), сам работаю. На Go скоро будет. Но я имел ввиду другое - автор, как я понял, уже на чём то пишет, судя по посту, поэтому я и порекомендовал ему выучить язык с другой парадигмой.

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

По крайней мере на Scala

Расскажи мне о работе на Julia.

На Go скоро будет

Или не скоро. Или не будет.

я и порекомендовал ему выучить язык с другой парадигмой.

На «другую парадигму» в твоем списке претендует разве что Clojure. Но Clojure бесполезен без билиотек JVM, так что изучать его просто ради новой парадигмы непрактично.

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

Со Scala ФП учится тоже на ура - есть курс и книга по этой теме. Но в целом, с прагматичной точки зрения, соглашусь с тобой - Питон и Руби это стабильность на сегодня-завтра. Но автор не работу ищет.

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

В 21 веке я тебе предлагаю зазря не мучиться с отсутствием типов переменных.

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

Спасибо господа, было приятно выслушать ваши ответы. =)

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

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

P.S. Системному программированию свой удел.

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