Кто пишет на Ruby и/или Rails?
Решил затеять этакую перепись населения. Ну-ка признавайтесь, кто пишет на рубиновом языке и укладывает рельсы? :)
Недавно случилось так, что я начал использовать Rails в работе - поддержка нескольких туристических сайтов и сопутствующей партнёрской программы. Фреймворк очень простой и логичный, но вместе с тем мощный и гибкий. До этого я много лет был PHP-программистом, использовал Zend Framework - очень нравился из-за своей "классической" PHP-идеологии. Но тяга к прекрасному пересилила, и вот совсем недавно я устроился на работу rails-разработчиком практически без опыта. Думал об этом ещё в конце 2008 года, тогда я в качестве ознакомления попробовал сделать какие-то простые проекты - дико понравилось, но потом не найдя работу забросил, устроившись PHP-программистом. Впервые услышал о фреймворке в 2006 году, тогда у нас с друзьями был небольшой стартап и мы быстро хватали всё новое. Правда, в то время я не воспринял эту технологию всерьёз - это казалось экзотикой не для российских реалий, не говоря уже о том, что никто не знал, что вообще за язык Ruby. Хотя сейчас я понимаю, что много упустил тогда :)
Сейчас у меня уже есть определённый опыт, я освоился, но с нуля крупных проектов ещё не делал.
А пока мне просто узнать мнение сообщества о Ruby/Rails, готов ответить на любые вопросы. Кому что интересно - спрашивайте.
Очень интересно, а какие существенные различия между Рубином и РНР?
Что вы назваете тягой к прекрасному?
На мой взгляд Руби до сих пор является экзотикой.
Очень интересно, а какие существенные различия между Рубином и РНР?
Что вы назваете тягой к прекрасному?
Более менее приличный метапрограмминг. Вся краса рубей (а точнее рельсов) - исключительно благодаря ему.
Из Википедии:
Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования.
Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Однако в контексте Ruby это означает наименьшее удивление не при знакомстве с языком, а при его основательном изучении. Сам Мацумото утверждает, что целью разработки была минимизация неожиданностей при программировании для него, но после распространения языка он с удивлением узнал, что мышление программистов похоже и для многих их принцип «наименьшей неожиданности» совпал с его принципом.
Имеет лаконичный и простой синтаксис, частично разработанный под влиянием Ада, Eiffel и Python.
Имеет независимую от ОС поддержку невытесняющей многопоточности.
Если описать коротко, то можно говорить про "синтаксический сахар".
Я как попробовал на пару вечеров - так быстро отвык от PHP, настолько понравился стиль синтаксиса.
Обоснуйте? Рельсы уже давно используются в куче крупных проектов, например Twitter, Github и даже в самых простых и заурядных коммерческих сайтах из трёх страничек. Экзотики нет никакой - поставил и работай.
Думаю, если проект достаточно серьёзный, то проблем с хостингом не должно быть. Мы же не васипупкины, чтоб брать классический шаред-LAMP за 50 рублей в месяц? Это просто несерьёзно.
Предложения по виртуально-выделенным стоят от 150 рублей, так что ни разу не экзотика. В моём рабочем проекте используется именно VDS с Ubuntu. Все счастливы.
Когда-то и PHP был экзотикой и васипупкины искали, как сделать круто на бесплатном хостинге без похапе (да и сейчас ищут).
Лично меня больше интересует JRuby - это прелесть во всем своем проявлении :)
Фоловлю в twitter'e одного из авторов JRuby. писал он ни раз, что JRuby прекрасно можно подружить и с рельсами.... а это мне лично еще больше нравится :)
Лично меня больше интересует JRuby - это прелесть во всем своем проявлении :)
Фоловлю в twitter'e одного из авторов JRuby. писал он ни раз, что JRuby прекрасно можно подружить и с рельсами.... а это мне лично еще больше нравится :)
Вот это интересно. Правда, я каждое утро, открывая NetBeans с Rails-проектами (там есть возможность выбрать JRuby для запуска), ломаю голову - ЗАЧЕМ? :) Неужели кому-то не хватает чистого Ruby или чистой Java? Зачем этот велосипед? Зачем этот синтаксический компот? Rails-проекты спокойно запускаю на JRuby + GlossFish НО ЗАЧЕМ?
Троллейбус из хлеба - непрактично.
Предложения по виртуально-выделенным стоят от 150 рублей, так что ни разу не экзотика. В моём рабочем проекте используется именно VDS с Ubuntu. Все счастливы.
Когда-то и PHP был экзотикой и васипупкины искали, как сделать круто на бесплатном хостинге без похапе (да и сейчас ищут).
Ну делать "достаточно серьезный проект" на языке который только начал изучать - вполне так себе. Разве что заказчик согласится играть роль кролика.
Эммм, какое-то передёргивание фактов.
"Начал только изучать" - видимо про меня, всё верно.
"Достаточно серьёзный проект" - абстрактно, по отношению к хостингу.
"заказчик согласится играть роль кролика" - видимо снова про меня, однако проект успешно работал без меня 4 года?.
Троллейбус из хлеба - непрактично. [/QUOTE]
Ну почему же непрактично. Кажется мне, что ты относишься к этому немного поверхностно, не углубившись в суть :)
jruby это по сути тот же ruby, но использующий возможности jvm. А это в свою очередь дает ряд приемуществ:
- мы получаем более высокую производительность, по сравнению с чистым ruby. как не крути, но java код работает быстрее ruby, тем самым с jruby мы уменьшаем среднее время исполнения
- если использовать java real time threading имплементацию, то мы получаем и real time threading для ruby с jruby конеш
- многие товарисчи жалуются, что в ruby недостаточное колличество библиотек. с jruby это решается, так как мы имеем возможность использовать стандартные библиотеки java, кот. кстати говоря, выполнены намного лучше, чище и просто вылезаны чем либы, скажем питона....уж простите..
- слышал мнения питоновцем по поводу Rails - сетуют, что Rails просто тормоз, по сравшению с "несравненным" Django. помоему туфта собачья и зависит конечный результат от писаки. видел несколько сатов на Rails - ничуть не тормозит и работает прекрасно. дак вот, с jruby потенциальная скорость исполенния Rails apps должна быть выше.
- ну и мы можем вызывать java код из ruby и наоборот
[QUOTE=hardcase]А как же Scala? (Да, я адепт строгой статической типизации :D) [/QUOTE]
видишь ли, это немного другая штука..scala это эксперементальный object oriented язык со строгой статической типизацией использующий возможности jvm и т.д. и т.п. мда, может использовать и возможности .NET.... но, как мне видится, основная его цель - более "чистый" и элегантный синтаксис, призванный облегчить жизнь java программера, что бы тот производил меньше кода при той же функциональной задаче. это некая надстройка над java & jvm, а jruby использует и ruby и java.
регулярно слушаю подкаст JavaPosse - один из ведущих Scala консультант. короче говоря, про него наслышан и даже очень, но серьезно не пробавал. только лишь глядел в samples.
"Начал только изучать" - видимо про меня, всё верно.
"Достаточно серьёзный проект" - абстрактно, по отношению к хостингу.
"заказчик согласится играть роль кролика" - видимо снова про меня, однако проект успешно работал без меня 4 года?.
причем тут ты? Я вообщето о себе говорю.
Да, конечно. Я сам на NetBeans сижу. Предпочитаю ставить готовый руби-заточенный пакет нетбинса.
Не могу пока настроить работу rspec в нетбинсе. Приходится через консоль работать. Не сталкивался?
Вот что я сейчас сделал:
1. Открыл правой кнопкой по проекту Generate... не увидел там rspec.
2. sudo gem install rspec_generator
3. Перезапустил IDE.
4. Пункт появился. Сгенерировал rspec.
5. ??????
6. PROFIT!
1. Открыл правой кнопкой по проекту Generate... не увидел там rspec.
2. sudo gem install rspec_generator
3. Перезапустил IDE.
4. Пункт появился. Сгенерировал rspec.
5. ??????
6. PROFIT!
я работаю под виндой, может в этом причина? при запуске Rspec Test выдает:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0.beta.20/lib/rspec/core/option_parser.rb:17:in `parse!': invalid option: --runner (OptionParser::InvalidOption)
в консоли все отрабатывает нормально.
Следует открыть Project Properties и проверить Ruby platform. Возможно, там какой-нить JRuby стоит.
стоит 1.9.2-p0 и rails 3.0.0, rspec 2.0.0.20
тут все в порядке, для проекта платформа выбрана 1.9.2
Собираюсь написать проект для русскоговорящих пользователей. Встал вопрос как лучше использовать кириллицу в своем проекте? Хардкодить вроде не хочется, тем более везде придется ставить "# coding: utf-8 " в заголовке. Не знаю во что это выльется в дальнейшем. Остается использовать механизмы локализации?
Собираюсь написать проект для русскоговорящих пользователей. Встал вопрос как лучше использовать кириллицу в своем проекте? Хардкодить вроде не хочется, тем более везде придется ставить "# coding: utf-8 " в заголовке. Не знаю во что это выльется в дальнейшем. Остается использовать механизмы локализации?
В рельсах встроен замечательный механизм локализации. Проблем нет вообще. Искать тут.
Вообще хотелось бы отметить, сколько я руби с рельсами ни занимался - под виндой это всё через задницу. Неродная она для руби. Так или иначе придётся закупиться бубнами разных производителей.
Лучше и складнее получится под Ubuntu. Опыт работы подтверждает это. Так что не тратьте время и переходите на убунту. Даже если руководства и блоги почитать - 80-90% описаний unixway. Остальное под Макось. Ничего серьёзного под виндой сделать не получится. Просто потратите время, нервы и всё равно перейдёте на убунту :)
Я в этом направлении и смотрю, но пока есть пару вопросов которые хотел бы выяснить:
1) Собираюсь хранить данные локализации в yml файлах. Интересная фича “Lazy” Lookup
books:
index:
title: "Title"
теперь поиск значения для ключа books.index.title внутри шаблона app/views/books/index.html.erb можно использовать так:
Но возникает вопрос по поводу использования общих выражений. Предположим одна и та же фраза используется в нескольких шаблонах, ее нужно дублировать в каждом locale файле или использовать один общий для данных целей?
2) Есть ли какой нибудь инструментарий для работы с файлами локализаций?
1) Собираюсь хранить данные локализации в yml файлах. Интересная фича “Lazy” Lookup
books:
index:
title: "Title"
теперь поиск значения для ключа books.index.title внутри шаблона app/views/books/index.html.erb можно использовать так:
Но возникает вопрос по поводу использования общих выражений. Предположим одна и та же фраза используется в нескольких шаблонах, ее нужно дублировать в каждом locale файле или использовать один общий для данных целей?
2) Есть ли какой нибудь инструментарий для работы с файлами локализаций?
1) На первых порах проще дублировать. Допустим, создаётся сначала англ. файл как базовый, а на основе него делаются остальные. Не вижу проблемы.
2) Всю жизнь руками такое делаю. Ну, когда-то давно юзал какой-то http://www.poedit.net/
2) Всю жизнь руками такое делаю. Ну, когда-то давно юзал какой-то http://www.poedit.net/
спасибо за ответы, буду разбираться.
Давненько я сюда не заглядывал. :) Я пишу на Ruby/Rails вот уже несколько лет. Пока вполне доволен.
Прочитал по диагонали ветку и что хотелось бы сказать:
1) От Windows отказывайтесь. Использовать эту ОС в Rails разработке все равно, что явиться в смокинге на пляж.
2) За годы работы не было ни одного случая когда в рамках стандартного Ruby (MRI) было тесно и хотелось бы перейти на jRuby, Rubinius или что-то еще. Если вам нужны какие-то библиотеки то ищите в куче уже существующих. Если трудно найти, то попробуйте использовать внешние сервисы из своего приложения.
3) Единственная стоящая книга на русском по Ruby это Хэл Фултон - Программирование на языке Ruby. Остальные книги, блоги, статьи на английском.