powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ruby = Perl + ООП
5 сообщений из 5, страница 1 из 1
Ruby = Perl + ООП
    #38299746
Gysgys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Писал долгое время на Perl, сейчас решил поменять технологии, нужен хороший вебфреймвёрк, стал выбор Ruby и ROR или python и django. И т.к. с питоном я уже был знаком, решил посмотреть на руби как на язык программирования. Меньше чем за час пролистал книжку(Фитцджеральд М. - Изучаем Ruby - 2008) понял, что полностью ориентируюсь во всём материале, что там написан, даже не читая его. Ruby - это тот-же Perl только с ООП, кст в книге этой ООП затронут мало. С одной стороны это сходство радует, легко пересаживаться, с другой стороны всё то от чего я бежал с Perl'a частично присутствует в Ruby. Может изощрённые рубисты поправят меня?
Кст, а есть ли в руби что-то типо use strict ? Мне необходимо явное объявление переменных и выдача ошибки, если происходит обращение к переменной не объявленной предварительно.
...
Рейтинг: 0 / 0
Ruby = Perl + ООП
    #38299948
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gysgys,

Ruby = Perl + Smalltalk + Eiffel + Lisp

В Ruby много ООП от Smalltalk и Eiffel, но и очень много от функционального языка Lisp.

На Perl не писал, но на сколько я знаю Perl позволяет включить строгий режим, почти как у языков со статической типизацией. В Ruby этого нет, здесь типизация только динамическая.

Use strict нет, но в Ruby нельзя использовать не обьявленную или не инициализированную переменную, будет ошибка ….
>a_var=b_var+1
NameError: undefined local variable or method `b_var' for main:Object
по переменной a_var ошибки не будет, так как инициализировать переменные можно и вырожением.

Хоть Ruby и вобрал в себя много от Perl, я думаю по возможностям он больше похож на Python чем на Perl.
...
Рейтинг: 0 / 0
Ruby = Perl + ООП
    #38300319
Gysgys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рубистGysgys,

Ruby = Perl + Smalltalk + Eiffel + Lisp

В Ruby много ООП от Smalltalk и Eiffel, но и очень много от функционального языка Lisp.

На Perl не писал, но на сколько я знаю Perl позволяет включить строгий режим, почти как у языков со статической типизацией. В Ruby этого нет, здесь типизация только динамическая.

Use strict нет, но в Ruby нельзя использовать не обьявленную или не инициализированную переменную, будет ошибка ….
>a_var=b_var+1
NameError: undefined local variable or method `b_var' for main:Object
по переменной a_var ошибки не будет, так как инициализировать переменные можно и вырожением.

Хоть Ruby и вобрал в себя много от Perl, я думаю по возможностям он больше похож на Python чем на Perl.
Нет в Perl типизация тоже динамическая, можно наложить определённые ограничения,но они не касаются типов как таковых.
Вот пример есть у нас некая переменная $gys и много кода связанного с ней а в кокомто месте вместо $gys = Gys->new(); Я написал $gus = Gys->new(); тоесть явно не то, что хотел сделать. Так вот в Perl'e указав use strict; все переменные должны быть объявлены явно с указанием модификатора области пременной, а по факту в 99% это my и при создании мы пишем my $gys; если в коде дальше я напишу $gus = ... то получу ошибку.

Python точен, а в Ruby как и Perl я вижу множество подходов к написанию одних и тех-же действий, причём в Ruby появляется ещё целая куча методов встроенных классов которые дублируют друг-друга, сами название методов во многом совпадают c такими в Perle, использование допольнитех символов декораторов берущих на себя особые функции - тоже Perl подход, куча магических переменных типо всяких $' $/ $1 и т.д. , пост условия var_a = 5 unless var_b < 10, вызов функций\методов без скобок для передачи параметров
...
Рейтинг: 0 / 0
Ruby = Perl + ООП
    #38300399
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gysgys.........
Вот пример есть у нас некая переменная $gys и много кода связанного с ней а в кокомто месте вместо $gys = Gys->new(); Я написал $gus = Gys->new(); тоесть явно не то, что хотел сделать. Так вот в Perl'e указав use strict; все переменные должны быть объявлены явно с указанием модификатора области пременной, а по факту в 99% это my и при создании мы пишем my $gys; если в коде дальше я напишу $gus = ... то получу ошибку.

Нет, в Ruby так нельзя сделать, нужно контролировать самому. Но при использовании внятного редактора (я использую Aptana Studio) такие опечатки сразу видны.

GysgysPython точен, а в Ruby как и Perl я вижу множество подходов к написанию одних и тех-же действий, причём в Ruby появляется ещё целая куча методов встроенных классов которые дублируют друг-друга, сами название методов во многом совпадают c такими в Perle, использование допольнитех символов декораторов берущих на себя особые функции - тоже Perl подход, куча магических переменных типо всяких $' $/ $1 и т.д. , пост условия var_a = 5 unless var_b < 10, вызов функций\методов без скобок для передачи параметров

Да, разработчики Ruby пропагандируют подход "одно и тоже можно сделать несколькими способами" в отличии от Python, где главный принцип "Должен существовать один — и, желательно, только один — очевидный способ".
Нельзя точно сказать какой из этих подходов более правильный. Везде есть свои доводы, почему делается именно так.
По этому выбирать нужно то, что самому ближе, интересней, удобней.
...
Рейтинг: 0 / 0
Ruby = Perl + ООП
    #38300912
madbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в свое время тоже выбирал, на что уходить с перла.
пробовал питон, но не поперло - не хватает tmtowtdi и синтаксис более непривычный.
в итоге ушел на руби, доволен как слон.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ruby = Perl + ООП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]