LINUX.ORG.RU

[Веб!] Рубисты, что вы имеете против Пайтона?


0

2

(((((+)
))+-('=
3<-))))
^ Это оберег от лисперов. Если вы - лиспер, то изыйдите из этого треда.

Это очень и очень важный вопрос, который очень часто встаёт при разработки веб-проекта: Почему %human.name% хочет именно руби, именно RoR?
Так случается, что пока я узнал только одну причину, которая действительно важна и является проблемой - объём и уровень готовых компонентов.
Много наслышался я критики со стороны рубистов:
«Да там даже блоки кода ничем не заканчиваются! Путаница!»
«Да там всё неудобно!»
«Меня заставляют форматировать код с отступами!»
«Меня принуждают писать код в одном стиле!»
«Там нет интерфейсов!»
«Python3 полное говно!»
etc.
И, хочу отметить, пока я не слышал ни одного замечания для языка, которое бы действительно имело место.

Хочется узнать мнения здешних рубистов и питонистов. Что вы думаете? Почему выбрали именно свой язык? Какие минусы вы заметили в своём языке(руби или пайтон), которые лучше в другом(руби или пайтон)?

Конечно, будет интересно мнение людей, которые попробовали оба языка и остановились на третьем(если вы - лиспер, читайте в начале сообщения).

Цель треда - выяснить настоящие проблемы пайтона относительно руби.


Ответ на: комментарий от Viglim

Деградировать? Нет, спасибо.

tia
() автор топика

/me в свое время попробовал писать на питоне. Мне понравился простотой и тем, что есть всё. Ну и наличие интерпретатора для моей мобилы тоже радует :) хотя в данный момент пишу на делфи, крестах и жабке, к питону отношусь положительно, как к языку на котором можно без лишних проблем написать и маленький скрипт и большое сетевое приложение (twisted поможет). В частности, на нем написана Vodafone connect для 3г модемов от хуавея.

TERRANZ ★★★★
()

Ну, питон хорош тем, что у него очень много хороших библиотек в огромной сфере применения. Но руби заруливает конкретно для веба своим ror. У django в этом плане также послабее ORM.

Droid790
()

Проблема в том что код на Пайфоне - нечитабельное говно, особенно если он написан в соответствии с PEP8.

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

И почему же он нечитабелен? На мой взгляд очень даже удобно распознавать структуру кода, используя отступы. Тем более, если под рукой нет адекватного редактора с организацией структуры по ключевым словам. А вот куча откывающихся-закрывающихся скобочек - это, ИМХО, жесть! Хотя, всё оно дело привычки :)

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

>оно еще живое?
на самом деле давно протухло
последний раз я на нём писал курсач год назад

что на нем следует писать?

работаю на заводе, тут весь софт написан студентами во время дипломных практик, на делфи пятёрке в связке с оракулом восьмым >_<
по роду работы приходится его подпиливать под меняющиеся нужды или исправлять косяки

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

>удобно распознавать структуру кода, используя отступы.
нас на первом курсе жестоко трахала преподша по программированию за то, чот не использовали «лесенку»
с тех пор у меня лесенка в подкорке головного мозга =_=

TERRANZ ★★★★
()

В общем-то, у питона и нет проблем. А у руби проблема в том, что ruby - это только ror, хотя рубисты и пытаются доказать, что это не так.

Droid790
()

Еще недостаток Питона в том что там многие вещи сделаны через жопу.

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

Согласен, вполне читабелен. Проблема возникает только при copy-paste, тогда иногда бывает, что невозможно автоматически отформатировать код средствами IDE/редактора. Но, наверное, так и было задумано :)

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

Да, твистед просто божественнен. Писал на нём сервера для нескольких игрушек. Нет ни тормозов, ни багов.

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

Можно пример?
Приведи пример нечитабельного кода в соответствии с PEP и тот же самый код, но на руби.

tia
() автор топика
Ответ на: комментарий от Droid790

Да уже не пытаются. Они пытаются просто сказать что он нужен, что его нужно везде применять и что он лучше других.

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

Например?
С примером прошу указать и реализацию на руби.

tia
() автор топика
Ответ на: комментарий от Droid790

Это скорее приятная фишка, которая помогает не копипастить код не думая над ним.

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

Я не знаю Руби, но Питон мне запомнился именно плохочитаемостью. _подчеркивания, self'ы затрудняют чтение.

Хотя причина того что предпочитают ruby не в этом, а просто потому что «так модно».

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

Подчёркивания?
Неужто тебя испугало наличие подчёркиваний в специальных методах?
Возможно, ты смотрел сырец какого-то мета-класса или ещё чего такого, где такой стиль нормален.
self это тоже самое что и this. Т.е. если оно тебе мешает, то это не проблема пайтона, тебе будет не более привычно на любом другом языке.

А руби выбирают, в 90% случаев, из-за готовых инструментов или по работе.
Из-за модности только выбирают мак.

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

Может «модно» неподходящее слово.

Понимаешь, даже если питон действительно лучше чем Ruby, все равно это не причина бросать RoR. Пишут же на c++, хотя есть языки и получше, причем со сравнимой производительностью. Используют Autotools, хотя есть CMake. Тут похожая ситуация, RoR уже распространеннее, причем он не сильно хуже чем какой-нибудь Django. И нужны веские причины чтобы все побросали Ruby и перешли на Python.

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

>Неужто тебя испугало наличие подчёркиваний в специальных методах?

А приватные свойства класса? Когда в коде много подчеркиваний его сложнее воспринимать.

anonymous
()

Читабельность кода скорее это дело привычки.

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

