Re[10]: минусы Ruby
От: Vermicious Knid  
Дата: 02.08.06 13:00
Оценка: +2
Здравствуйте, mogadanez, Вы писали:

M>а почему тогда в том же немерле def означает define?

def это все таки не название(идентификатор), а ключевое слово и встречается в коде оно намного чаще чем некое гипотетическое название метода.

M>почему сократили? почему не полностью define?

Потому, что ключевые слова для деклараций переменных/постоянных значений в большинстве языков с необязательной декларацией типов принято делать короткими. Например в C# 3.0 и JavaScript это ключевое слово var, в SML — val, в Scala — var и def.

M>ведь если я первый раз вижу код на немерле и не писал на языках где есть def, я могу и с default перепутать, или с defolt

Я тебе не верю. Надо обладать невероятной степенью тупизны, чтобы не понять с первого взгляда что означает def в коде на Nemerle.

M>такая же фигня с параметром "_" — человек первый раз видящий его хрен догадается что он значит.

Тоже не верю. "_" выглядит очень интуитивно понятно, особенно в match выражениях. Кроме того "_" это очень распространенная идиома. Я например имел о ней представление задолго до знакомства с Nemerle, из Пролога, SML, Haskell. В Nemerle правда "_" еще используется для конструирования лямбда-выражений с безымянными аргументами, но даже в этом случае я был знаком с чем-то приблизительно похожим, а именно с boost::lambda.
Re[11]: минусы Ruby
От: mogadanez Чехия  
Дата: 02.08.06 13:08
Оценка: -1
M>>ведь если я первый раз вижу код на немерле и не писал на языках где есть def, я могу и с default перепутать, или с defolt
VK>Я тебе не верю. Надо обладать невероятной степенью тупизны, чтобы не понять с первого взгляда что означает def в коде на Nemerle.

я тоже самое могу сказать про to_s

M>>такая же фигня с параметром "_" — человек первый раз видящий его хрен догадается что он значит.

VK>Тоже не верю. "_" выглядит очень интуитивно понятно, особенно в match выражениях. Кроме того "_" это очень распространенная идиома. Я например имел о ней представление задолго до знакомства с Nemerle, из Пролога, SML, Haskell. В Nemerle правда "_" еще используется для конструирования лямбда-выражений с безымянными аргументами, но даже в этом случае я был знаком с чем-то приблизительно похожим, а именно с boost::lambda.

интутивно понятно потому что знал? Я не знал, и мне понятно не было — прочитал теперь понятно. зато я интуитивно понял что такое to_int(16) — хотя другие потратили полчаса на поиск в интернете.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[12]: минусы Ruby
От: Vermicious Knid  
Дата: 02.08.06 13:46
Оценка: +1
Здравствуйте, mogadanez, Вы писали:

M>интутивно понятно потому что знал?

Нет, потому что это действительно интуитивно понятно. Я помню когда изучал Пролог(а это первый язык в котором я встретил паттерн "_"), то "_" это одна из немногих вещей, не вызвавших абсолютно никаких трудностей в понимании. То есть из кода было прекрасно понятно для чего "_" используется, я даже не помню чтобы я читал какое-то объяснение смысла этой "загадочной" конструкции.

M>Я не знал, и мне понятно не было — прочитал теперь понятно.

Не могу себе этого представить. Ну что может быть в нем непонятного? Например здесь:
beers(n : int) : string {
  | 0 => "no more bottles of beer"
  | 1 => "1 more bottle of beer"
  | _ => $"$n bottles of beer"
}

M>зато я интуитивно понял что такое to_int(16) — хотя другие потратили полчаса на поиск в интернете.
Я кстати не верю и в то, что VladD2 не понял что такое to_int(16), хотя с его тезисами отчасти согласен. По-моему для любого человека, прошедшего "школу" libc, с его функциями вроде strtol и atoi, понять что-то подобное будет крайне легко.
Re[13]: минусы Ruby
От: Mamut Швеция http://dmitriid.com
Дата: 02.08.06 14:58
Оценка: 1 (1) +2
M>>Я не знал, и мне понятно не было — прочитал теперь понятно.
VK>Не могу себе этого представить. Ну что может быть в нем непонятного? Например здесь:
VK>
VK>beers(n : int) : string {
VK>  | 0 => "no more bottles of beer"
VK>  | 1 => "1 more bottle of beer"
VK>  | _ => $"$n bottles of beer"
VK>}
VK>


