Комментарии 61
Если честно, заголовок обещал больше интересного материала!
К сожалению я лично не имел опыта с Ruby, зато активно использую Python.
И обращая свой взгляд на Java, «сила которой в библиотеках», могу только согласиться — сообщество остается достаточно важным элементом в инфраструктуре любого языка программирования. То же можно сказать и про набирающий популярность C#, успех которого можно частично объяснить наличию MSDN и активных сообществ…
К сожалению я лично не имел опыта с Ruby, зато активно использую Python.
И обращая свой взгляд на Java, «сила которой в библиотеках», могу только согласиться — сообщество остается достаточно важным элементом в инфраструктуре любого языка программирования. То же можно сказать и про набирающий популярность C#, успех которого можно частично объяснить наличию MSDN и активных сообществ…
Пожалуйста, приведите конкретные примеры, чем хорош Python и чем плох Ruby. Это могут быть какие-то различия в синтаксисе, наличие особых языковых конструкций, документация по языку, коммьюнити и прочее. Это уже обговорили на десять раз, но все-таки конкретика была бы хороша и могла бы заставить задуматься «а не попробовать и мне писать на нем?»
Каждый язык хорош и плох по-своему. И еще немаловажны удобство и привычность использования. Вы же не будете писать на ассемблере парсер текста? И если вы привыкли к Python, логично, что вам будет непривычен Ruby.
Короче, ждем аргументов повесомее :-)
Каждый язык хорош и плох по-своему. И еще немаловажны удобство и привычность использования. Вы же не будете писать на ассемблере парсер текста? И если вы привыкли к Python, логично, что вам будет непривычен Ruby.
Короче, ждем аргументов повесомее :-)
на сколько я понял, автор не пытался сравнивать языки, он говорит о преимуществе сообщества Питона, не более.
Ruby плох в социальном смысле. Используя этот язык программирования, мы получаем много неизвестных факторов-будет ли работать библиотека xxx c версией yyyy. Ответит ли кто-нибудь почему библиотека zzz не работает вовсе. Документацию на библиотеку ХХХ может не оказаться в природе, либо она трудно доступна. И т.д.
А в чем причина плохого социального развития Ruby? Это потому, что рубисты злые?
> И если вы привыкли к Python, логично, что вам будет непривычен Ruby.
Пару месяцев назад пришлось взяться за Руби, причём прямо посередине проекта. Если не вдаваться в нюансы, то языки очень похожи, главная разница в том, что Руби позволяет экспериментировать со стилем и говнокодить, а Питон держит в строгих рамках.
вот правда Рельсы по сравнению с Джанго это Франкенштейн какой-то.
Пару месяцев назад пришлось взяться за Руби, причём прямо посередине проекта. Если не вдаваться в нюансы, то языки очень похожи, главная разница в том, что Руби позволяет экспериментировать со стилем и говнокодить, а Питон держит в строгих рамках.
вот правда Рельсы по сравнению с Джанго это Франкенштейн какой-то.
вот правда Рельсы по сравнению с Джанго это Франкенштейн какой-то.Вы не могли бы пояснить эту мысль?
Попробую.
при инсталляции Джанго, мы получаем некий минимальный, чистый скелет проекта. Одна аппликация занимает 3 файла (vews, forms, models) и хтмл-шаблоны. Возможно это совсем не MVC, зато логично и просто.
В Rails начальная установка тащит с собой и неиспользуемые тесты и библиотеки джаваскрипта и ещё вагон всяких хелперов\конфигов разбросанных по разным каталогам с несколькими степенями вложенности в которых очень легко запутаться с непривычки.
К генерации десятка разбросанных по разным каталогам файлов при генерации модели для базы данных я тоже ещё не могу привыкнуть, возможно сказывается предвзятое мнение.
при инсталляции Джанго, мы получаем некий минимальный, чистый скелет проекта. Одна аппликация занимает 3 файла (vews, forms, models) и хтмл-шаблоны. Возможно это совсем не MVC, зато логично и просто.
В Rails начальная установка тащит с собой и неиспользуемые тесты и библиотеки джаваскрипта и ещё вагон всяких хелперов\конфигов разбросанных по разным каталогам с несколькими степенями вложенности в которых очень легко запутаться с непривычки.
К генерации десятка разбросанных по разным каталогам файлов при генерации модели для базы данных я тоже ещё не могу привыкнуть, возможно сказывается предвзятое мнение.
Понятно, спасибо
Эмм… а не пробовали вникнуть немного глубже, а потом хаять? При создании нового приложения можно отключить и тесты, и js. А про «десяток» файлов при генерации модели вообще непонятно о чем речь.
Соглашусь с тем, что с непривычки в Rails сложно разбираться. И меня тоже поначалу пугало огромное количество файлов, которое занимает чистый проект. Но, когда появляются навыки работы с Rails, этот зоопарк перестает мешать, он с лихвой компенсируется скоростью разработки. Папок создается много, но не во все из них надо заглядывать, некоторые нужны только для скриптов. Мне кажется, что основной минус Rails — не большое число файлов, а именно высокий порог вхождения. Ну, и нельзя не согласиться с автором топика: с документацией в том же Rails куда хуже, чем в Django.
> Почему python стал моим удобным инструментом для повседневной жизни, а ruby-нет
— Потому что на двух конях сидеть тяжело.)
А если честно, — то каждый подход имеет право на существование. И до тех пор, пока есть сторонники какого-либо подхода, он будет существовать.
Я, в какой-то мере, рад, что есть Руби. Не потому, что он лучше или хуже. А потому что Руби заставляет Гвидо быть более осмотрительным и взвешенным, и еще потому, что люди с Руби-мышлением пишут на Руби, и оставляют Питон быть таким, какой он есть. Ментальности все-таки у них разные.
— Потому что на двух конях сидеть тяжело.)
А если честно, — то каждый подход имеет право на существование. И до тех пор, пока есть сторонники какого-либо подхода, он будет существовать.
Я, в какой-то мере, рад, что есть Руби. Не потому, что он лучше или хуже. А потому что Руби заставляет Гвидо быть более осмотрительным и взвешенным, и еще потому, что люди с Руби-мышлением пишут на Руби, и оставляют Питон быть таким, какой он есть. Ментальности все-таки у них разные.
> В третьих подавляющее число разработчиков библиотек представлены в общем репозитории.И не нужно искать библиотеки в сети.
А с Руби как-то по-другому? Система гемов наверно даже получше будет. А уж недостатка в решениях, сообществе, документации и прочих экосистемах точно не наблюдаю. Руби — самый дружественный язык в плане экосистемы.
Скорость работы не так важна, как скорость и стоимость разработки.
А с Руби как-то по-другому? Система гемов наверно даже получше будет. А уж недостатка в решениях, сообществе, документации и прочих экосистемах точно не наблюдаю. Руби — самый дружественный язык в плане экосистемы.
Скорость работы не так важна, как скорость и стоимость разработки.
У Ruby страшная фрагментированность всего. В гемах далеко не всё. А сама систем гемов вполне себе хороша.
То, что вы называете фрагментированностью, я бы назвал минимализмом и необходимым разделением функций и областей их применимости. Как UNIX: одно маленькое действие — одна маленькая утилита.
Хуже, когда библиотеки представляют собой снежный ком из всего, что под руку попадётся.
«В гемах далеко не всё» — но так уж нужно ли это ВСЁ? Опенсорс же — дописывай нужное сам :)
Хуже, когда библиотеки представляют собой снежный ком из всего, что под руку попадётся.
«В гемах далеко не всё» — но так уж нужно ли это ВСЁ? Опенсорс же — дописывай нужное сам :)
Репозиторий для того и нужен, чтобы можно увидеть все библиотеки, их состояние, соответствие версиям и т.д.
Чтобы не писать 101-й кривой велосипед.
>Хуже, когда библиотеки представляют собой снежный ком из всего, что под руку попадётся.
Да минимизация зависимостей от внешних модулей вещь правильная.
Чтобы не писать 101-й кривой велосипед.
>Хуже, когда библиотеки представляют собой снежный ком из всего, что под руку попадётся.
Да минимизация зависимостей от внешних модулей вещь правильная.
гемы?
Знаете, я как-то мудохался с установкой redmine час, потому что gem не мог поставить пакет mysql из-за каких то несовместимостей.
Обновить redmine? Mission impossible для человека, который ruby не занимается и не знает что там к чему. Так и сидим на версии редмайна 3-х летней давности, потому что что-бы поставить его хотя бы рядом с тестовой базой, нужно сломать к чертям текущее ruby окружение, что естественно убивает текущий redmine.
А ещё перл — обновил MySQL на 1 минорную версию. В ней выпилили depricated (уже много лет) фишку при соединении (ruby gem mysql шлёт лишнее). Багу уже хз скока времени, но почему-то фикса нигде нет. В итоге пришлось откатить MySQL (что в убунте особый вид секса).
З.Ы. Всё приправленно геммороем ubuntu (после логичности и простоты Gentoo — убунту вижу в кошмарах) ИМХО.
Знаете, я как-то мудохался с установкой redmine час, потому что gem не мог поставить пакет mysql из-за каких то несовместимостей.
Обновить redmine? Mission impossible для человека, который ruby не занимается и не знает что там к чему. Так и сидим на версии редмайна 3-х летней давности, потому что что-бы поставить его хотя бы рядом с тестовой базой, нужно сломать к чертям текущее ruby окружение, что естественно убивает текущий redmine.
А ещё перл — обновил MySQL на 1 минорную версию. В ней выпилили depricated (уже много лет) фишку при соединении (ruby gem mysql шлёт лишнее). Багу уже хз скока времени, но почему-то фикса нигде нет. В итоге пришлось откатить MySQL (что в убунте особый вид секса).
З.Ы. Всё приправленно геммороем ubuntu (после логичности и простоты Gentoo — убунту вижу в кошмарах) ИМХО.
Про Redmine подпишусь всеми руками. Пожалуй, единственный кактус, который приходится продолжать жрать.
Юзеров функционл устраивает. DEB работает из коробки.
Столкнулся с той же ситуацией. В общем, для экономии усилий и времени пришлось поставить DEB-пакет в Убунте версии 0.9.3 и оно как-то работало. Через год юзеры попросили обновления. После недельных танцев с бубном подняли таки Redmine 1.3.0 на другом сервере. Оно совершенно неподдерживаемо и не обновляемо. Задачи при этом перенести так и не смогли…
Реальный gem-hell.
Юзеров функционл устраивает. DEB работает из коробки.
Столкнулся с той же ситуацией. В общем, для экономии усилий и времени пришлось поставить DEB-пакет в Убунте версии 0.9.3 и оно как-то работало. Через год юзеры попросили обновления. После недельных танцев с бубном подняли таки Redmine 1.3.0 на другом сервере. Оно совершенно неподдерживаемо и не обновляемо. Задачи при этом перенести так и не смогли…
Реальный gem-hell.
постоянно обновляю redmine (от 0.9, до версии 1.2 обновились на сегодня).
проблем с переносом данных и плагинов не огребали.
впереди переход на 1.3.
P.S.: как ни странно, больше проблем возникло при попытке перехода с MediaWiki 1.17 на 1.18.
проблем с переносом данных и плагинов не огребали.
впереди переход на 1.3.
P.S.: как ни странно, больше проблем возникло при попытке перехода с MediaWiki 1.17 на 1.18.
Несколько недель назад встала необходимость обновить ruby до ветки 1.9 на офисном сервере. Как следствие нужно было и перенести Redmine на него боялся что не заведется. Но, о чудо, руби собрал из исходников, накатил пасажира, обновил до последней версии Redmine, bundler подтянул все зависимости. Перезапуск сервера, все работает. Никакой головной боли, все на месте.
Этот давнозревший эпичный холивар (.py vs .rb) на over9000 постов и 100500 комментов попадёт в аналы истории.
Хуже доков, чем в Питоне, я не видел. Боюсь представить, как там в Руби.
Не бойтесь.
Во-первых, к 90% гемов и репов на гитхабе есть README для быстрого старта (чаще всего этого достаточно) и Wiki (для тех, кому-таки мало README). Во-вторых, код самодокументирован. Ни разу не встречал говнокода на Ruby. Всё понятно и легко осознаваемо. В-третьих, всегда можно обратиться к непосредственным разработчикам, которые *IRONY* по большей части ещё живы (в отличие от других языков).*IRONY*
Во-первых, к 90% гемов и репов на гитхабе есть README для быстрого старта (чаще всего этого достаточно) и Wiki (для тех, кому-таки мало README). Во-вторых, код самодокументирован. Ни разу не встречал говнокода на Ruby. Всё понятно и легко осознаваемо. В-третьих, всегда можно обратиться к непосредственным разработчикам, которые *IRONY* по большей части ещё живы (в отличие от других языков).*IRONY*
Хорошие там доки! Не говоря об интерактивных доках для каждого класса/метода someMethod.__doc__
Единственная проблема — большинство на английском… Но разве это проблема?)
Единственная проблема — большинство на английском… Но разве это проблема?)
О да, разумеется, для каждого класса! Например, urllib2.urlopen() выбрасывает кучу ошибок типа HTTPException, которые документация не упоминает, с полями, которые в документации тоже не описаны.
Еще можно пытаться разобраться в документации DB API, которая на первый взгляд напоминает свалку.
Еще можно пытаться разобраться в документации DB API, которая на первый взгляд напоминает свалку.
Согласен. Только вчера urllib2 выкинул неведомый эксепшн, который стал неожиданностью. Та же проблема была с smtplib. С документацией DB API не знаком, но «свалку» представляю.
ИМХО, такое есть в каждом языке — что Java, что Python. Это этика сообщества — не каждый, кто коммитит новые фичи или фиксит баги — хорошо это документирует.
А ведь и мы не так хороши: ведь в том же python можно просмотреть чужой код и помочь в документировании. Это не долго, а пользы — много. Что же мешает?
P.S. ИМХО, нужен строгий контроль качества. В ruby с этим лучше?
ИМХО, такое есть в каждом языке — что Java, что Python. Это этика сообщества — не каждый, кто коммитит новые фичи или фиксит баги — хорошо это документирует.
А ведь и мы не так хороши: ведь в том же python можно просмотреть чужой код и помочь в документировании. Это не долго, а пользы — много. Что же мешает?
P.S. ИМХО, нужен строгий контроль качества. В ruby с этим лучше?
Я вообще удивляюсь когда люди не документируют свое творение. Потратить энное к-во дней на разработку, тестирование, отладку и потом пожалеть дня на то чтобы свое детище нормально задокументировать и оформить… Разве это так сложно? А по поводу «код самодокументирован» — это все хорошо, но для людей которые уже знают язык достаточно хорошо, начинающим это никак не поможет
Все заметили, что религиозные срачи руби-питон начинают питонисты? Они таки чувствуют себя ущербными. Рубисты просто стоят в стороне и смеются над питонистами. Рубисты делают своё дело. Рубистам нравится то, что они делают. Остальное — суета.
Неправда, там где я — срач начинают рубисты.
Тебе кажется. Рубисты давно познали дзен и улетели на волшебных звездолётах любоваться тремя лунами других панет. Им похуй на питон.
Питонщикам среди питонщиков глубоко пофиг на руби. Рубистам среди рубистов глубоко пофиг на питон.
Если в обществе рубистов оказывается питонщик, он может начать срач (даже не специально), т.к. считает, что питон лучше (если б считал иначе, писал бы на руби). Если в обществе питонщиков окажется рубист, он может начать срач (даже не специально), т.к. считает, что руби лучше (если б считал иначе, писал бы на питоне).
В итоге получаем кучу рубистов, которые считают, что срач разводят питонщики (пока питонщик не появился, срача не было). И кучу питонщиков, которые считают, что срач разводят рубисты (пока рубиста не было, срача не было).
Вывод: нефиг разводить срач.
Если в обществе рубистов оказывается питонщик, он может начать срач (даже не специально), т.к. считает, что питон лучше (если б считал иначе, писал бы на руби). Если в обществе питонщиков окажется рубист, он может начать срач (даже не специально), т.к. считает, что руби лучше (если б считал иначе, писал бы на питоне).
В итоге получаем кучу рубистов, которые считают, что срач разводят питонщики (пока питонщик не появился, срача не было). И кучу питонщиков, которые считают, что срач разводят рубисты (пока рубиста не было, срача не было).
Вывод: нефиг разводить срач.
Я таки настаиваю на своей версии. Кстати, руби объективно лучше.
Мы, в общесте PHP-ников (говорю за себя лично и мой круг знакомых) только рады Python или Ruby разработчику, что бы послушать что у них хорошего и интересного. Что бы потом неподходящую для PHP задачу решить другими вариантами.
Ну и да, развеиваем мифы насчёт PHP как такового.
Получается как правило плодотворно и никакого срача :)
Ну и да, развеиваем мифы насчёт PHP как такового.
Получается как правило плодотворно и никакого срача :)
Топик минусанул, не дело это холивары разводить на ровном месте. Из того, что один хороший, не следует, что другой плохой.
Скромно позволю себя процитировать.Видимо не читали внимательно.
>Но пользуюсь я до сих пор python, совсем не потому что python лучше чем ruby.
Конечно все имеют право на оценку.Но и я готов отстаивать своё право на свободу выражения своих мыслей.Даже ценой потери кармы.
>Но пользуюсь я до сих пор python, совсем не потому что python лучше чем ruby.
Конечно все имеют право на оценку.Но и я готов отстаивать своё право на свободу выражения своих мыслей.Даже ценой потери кармы.
Неделя Ruby VS Python на хабре?
Не могу удержаться что бы не потролить (видно ромашковый чай с мёдом и лемоном действует как-то неправильно) насчёт того, что PHP адепты как-то не вмешиваются и никого не трогают :)
PHP адепты, вроде меня, слюной истекают в ожидании когда всё вкусные плюшки добавят в PHP.
Не знаю, лично я вместо бесполезных холиворов Go поиграться скачал. Да и 'адептизм' как мне кажется это что-то из ряда ненормального :) Есть задача — есть язык — есть деньги — купил яхту — выпил вина — погулял у моря — умер. Жизнь удалась :D
Какие-то тупые холивары. Питон легко встраивается, Ruby не встраивается. Вот и все. Поэтому связка python и qt популярна, поэтом cocos2d использует питон. У рубу огромное кол-во гемов и нормальный метод их установки (в питоне зачем-то есть easy_install, которым надо поставить pip, у которого ну сверх большое время холодного старта). А так оба языка весьма ущербны.
Пишу на руби, да.
Пишу на руби, да.
#include <iostream>
#include <ruby.h>
using namespace std;
int main(void)
{
ruby_init();
ruby_init_loadpath();
int status;
rb_load_protect(rb_str_new2("./test.rb"), 0, &status);
if (status) {
VALUE rbError = rb_funcall(rb_gv_get("$!"), rb_intern("message"), 0);
cerr << StringValuePtr(rbError) << endl;
};
ruby_finalize();
return status;
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Почему python стал моим удобным инструментом для повседневной жизни, а ruby-нет