Понимаешь, я уже сказал что минус пайтона - отсутствие инструментов.
Именно отсутствие RoR-подобного фреймворка есть проблема пайтона.
И да, RoR в разы лучше Django.

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

Что «приватные свойства класса»?
Никто не мешает использовать их без подчёркиваний.

tia
() автор топика
Ответ на: комментарий от vertexua

Конкретнее, с примерами, с комментариями.

tia
() автор топика

Я вот, против руби ничего не имею. Пусть он немножко ООП двинутый, пусть там с юникодом шероховатости, пусть стандартная библиотека не такая обширная, но если он хоть немного оттянет на себя молодежь от C++ и Qt, значит это годный, хороший язык.

baverman ★★★
()

PHP
При чём тут C++?

Потому что кресты выбирают добровольно, а PHP исходя из конъюнктуры.

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

А PHP выбирают из-за доступности работы на этом языке, питон и руби могут только косвенно влиять на ситуацию в этом сегменте.

Практически любой пхпэшник в итоге становится латентным рубисто-питонистом и, как итог — нашим.

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

Проблема пайтона в том, что на нём нельзя нормально генерировать код как в лиспе.

Это не проблема питона. Это проблема лисперов.

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

> Проблема пайтона в том, что на нём нельзя нормально генерировать код

Можно. eval строки еще никто не отменял.

Самый большой недостаток Питона (которого лишен Руби) заключается в полном отсутсвтии каких-либо инструментов для создания dsl'ей и метапрограммирования в целом. Плюс в Руби очень хорошо реализовано ООП, чем Питон похвастаться не может и уже видимо не сможет никогда.

tarc
()

Цель треда - выяснить настоящие проблемы пайтона относительно руби.

А тебе не похеру?

power
()

Мне изначально ООП в Python'е показалось сильно прикостыленным и все делается в ручную. Но потом я нашел в этом преимущество и соответствие философии языка, — код легче читать и в нем нет магии.
А идея с отступами вообще отличная, ну по крайней мере минуса в ней не вижу.
С Руби знаком только на уровне «прочел книгу», и он мне кажется чрезмерно усложненным с многими не очевидными вещами. Хотя он мне понравился тоже.

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

> Что это такое?

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

И какие инструменты для него нужны?

Как минимум - нормальные first-class блоки, чтобы их можно было сохранять в переменной и затем выполнять в произвольном контексте

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

Плюс в Руби очень хорошо реализовано ООП, чем Питон похвастаться не может и уже видимо не сможет никогда.

Это слышал много раз, но нормального объяснения, что не так с ООП в Питоне, не слышал ни разу.

нормальные first-class блоки, чтобы их можно было сохранять в переменной и затем выполнять в произвольном контексте

def code_block(o):
    print o

# сохраняем блок кода
b = code_block

# ...

# выполняем блок кода
b()
tailgunner ★★★★★
()
Ответ на: комментарий от tarc

Во-первых, метапрограммирование в питоне таки есть, django использует его в большом количестве, например. Во-вторых, это хороший вопрос, насколько вообще необходимо метапрограммирование и DSL. Построение хорошего DSL в любом случае - сложная штука, причём далеко не 100% необходимая. Но вообще да, руби вроде как помощнее получается.

Droid790
()

Руби, питон... Главное - С! (почти ©)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от tia

>А руби выбирают, в 90% случаев, из-за готовых инструментов или по работе.

ТС


Зачем тогда спрашивал? :}

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

Но какое ни возьми, почти наверняка выйдет что Питон МП не умеет

Бла-бла-бла. Давай код, что-ли. Будем мериться.

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

Зачем создавать DSL если их тысячи? Сам пайтон тоже можно отнести к DSL, если уж на то пошло.
Метапрограммирование? А чего вам лично нехватает?
В пайтоне плохое ООП? Чем? Можно конкретики? С примерами из руби, конечно.

tia
() автор топика
Ответ на: комментарий от archimag

А как оно относится к теме? Даже если лисперы могли бы здесь общаться нормаль, а не просто обкидать всех какашками, сказав какие они золотые, то от их рассуждений лучше не станет.
Я считаю что лисп не подходит для веба(мало для чего он вообще подходит), хотя это не означает что на нём нельзя этого делать.
Для небольших вещей - ок, возможно, но для хоть сколько-нибудь крупных - нет. И да, я видел твой веб-фреймворк.

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

tia
() автор топика
Ответ на: комментарий от urxvt

Да, в этом и суть.
Нет прибитых гвоздями реализаций всего и вся. Всё динамично, всё можно сделать так как ты хочешь или требует задача.
В Python нет интерфейсов или абстрактных классов/методов, но НА пайтоне есть интерфейсы и абстрактные классы/методы: abc, zope.interfaces.
Если abc это простейшая реализация, которая просто даёт то, что дают интерфейсы на других языках, то zope.interfaces даёт то, чего нет нигде, или где приходится писать свои костыли.

tia
() автор топика
Ответ на: комментарий от tarc

>Но какое ни возьми, почти наверняка выйдет что Питон МП не умеет
Ты ставишь себя выше всех? Это плохо, давай сразу с примерами.

Как минимум - нормальные first-class блоки, чтобы их можно было сохранять в переменной и затем выполнять в произвольном контексте

А ведь хороший тред, теперь я знаю что если человек ругает пайтон, то он его 100% не знает.

tia
() автор топика
Ответ на: комментарий от Droid790

А ведь мета-программирования в пайтоне хватает.
Но напомню, на руби всё приколочено гвоздями. В пайтоне же всё это реализовано через модули, через обычный синтаксис.
Если пайтон в чём-то и уступает руби по мета-программированию, то очень хочется узнать в чём, но на примере живого кода с комментариями.

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