Для человека, незнакомого с pattern-matching'ом, здесь непонятно все
... << RSDN@Home 1.2.0 alpha rev. 655>> ... <<Banco De Gaia — Amber>> ...


dmitriid.comGitHubLinkedIn
Re[14]: минусы Ruby
От: Klapaucius  
Дата: 04.08.06 07:02
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>>>Я не знал, и мне понятно не было — прочитал теперь понятно.

VK>>Не могу себе этого представить. Ну что может быть в нем непонятного? Например здесь:
VK>>
VK>>beers(n : int) : string {
VK>>  | 0 => "no more bottles of beer"
VK>>  | 1 => "1 more bottle of beer"
VK>>  | _ => $"$n bottles of beer"
VK>>}
VK>>


M>Для человека, незнакомого с pattern-matching'ом, здесь непонятно все


По моему скромному разумению, такие средства как pattern-matching или там list comprehentions как раз и делают код (за исключением особо навороченных случаев) понятным любому человеку изучавшему алгебру в школе. Собственно говоря, человек, увидивший пример с pattern-matching — уже в какой-то степени знаком с pattern-matching.

Вот что, например, непонятного здесь:
fac 0 = 1
fac n = n * fac (n-1)


Или здесь:
fac n = product [1..n]
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[15]: минусы Ruby
От: Mamut Швеция http://dmitriid.com
Дата: 04.08.06 08:25
Оценка:
K>По моему скромному разумению, такие средства как pattern-matching или там list comprehentions как раз и делают код (за исключением особо навороченных случаев) понятным любому человеку изучавшему алгебру в школе.

Дело в том, что зачастую между алгеброй в школе и знакомством с pattern matching'ом или list comprehensions проходит довольно много времени

K>Собственно говоря, человек, увидивший пример с pattern-matching — уже в какой-то степени знаком с pattern-matching.


Это верно.

K>Вот что, например, непонятного здесь:

K>
K>fac 0 = 1
K>fac n = n * fac (n-1)
K>


K>Или здесь:

K>
K>fac n = product [1..n]
K>


Ну, это простейшие примеры, которые понятны сразу. А вот уже простейший list comprehension, например:
sort([Pivot|T]) ->
    sort([ X || X <- T, X < Pivot]) ++
    [Pivot] ++
    sort([ X || X <- T, X >= Pivot]);
sort([]) -> [].

вызывает долгие ковыряния в мозгах и попытку вспомнить алгебру десятелетней давности

Единственное — синтаксис к этому не имеет ни малейшего отношения

ЗЫ. Мне кажется, любого, кому не нравится тот или иной синтаксис, надо насильно протащить через Lisp, Haskell и Erlang. Хотя бы на уровне "почитать туториалы". Потом на синтаксис перестаешь хоть какое-то внимание
... << RSDN@Home 1.2.0 alpha rev. 655>> ... <<James Last — March Of The Toreadors From "C>> ...


dmitriid.comGitHubLinkedIn
Re[16]: минусы Ruby
От: Klapaucius  
Дата: 04.08.06 12:40
Оценка:
Здравствуйте, Mamut, Вы писали:

K>>По моему скромному разумению, такие средства как pattern-matching или там list comprehentions как раз и делают код (за исключением особо навороченных случаев) понятным любому человеку изучавшему алгебру в школе.

M>Дело в том, что зачастую между алгеброй в школе и знакомством с pattern matching'ом или list comprehensions проходит довольно много времени

Ну, мне всегда казалось, что программисту в той или иной степени приходится сталкиваться с математикой. Хотя...

M>Ну, это простейшие примеры, которые понятны сразу. А вот уже простейший list comprehension, например:

M>
M>sort([Pivot|T]) ->
M>    sort([ X || X <- T, X < Pivot]) ++
M>    [Pivot] ++
M>    sort([ X || X <- T, X >= Pivot]);
M>sort([]) -> [].
M>

M>вызывает долгие ковыряния в мозгах и попытку вспомнить алгебру десятелетней давности

