LINUX.ORG.RU

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


0

2

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

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

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

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

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


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

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

Точно. Если бы были, то нашли применение и было бы лучше, чем их небыло.

Но и без них хорошо.

А то зона комфорта называется. Встречал кучу людей, причем не глупых людей, которые пишут много лет на жаве и им «хорошо» с кодом вроде

Function<Integer, Integer> fn = new Function<Intger, Integer>(){
  @Override
  Integer apply(Integer from) {
    ....
  }
};

Ко всему привыкаешь, ко всякому говну тоже.

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

Конечно, с изучения пайтона, если вы об этом.
Пока мы особо не хотим набирать людей в команду, ибо пока мы разрабатываем только платформу и, в случае фейла, не хотим подставлять других людей.
Если что, случаем «фейла» будет считаться отказ от создания такой большой платформы, отказ от использования пайтона etc.
Но, как я уже говорил, как мы сделаем платформу и сможем что-то показать, так сразу будем принимать помощь со стороны других людей.

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

Разрешите привнести ещё один вопрос в дискуссию.

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

Собственно вопрос:

Ruby или python? Что выбрать из этих двух языков для решения данной задачи, если ни одного из них я сейчас не знаю, и почему?

P.S. У какого из языков на выходе получается более быстрый байт-код, если такой имеется.

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

CGI умер. Его использование всегда окажетсяхудшим вариантом, который будет очень медленным. Используй webpy на пайтоне, если хочешь чего-то минимального.
Руби сложнее.
Пайтон проще.
Руби медленнее(да-да, в 1.9 он стал не таким тормозом, но всё ещё остался им).
Пайтон не такой и быстрый, чтобы соревноваться в числодроблении с Си, но скорости хватает на многое.

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

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

хорошо, спасибо за совет, а теперь ещё один вопрос.

Какой код легче поддерживать? Форматирование питона не очень способствует быстрому охвату всего участка кода. И как с этим дела обстоят в Руби.

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

Какой код легче поддерживать?

Тот, который лучше написан. Ваш К.О.

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

Что касается вашей задачи, то разницы вообще никакой руби или питон. Попробуйте написать на том и на том. Где ощущения будут лучше, то и ваше. Лично по моим субъективным ощущениям на питон лучше выходят считалки и сетевые штуковины, на руби обработка текста и работа с бд.

dizza ★★★★★
()

После пхп питон кажется чудом

Ничего не могу сказать про руби,я не использовала его в веб-разработке, но питон после пых пыха - чудо, пишу на питоне с удовольствием, в основном использую cherrypy,необычайно гибкий и мощный фреймворк(точнее сервер вебприложений), годится как для простых так и для сложных проектов)))

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

> веря что один плюс языка говорит что все остальные языки - говно.

интересно, о чем тогда говорят два плюса в Си++?

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

> интересно, о чем тогда говорят два плюса в Си++?

о том что в нем, как и в «родителе» языка - С, два плюса означают инкремент, ваш К.О.

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

> но поскольку это мультиметод (которые есть в CL)
и не только в КЛ, так что мимо: http://www.ibm.com/developerworks/linux/library/l-pydisp.html (а еще это показывает, что питон достаточно гибок, чтобы реализовать мультиметоды просто в виде стороннего модуля)

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

> К.О. забыл значения слова «ирония» на палубе вместе с бутылкой рому?

К.О. наплевать на иронию, ваш К.О.

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

> http://www.ibm.com/developerworks/linux/library/l-pydisp.html

Оно же криво чуть менее, чуть полностью.

а еще это показывает, что питон достаточно гибок, чтобы реализовать

мультиметоды просто в виде стороннего модуля



Ну да, так рассуждать, то и ООП в Python ничто не мешает сделать в виде стороннего модуля. Что тормозить будет и что жутко не удобно на самом деле не важно, можно ведь.

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

