Обсуждение:Руби
Материал из Википедии — свободной энциклопедии
Содержание |
[править] Формулировки
В статье путаются понятия «язык» и «интерпретатор». Например, во фразе «является полностью свободным языком программирования с возможностью копирования, модификации и распространения». Конечно, это интерпретатор (т.е. реализацию языка) можно копировать, модифицировать и распространять. — Lispnik 10:12, 30 января 2006 (UTC)
[править] Непонятно
нет необходимости использовать утомительный 'self.'
где в каком языка? Майоров Александр 14:27, 6 марта 2006 (UTC)
- Очевидный наезд на Python :) Maxim Razin 20:02, 7 марта 2006 (UTC)
[править] Сопрограммы?
File.open('file.txt', 'w') { |file| <blablabla>
Какое отношение этот пример имеет к сопрограммам? Да и в других примерах явно путают сопрограммы и итераторы. Maxim Razin 20:01, 7 марта 2006 (UTC)
- Прямое отношение — этот пример реализуется приблизительно так:
def open(name, mode) file = File.new(name, mode) begin yield(file) # вызов сопрограммы - делаем всё что хотим ensure # блок срабатывающий при любом исходе file.close # файл будет закрыт без вмешательства пользователя, # независимо от того будут ли исключения, ошибки ли всё гладко. end end
Valodzka 00:31, 8 марта 2006 (UTC) ferstein?
[править] (Matz)
Matz — кликуха что-ли? Разве это важная информация? Тем более не относится к языку программирования.
- Это имя (ник) в новостной группе, и несёт о человеке информации в современном мире не меньше чем имя
[править] Недостатки языка и недостатки интерпретатора
Мне кажется, статья стала бы полнее, если бы в ней появилась информация о недостатках Ruby, и проблемах, с которыми столкнётся программист, который захочет перейти на этот язык. В частности, поддержка Unicode.
Как вы считаете? Igorchubin 06:24, 17 марта 2006 (UTC)
- Несомненно. —ajvol 09:08, 17 марта 2006 (UTC)
- В принципе основные недостатки указаны в разделе реализация, юникод правда был забыт. Cейчас добавил. Valodzka 20:52, 17 марта 2006 (UTC)
- Спасибо. И ещё, есть ли недостатки у самого языка? Если да, то, наверное, имеет смысл указать их в статье. Igor Chubin 07:24, 18 марта 2006 (UTC)
- Недостатки языка (особенно относительно нового), в отличии от интерпретатора, обычно указать очень сложно. Почти все они являются довольно неаднозначными и зависят от взгляда: один может рассматривать это как минус, 2-й как плюс. Valodzka 12:22, 18 марта 2006 (UTC)
Ещё мне кажется, что недостатки (и интерпретатора, и языка) стоит вынести в отдельный раздел. Те, кто только начинают знакомиться с языком, вероятно, сразу хотят знать о его основных недостатках, для того чтобы быть готовым к худшему. Я думаю, раздел «Недостатки языка и интерпретатора» можно добавить сразу же после раздела «Реализация» Igor Chubin 07:23, 18 марта 2006 (UTC)
-
- Разумная идея. Valodzka 12:22, 18 марта 2006 (UTC)
[править] Отсутствие информации о RAA
В статье нет ничего о RAA (Ruby Application Archive), что выглядит странно. Как вы думаете, что если добавить информацию о RAA в раздел "Библиотеки"? Igor Chubin 07:23, 18 марта 2006 (UTC)
- думаю если пара строк о RAA и/или RubyForge будет полезной. Valodzka 23:26, 18 марта 2006 (UTC)
[править] Возможно, нужен disambig
У меня со словом "Руби" ЯП не связывается. Скорее всего, первое значение - распространённое имя, ну и + куча продуктов (от "рубиновый"), язык - один из их множества.--83.102.202.2 10:15, 23 марта 2006 (UTC)
- Логично делать disambig когда будут статьи о других продуктах. --217.21.40.1 00:07, 24 марта 2006 (UTC)
[править] Руби -- объектно-ориентированный язык
Есть ли категория "Объектно-ориентированные языки", чтобы можно было добавить "Руби" в эту категорию, как её добаливи в скриптовые языки?
И ещё -- можно ли как-то подправить самое первое определение языка Руби, чтобы в нём фигурировало "объектно-ориентированный скриптовый язык", поскольку это относится к Руби как ни к какому другому. Igor Chubin 12:01, 24 марта 2006 (UTC)
- Есть такое правило в Википедии — правьте смело. Для отнесения статьи к какой-либо категории нужно в тексте статьи написать строчку вроде:
[[Категория:Языки программирования]]
- --ajvol 12:38, 24 марта 2006 (UTC)
- Сделано. Уже добавил. Кто-то может подсказат, как быстро проинициализировать категорию большим количество ссылок на статьи? Igor Chubin 13:53, 24 марта 2006 (UTC)
[править] К вопросу о правилах (регулярных выражениях) и русском языке
Примеры вида "Раз, два, три!".scan(/[А-Яа-я]/) для выделения всех русских слов в строке будут работать не всегда. Все зависит от кодировки строки. В CP1251 и ISO-8859-5 все хорошо ибо коды русских букв идут подряд А-Яа-я. А вот для KOI8 например уже вот так Ю-Ъю-ъ, соответственно правило выглядит /[Ю-Ъю-ъ]/. Для CP866 еще интерестней символы идут подряд от А-Яа-п потом идет псевдо графика а потом уже р-я. Вот такая вот получается путаница.
- Всё зависит от кривости самого софта, среды и рук человека который настраивал "локаль" во всём этом деле. Кодировка, как таковая, тут не при чём.--Busla 13:49, 23 декабря 2006 (UTC)
[править] Наименования языков
Этот вопрос, пожалуй, касается не только этой статьи, но и всех прочих, затрагивающих данную тематику, поэтому править не стал, а решил сначала обсудить:
Какого, спрашивается, … половина названий языков написана кирилицей, а половина — латиницей?! Давайте хотя бы в рамках одной статьи не устраивать кашу.--Busla 14:12, 23 декабря 2006 (UTC)
[править] Все до кучи
1) В статье попутаны потоки и процессы - вызов fork()
порождает новый процесс а не поток(это две большие разницы).
2)"Таким образом нет необходимости использовать какой-либо специальный синтаксис (например, self.имя_переменной для Python),"
А @name это что не специальный синтаксис?
3)"инновативных решений" AFAIK по русски не инновативных а инновационных + эти решения были инновационными в smalltalk и lisp но никак не Ruby(P.S. в Python так-же все это есть).
И давайте придерживаться объективности.
4) Использование self.
в Python кроме лишних 4 символов по сравнению с Ruby, несет массу возможностей.
5) И никто не мешает сделать imap ~ self. в Вашем любимом редакторе и не набирать его постоянно.
6) "Имеет независимую от ОС поддержку многопоточности." Пропущено слово "невытесняющую" или "с вытеснением только из Ruby кода", это вообще то очень жесткое ограничение.
..........
K.Danilov aka koder 15:44, 10 марта 2007 (UTC)
1) - fixed
2) - согласен
3) - в целом согласен (PS: а нигде и не утверждается что этого нет в Питоне)
Давайте объективно:
4) Это какие возможности?
5) Никто не мешает сделать всё, что угодно, мы же обсуждаем язык а не редакторы
6) ОС-независимая многопоточность является таковой по определению, добавлять это по моему лишне
Спасибо за конструктивную критику. --valodzka☭ 23:37, 26 марта 2007 (UTC)
3)Когда я писал про питон то имел в виду что там они так же появились раньше, но уже очевидно были "слизаны" со smalltalk & lisp(поэтому я питон с ними вместе и не перечислил).
4)Полная взаимозаменяемость функций/ламбда/методов_класса/связанных_методов_объекта
6)> ОС-независимая многопоточность является таковой по определению
Не всегда(точнее все мне изв. процессорные архитектуры позволяют это реализовать, при минимальной поддержке со стороны ОС - асинхронных сигналах). Например Inferno,Plan9,etc имеют вытесняющую поддержку собственных потоков работая как "гости" под другими ОС - т.е. с позиции базовой оси Inferno - один поток(и 1 процесс), а в самой inferno живет множество premptible потоков.
> добавлять это по моему лишне
Даже если-бы они таки были не_вытесняемыми по определению то подавляющее большинство людей все равно не знало бы этого. Так, например, в доке по Ruby это очень аккуратненько описано причем сразу в стартовом абзаце.
K.Danilov aka koder 09:11, 27 марта 2007 (UTC)
4) Может я чего-то не понимаю, но причём здесь self.</self>? Аналогичный код на Руби:
class A
# Метод класса
def A.m1() puts 'm1' end
# Метод объекта
def m2() puts 'm2'end
end
# Анонимный метод
m3 = proc { puts 'm3' }
# "Просто" функция
def m4() puts 'm4' end
def test(*args)
args.each{|x| x.call }
end
a = A.new
test(A.method(:m1), a.method(:m2), m3, Object.method(:m4))
6) Ладно, добавил. --valodzka☭ 17:31, 27 марта 2007 (UTC)
Ок. Будем считать что 4) это питоновские "ветряные мельницы", я это зачеркнул.
Спасибо за правку, я уж было думал что сюда никто не заглядывает, а поск. я не слишком хорошо знаю руби то сам править не стал. K.Danilov aka koder 09:43, 28 марта 2007 (UTC)