Это qsort! Я узнал его! Хотя это если и не первые строчки кода на Erlang, которые мне довелось увидеть, то по крайней мере, я могу точно сказать, что приходится смотреть код на Erlang мне очеь не часто. Если бы не ссылка, я бы его и не узнал.
Это, в общем, тоже простейший пример. Но речь как раз и идет о простых примерах, которые объявляются якобы непонятными.

M>Единственное — синтаксис к этому не имеет ни малейшего отношения


О чем и речь.

M>ЗЫ. Мне кажется, любого, кому не нравится тот или иной синтаксис, надо насильно протащить через Lisp, Haskell и Erlang. Хотя бы на уровне "почитать туториалы". Потом на синтаксис перестаешь хоть какое-то внимание


Туториалы я почитывал, но на синтаксис обращать внимание не перестал. Ну, понятное дело, я не забиваюсь в ужасе под стол, при виде какого-нибудь нового для меня синтаксиса, но я составляю каждый раз некоторое, временами даже излишне эмоциональное, мнение.
А почитать туториалы это полезно, согласен. Вообще хороший кругозор это очень полезно.

Собственно речь-то о том, что я — будучи, как функциональный программист, без малого пустым местом, не заметил у себя каких либо сложностей с восприятием. Правда, если это был не квиксорт, я признаю свое полное поражение и обязательно накажу себя трудом.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[17]: минусы Ruby
От: Mamut Швеция http://dmitriid.com
Дата: 05.08.06 07:59
Оценка:
K>Собственно речь-то о том, что я — будучи, как функциональный программист, без малого пустым местом, не заметил у себя каких либо сложностей с восприятием. Правда, если это был не квиксорт, я признаю свое полное поражение и обязательно накажу себя трудом.

Это был quicksort
... << RSDN@Home 1.2.0 alpha rev. 655>> ... <<silent>> ...


dmitriid.comGitHubLinkedIn
Re: минусы Ruby
От: Lloyd Россия  
Дата: 07.08.06 23:44
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Собственно хотел предложить для прочтения (и обсуждения тоже) статью 5 things I hate about Ruby

К>Особенно не положительным 4-й пункт кажется: навязываемый "Ruby Way", который ещё и не имеет однозначной трактовки.
К>З.Ы. Как-то не нашёл куда логичнее будет это написать: руби почти насквозь императивный, поэтому в декларативные не лезет, а среди языков его нет...

Недетский глумеж: Report from OSCON2006: The Ruby Conspiracy
Re: минусы Ruby
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.07 08:47
Оценка: 13 (2)
Здравствуйте, Курилка, Вы писали:

К>Собственно хотел предложить для прочтения (и обсуждения тоже) статью 5 things I hate about Ruby


В последнее время промелькнуло несколько ссылок, которые позволяют оценить ситуацию с такими недостатками Ruby, как скорость выполнения и отсутствие IDE:

Ruby Implementations Shootout: Ruby vs Yarv vs JRuby vs Gardens Point Ruby .NET vs Rubinius vs Cardinal
Behind The Scenes: JRuby 0.9.8 Released!

Ruby / Rails IDE Comparison : Idea, Netbeans, RadRails
Two Demos: JRuby on Rails and Advanced Ruby Editing in NetBeans!


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: минусы Ruby
От: Пацак Россия  
Дата: 07.03.07 16:44
Оценка:
Здравствуйте, eao197 и все остальные

Ладно, ладно, уговорили, блин! Качаю!

PS Хотя питон мне все равно пока нравится больше
Ку...
Re[3]: минусы Ruby
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.07 17:35
Оценка: 4 (1)
Здравствуйте, Пацак, Вы писали:

П>PS Хотя питон мне все равно пока нравится больше


Может быть вот это
Автор: Евгений Охотников
Дата: 03.03.07
склонит чашу весов в сторону Ruby?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: минусы Ruby
От: Lloyd Россия  
Дата: 07.03.07 17:39
Оценка:
Здравствуйте, eao197, Вы писали:

П>>PS Хотя питон мне все равно пока нравится больше


E>Может быть вот это
Автор: Евгений Охотников
Дата: 03.03.07
склонит чашу весов в сторону Ruby?

E>)

Оглавление?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: минусы Ruby
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.07 17:41
Оценка: +1 :)
Здравствуйте, Lloyd, Вы писали:

П>>>PS Хотя питон мне все равно пока нравится больше