>Форматирование питона не очень способствует быстрому охвату всего участка кода.
Эм. Что за бред? Хочется чтобы как можно больше кода умещалось на квадратный сантиметр экрана монитора? Пиши на си, без проблелов, отступов, именуй всё по 1-2 буквы.
Отступы просто сразу позволяют писать хорошо читаемый код. А разницы между чтением такого кода на пайтоне и на си ты не заметишь.

И как с этим дела обстоят в Руби.

Повторюсь, отступы следует соблюдать везде.

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

И что с того? Я могу для пайтона привести вообще кучу оптимизаторов, трансляторов в си, пайтон всё-равно будет быстрее.
Важно то, как работает сам интерпритатор без «стероидов».

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

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

dizza ★★★★★
()

Ruby -> Python

Кстати, кто тут плевался, что в питоне код структурируется пробелами? Вот тут люди проект завели, чтобы в руби можно было делать так же: https://github.com/michaeledgar/seamless


«Python allows you to signal the end of a code block with indentation. Ruby suffers from an extremely verbose and tedious block terminator, „end“. Much like Lisps end up with dozens of close-parens, Ruby files that use modules and classes heavily end up with a plethora of „ends“ that just aren't necessary.

Write a Ruby file, but skip all the „ends“. Line up your code blocks like in Python. Then just call it 'your_file.rbe', require 'seamless', and require 'your_file'. Seamless does the rest.»

Droid790
()
Ответ на: Ruby -> Python от Droid790

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

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

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

> И что с того? Я могу для пайтона привести вообще кучу оптимизаторов, трансляторов в си, пайтон всё-равно будет быстрее.
К тому же, есть если код TinyCC слишком медленный, бери clang.
То, что стандартная реализация медленная, не причина говорить, что язык медленный.

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

Именно это и есть причина. И не стандартная реализация, а такая реализация, которая везде используется.

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

Синтаксис это мелочь. Вообще если бы я делал язык, я бы сделал 2 режима: с блоками и с идентацией. Вроде же в Nemerle так было. Похожее расширение видел и для Scheme.

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

А где я говорил про закапывание? Если clang станет основным компилятором и все будут его использовать, то будем судить по нему.

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

Как по мне, так наоборот, python всем удобен, мне бы было проще. Но он намного менее популярен, так если бы хотя бы было по питону что-нибудь вроде php.su то лучше его использовать. А так использую python в системе.

moscwich
()

Затрахали. Чего ругаться то двум лагерям этим? Руби и пайтон немного схожи, поэтому давайте дружить, а воевать с жавой и пшп

ciss
()

Единственное что мне не нравиться в руби и рельсах - так это воздействие рельсов на руби.

В рейлс-конвенции принято держать таб размером в два спейса. Почему плиать не четыри? Когда смотрю код на пайтоне - прямо душе радостно. Рубисты говорят, что мол когда 4-space'а, то код улетает влево, нахера тогда нужен код, спрашивается? Поэтому получается, что и в самом руби все используют 2 спейса.

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

адекватный-фанат-руби

ciss
()

Считаю, что всякие споры такие просто чушь. Как правильно было замечено, Ruby вспоминают как правило в отношении RoR. Но тут даже сам создатель RoR разрулил: RoR - статические сайты, Django - динамические. Что касается меня и моих предпочтений: Python мне больше нравится. Синтаксис проще, и не нагружен сахаром. Сахар не всегда делает код понятнее. Про всякие отступы, и прочую бредятину, буквально сегодня с преподом говорили о молодняке в универе. Пишут код, в редакторах, которые даже автоматически им код форматируют. Они удаляют отступы, и превращают код в лапшу. Так что, мое ИМХО в отношении обязательных отступов в Python: каждого программиста надо пропускать через школу Python еще с университетской скамьи, чтобы сука зарубал на носу, что код форматировать надо. =) ИТОГО: я за Python, но ничего против Ruby не имею. Серебрянных пуль не существует.

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