Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мнения профи перешедших на Ruby c PHP, Ruby on Rails 
:(
    Опции темы
Wowa
Дата 10.3.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15005
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Интересуют мнения профессионалов  перешедших с PHP на Ruby on Rails. Стоит ли?
PM WWW   Вверх
Serkys
Дата 11.3.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



PM MAIL   Вверх
ext
Дата 12.3.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



А на русском нету?
PM MAIL   Вверх
Serkys
Дата 13.3.2007, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Перевод на коленке

Сходства
    Присутствует и в РНР, и в Ruby:
  • Ruby поддерживает динамические типы данных, как и РНР. Вам не надо беспокоиться об объявлении переменных
  • Имеются классы, и вы можете контроллировать доступ к ним (public, protected and private)
  • Некоторые переменные начинаются с $, как и в РНР (но не все)
  • Поддерживается eval
  • Вы можете использовать интерполяцию строк. Вместо того, чтобы писать ”$foo is a $bar”, вы можете написать ”#{foo} is a #{bar}” - как в РНР, без использования одинарных кавычек
  • Поддерживается heredoc-синтаксис
  • Ruby поддерживает исключения, как и PHP5
  • Довольно большая стандартная библиотека
  • Массивы и хэши работают одинаково, требуется только заменить array() на {}: array('a' => 'b') превращается в {'a' => 'b'}
  • true и false поддерживаются, как и в РНР, но null именуется nil
Различия
    Отсутствует в РНР, но есть в Ruby:
  • Более строгая типизация. Понадобится вызывать методы to_i, to_s и др. для конвертации строк, чисел и т.д. вместо того, чтобы доверять эти операции языку
  • Строки, числа, массивы, хэши есть объекты. Вместо написания abs(-1) следует писать -1.abs
  • Круглые скобки являются необязательными при вызове методов, за исключением случаев разъяснения какие параметры к какой функции относятся.
  • Вместо соглашения об именовании - стандартные библиотеки и расширения организации модулей и классов
  • Отражения (reflections) присущи объектам, тебе не понадобиться использовать класс Reflection, как в РНР5
  • Переменные являются ссылками
  • Нет абстрактных классов и интерфейсов
  • Хэши и массивы взаимозаменяемы
  • Только false и nil являются ложными: 0, array() и "" условно истинные значения
  • Практически любая функциональность — вызов метода какого либо объекта. Даже возбуждение исключения raise (аналог в PHP — throw).
А вообще на русском по Ruby инфы немного. Хороший повод заняться английским smile

Добавлено @ 03:13 
Собственно по сабжу могу сказать немного. Попробовав Ruby-on-Rails, был удивлён быстротой создания и удобством работы до такой степени, что в прямом смысле забегал по комнате smile . Мне кажется, что через пару лет Ruby-on-Rails будет стоять у почти всех уважающих себя хостеров, и со временем отодвинет даже РНР. Ruby-on-Rails будет развиваться не хуже, чем фреймворки в РНР, появятся аналоги, но должной популярности не наберут.
Лишним изучение Ruby не будет в любом случае.
До сих пор в шоке от удобства обработки массивов. Раньше я даже предположить не мог, что в одной строке может быть столько кода!

Это сообщение отредактировал(а) Serkys - 15.3.2007, 11:48
PM MAIL   Вверх
max_lapshin
Дата 13.3.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Хеши и массивы совершенно не взаимозамеяемы. Это совершенно разные структуры данных. Собственно, конструкции, как в PHP нет больше нигде. Да и никому особо больше не нужна.

> Почти всегда при вызове метода вызывается raise (throw в РНР5)

Эт че за [censored 6] фигня?

Что касается Ruby on Rails, то могу сказать, что в этой нише фактически есть два фреймворка: Ruby on Rails и Django. Остальные с отставанием пытаются их копировать.
PM MAIL WWW ICQ Jabber   Вверх
Serkys
Дата 13.3.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(max_lapshin @  13.3.2007,  14:40 Найти цитируемый пост)
Эт че за [censored 6] фигня?

Будь вежлив!
Обрати внимание на фразу:
Цитата(Serkys @  13.3.2007,  03:06 Найти цитируемый пост)
Перевод на коленке

Знаешь, что она означает? Значит то, что переводу не уделялось много времени. Также она значит, что перевод этот является не более чем желанием помочь людям, совсем не знакомым с английским языком. Сам я с ним знаком плохо, но приложил усилия к тому, чтобы помочь ext ознакомиться с содержимым статьи.

Можешь сделать лучше - дерзай. Поправляй меня, указывай на мои ошибки и недоработки. Не надо голословной критики.
PM MAIL   Вверх
GZep
Дата 14.3.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Мне понравилось, что это язык чистого ООП, но я не очень понял, зачем было делать переменные типа string объектами при копировании которых создаются только ссылки на них...я такого нигде еще не видел. smile 

Это сообщение отредактировал(а) GZep - 14.3.2007, 19:28


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
max_lapshin
Дата 14.3.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Ну как, зачем? Затем же, зачем это сделано в STL C++, некоторые реализации которойтак же умеют делать copy-on-write. Для оптимизации.
PM MAIL WWW ICQ Jabber   Вверх
Serkys
Дата 14.3.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(GZep @  14.3.2007,  19:28 Найти цитируемый пост)
Мне понравилось, что это язык чистого ООП

После нескольких дней рубки сел вчера за РНР. Как всё неудобно! smile
Пытался применить использование большого количества операторов в одной строке, не получилось smile
PM MAIL   Вверх
max_lapshin
Дата 15.3.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Да уж, fluent intefaces — это не про PHP. Как, впрочем, и вообще принцип читаемого и минимального кода
PM MAIL WWW ICQ Jabber   Вверх
Serkys
Дата 15.3.2007, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Ну я бы не стал заходить так далеко и называть РНР-код неудобочитаемым. Код там читать, на мой взгляд, весьма удобно.
Дело в том, что ruby и php находятся в разных, так сказать, языковых группах. Ruby ориентирован на удобство написания, красоту и изящность кода. Перед РНР такой задачи не стоит.
PM MAIL   Вверх
max_lapshin
Дата 15.3.2007, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



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

Добавлено @ 01:46 
Цитата(Serkys @ 13.3.2007,  03:06)
[*]Почти всегда при вызове метода вызывается raise (throw в РНР5)

Оригинал:  Almost everything is a method call, even raise (throw in PHP).

Правильный перевод:

практически любая функциональность — вызов метода какого либо объекта. Даже возбуждение исключения raise (аналог в PHP — throw).


Разницу чувствуешь? =)