E>>Может быть вот это
Автор: Евгений Охотников
Дата: 03.03.07
склонит чашу весов в сторону Ruby?

E>>)

L>Оглавление?


А то!
Те, кто не может ждать три месяца до публикации в online могут поискать RSDN Mag в продаже. Ну или вспомнить, что у меня в профайле мыло указано


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: минусы Ruby
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.03.07 08:31
Оценка:
Здравствуйте, eao197, Вы писали:

VD>>отсуствие полноценной IDE (комплит, рефакториг, ...),

E>Да есть IDE для Ruby, как open-source (FreeRDE, Mongrel, RDT), так и коммерческие (Komodo).
E>Более того, Rubyist-ов совсем это не парит. Большинство используют VIM, emacs и TextMate (под MacOS), не испытывая при этом никаких сожалений.

Меня это парит. И, честно говоря, чем дальше, тем больше. Все IDE, к сожалению, времени пересмотреть не было. Сейчас работаю на эклипсе. Про полноценную отладку можно забыть — часик ждешь, пока программа дойдет до брекпоинта и при этом еще не всегда понятно — вошла ли IDE в режим отладки или нет.

По этому, если кто подскажет IDE с нормальным отладчиком, комплитом и средствами рефакторинга (бесплатную естественно) буду премного благодарен, т.к. сейчас трачу огромное количество времени на банальные вещи типа переименовывания, расставления отступов и разбора отладочной информации, которую приходится выводить на экран.
Re[5]: минусы Ruby
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 09.03.07 10:37
Оценка: 2 (1)
Здравствуйте, Anton Batenev, Вы писали:

AB>По этому, если кто подскажет IDE с нормальным отладчиком, комплитом и средствами рефакторинга (бесплатную естественно) буду премного благодарен, т.к. сейчас трачу огромное количество времени на банальные вещи типа переименовывания, расставления отступов и разбора отладочной информации, которую приходится выводить на экран.


Боюсь, что помочь не смогу, пользуюсь VIM-ом. Отладчик никогда не запускал, с отступами, переименованием и отладочными печатями так же проблем не было (но это, может быть, всего лишь следствие моего стиля работы).

Может быть NetBeans (здесь показано и реформатирование кода) или Ruby-In-Steel (feature-list).


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: минусы Ruby
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.07 02:33
Оценка: +1 -1 :)
Здравствуйте, eao197, Вы писали:

E>Боюсь, что помочь не смогу, пользуюсь VIM-ом. Отладчик никогда не запускал, с отступами, переименованием и отладочными печатями так же проблем не было (но это, может быть, всего лишь следствие моего стиля работы).


Надо это куда-то записаать. А то жаль такую фразу "С закатом солнца в ручнуюю проблем не было (но это, может быть, всего лишь следствие моего стиля работы)".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: минусы Ruby
От: cl-user  
Дата: 17.03.07 08:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, да. Видишь как народ толпами ломится за счастьем? И я нет. Видимо он тупой. Самое время вспомнить что-то вроде "силлионы мух не могут ошибиться...".


Да не важно, тупой ли он и ошибается или нет — важно, что на большей толпе можно сделать больше бабла. А здесь уже "правят бал" маркетинг и прочие методы влияния на эту самую толпу. Техническая сторона дела — далеко не на первом месте. Хотя обкатка на толпе может давать неплохие результаты даже в техническом плане.
Re[10]: минусы Ruby
От: Quintanar Россия  
Дата: 17.03.07 15:51
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>а почему тогда в том же немерле def означает define?

M>почему сократили? почему не полностью define? ведь если я первый раз вижу код на немерле и не писал на языках где есть def, я могу и с default перепутать, или с defolt

M>такая же фигня с параметром "_" — человек первый раз видящий его хрен догадается что он значит.


Мануал почитать не судьба?
Re[10]: минусы Ruby
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.07 16:58
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>а почему тогда в том же немерле def означает define?

M>почему сократили? почему не полностью define? ведь если я первый раз вижу код на немерле и не писал на языках где есть def, я могу и с default перепутать, или с defolt

M>такая же фигня с параметром "_" — человек первый раз видящий его хрен догадается что он значит.


Согласись, что запомнить два соглашения несколько проще чем 222.
Учитывая частоту применения сокрашение def и _ оправданы. А вот сокращать методы в библиотеках — это порочный путь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.