Это сообщение отредактировал(а) max_lapshin - 15.3.2007, 01:47
PM MAIL WWW ICQ Jabber   Вверх
Serkys
Дата 15.3.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(max_lapshin @  15.3.2007,  01:42 Найти цитируемый пост)
А я бы стал. Начать можно со стандартного набора функций PHP, которые попросту бессистемны. Они бессистемно названы, хаотично разложены параметры и т.д. и т.п.

Да, изначально функции именовались так. Однако позже разработчики РНР стали относиться к именованию стандартных функций внимательнее: стоковые функции начинаются с str, аналогично с массивами и т.д. Старые остаются только для совместимости.
Цитата(max_lapshin @  15.3.2007,  01:42 Найти цитируемый пост)
Оригинал:  Almost everything is a method call, even raise (throw in PHP).Правильный перевод:практически любая функциональность — вызов метода какого либо объекта. Даже возбуждение исключения raise (аналог в PHP — throw).Разницу чувствуешь? =)

Не против, если я подправлю свою мессагу используя твой перевод?
PM MAIL   Вверх
max_lapshin
Дата 15.3.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Конечно не против.


PM MAIL WWW ICQ Jabber   Вверх
alexvav
Дата 23.8.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



я так понял, новичку рнр можно не начинать учить, а сразу на руби переходить?
PM MAIL   Вверх
Google
  Дата 13.11.2019, 05:53 (ссылка)  





  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.