LINUX.ORG.RU

Why Ruby is an acceptable LISP


0

0

Граждане, особенно tailgunner и co :)

Наткнулся я на древний баян (http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp) . Поскольку руби я не знаю вообще -- проанализировать статейку не могу. Интересует следующее -- сколько там правды? Особенно в этом "Ruby gives you about 80% of what you want from macros" замечании.

Спасибо.

ЗЫ. Не флейма ради.. :o)


Re: Why Ruby is an acceptable LISP

(trolling
(Учитывая, что любой высокоуровневый ЯП — частный случай лиспа... <дальше сами>))

env ★★☆ ()
Ответ на: Re: Why Ruby is an acceptable LISP от env

Re: Why Ruby is an acceptable LISP

> Учитывая, что любой высокоуровневый ЯП — частный случай лиспа

Вот именно это меня и интересует. Насколько частным случаем лиспа является руби?

kkw ()

Re: Why Ruby is an acceptable LISP

Вообще же, как мне кажется, выглядит это обычно так:
Некий Java-программист Вася где-то читает о том, что лисп — это круто и с ним стоит ознакомиться даже если не планируется писать на нём. Дескать, повышает профессионализм и умение программировать на любом языке. Дальше прочтения какой-нибудь книжки, понятное дело, не доходит. Потом Вася узнаёт о модном Python/Ruby/etc, читает туториалы/книжки по ним… viola!

Что примерно из этого выходит, мы видим по ссылке.

env ★★☆ ()
Ответ на: Re: Why Ruby is an acceptable LISP от kkw

Re: Why Ruby is an acceptable LISP

Видите ли, если бы вы писали скажем на бейсике, вы бы не знали об указателях. Если вы всю жизнь пьёте растворимый кофе, вы никогда не узнаете вкус настоящего.

С лиспом то же самое. Его стоит плотно изучить, потому что на данный момент это самый мультипарадигменный ЯП. Да, безусловно map*, fold* и lambda теперь доступны в любом современном ЯП. Но это лишь крошечные куски, судить по которым о лиспе было бы неправильно.

Я не очень хорошо знаком с руби (так, десяток скриптиков рабочих написано, как и на питоне), но я уверен, что всё это отомрёт. А лисп останется.

env ★★☆ ()
Ответ на: Re: Why Ruby is an acceptable LISP от env

Re: Why Ruby is an acceptable LISP

> С лиспом то же самое. Его стоит плотно изучить, потому что на данный момент это самый мультипарадигменный ЯП. Да, безусловно map*, fold* и lambda теперь доступны в любом современном ЯП. Но это лишь крошечные куски, судить по которым о лиспе было бы неправильно.

Если бы меня интересовали особенности лиспа, я бы наверное спросил о них. А меня интересует "повторимость" лисповых, например, макр, в руби от знактоков руби, собственно.

Спасибо.

За лисп я и сам могу потрещать. В данный момент меня интересует другое.

kkw ()
Ответ на: Re: Why Ruby is an acceptable LISP от kkw

Re: Why Ruby is an acceptable LISP

Пожалуйста.
Научитесь выделять маркетоидную чепуху и всё будет хорошо. OK?

env ★★☆ ()

Re: Why Ruby is an acceptable LISP

Примерно то же самое Норвиг говорил о Лиспе и Питоне. Фишка в том, что религиозных фанатов это ни разу не убеждает, они начинают втирать про немеряную крутизну макросов, и то, что именно Лисп изобрел вааще всё, что можно. Поэтому Лисп никогда не умрет, и поэтому же никогда не выйдет за пределы круга религиозных фанатиков.

А на практике - почитай опупею den73 :)

tailgunner ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

> Примерно то же самое Норвиг говорил о Лиспе и Питоне.

Ну, собственно, поэтому я питон и изучил. После прочтения его заметки. :)

kkw ()

Re: Why Ruby is an acceptable LISP

С таким подходом JavaScript тоже «терпимый LISP».

anonymfus ★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от anonymfus

Re: Why Ruby is an acceptable LISP

> С таким подходом JavaScript тоже «терпимый LISP».

Ммм, не совсем. JavaScript - это Scheme с curly braces %)

tailgunner ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от env

Re: Why Ruby is an acceptable LISP

> Пожалуйста. Научитесь выделять маркетоидную чепуху и всё будет хорошо. OK?

Не люблю я это делать, но +1

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

> Примерно то же самое Норвиг говорил о Лиспе и Питоне. Фишка в том, что религиозных фанатов это ни разу не убеждает, они начинают втирать про немеряную крутизну макросов, и то, что именно Лисп изобрел вааще всё, что можно. Поэтому Лисп никогда не умрет, и поэтому же никогда не выйдет за пределы круга религиозных фанатиков.

А тебе не нравятся лисп из-за фанатиков, из-за самого языка или тут что-то другое? :)

> А на практике - почитай опупею den73 :)

Как я понимаю ден73 раздосадован был отсутствием нужных ему доделанных опен-сорсных библиотек.

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> тебе не нравятся лисп из-за фанатиков, из-за самого языка или тут что-то другое? :)

Я ниасилятор, очевидно же. Злобствую от сознания собственной неполноценности %)

> Как я понимаю ден73 раздосадован был отсутствием нужных ему доделанных опен-сорсных библиотек.

Вопрос - почему Питон (и даже Руби), которые появились гораздо позже, не испытывают недостатка библиотек? Не связано-ли это как-то с "фанатиками, самим языком и чем-то другим"?

P.S. просто наблюдение - если на девелоперский лист некого языка X приходит некто и начинает объяснять, что язык X не нужен, а всё, ради чего он делается, уже есть в языке Y, то Y почему-то всегда == Lisp.

tailgunner ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

> P.S. просто наблюдение - если на девелоперский лист некого языка X приходит некто и начинает объяснять, что язык X не нужен, а всё, ради чего он делается, уже есть в языке Y, то Y почему-то всегда == Lisp.

Так происходит потому что лисп язык для романтиков :-D (можно сказать проще, п..страдальцев). Читаешь того же Норвига и думаешь "о! да можно вот это и это сделать, как круто, ёмаё". Иногда даже начинаешь писать :)

А потом выходные кончаются и идёшь на работу писать на c/питоне/whatever. :)

kkw ()
Ответ на: Re: Why Ruby is an acceptable LISP от env

Re: Why Ruby is an acceptable LISP

> Некий Java-программист Вася где-то читает о том, что лисп — это круто и с ним стоит ознакомиться даже если не планируется писать на нём. Дескать, повышает профессионализм и умение программировать на любом языке. Дальше прочтения какой-нибудь книжки, понятное дело, не доходит. Потом Вася узнаёт о модном Python/Ruby/etc, читает туториалы/книжки по ним… viola!

Некий программист Вася мега-крутой-лисп-гуру. Он считает лисп языком всех языков. Тех, кто видит в лиспе архаичный язык, пригодный (а пригодный ли?) только для узкого круга задач, считает купившихся на маркетоидный булшит. Вот лисп - это круто. Это и модно по-своему: "Ты программируешь на лиспе? Ой да ты што! ох ох, ах ах...". Но объяснить чем лисп хорош ведь невозможно, нужно ж прозреть? А прозрение разума могут получить только посвященные... Ну и тому подобный бред обычно в конечном итоге мы получаем от адэптов лиспа.

А у тебя лично дело-то хоть дошло дальше книг On lisp, SICP'a и нескольких туториалов по Хаскелю?

smh ★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

> Я ниасилятор, очевидно же. Злобствую от сознания собственной неполноценности %)

:) бывает, хотя на мой взгляд лисп относительно "простой".

> Вопрос - почему Питон (и даже Руби), которые появились гораздо позже, не испытывают недостатка библиотек? Не связано-ли это как-то с "фанатиками, самим языком и чем-то другим"?

а черт его знает - некоторые лисперы, говорят, что это связано с ai winter, но мне так не кажется, хотя язык сам по себе очень интересный. Вполне возможно, что это связано с большой мифологией языка.

> P.S. просто наблюдение - если на девелоперский лист некого языка X приходит некто и начинает объяснять, что язык X не нужен, а всё, ради чего он делается, уже есть в языке Y, то Y почему-то всегда == Lisp.

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

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от smh

Re: Why Ruby is an acceptable LISP

> дело-то хоть дошло дальше книг On lisp, SICP'a и нескольких туториалов по Хаскелю

Кстати, от этого тоже есть польза. Как минимум, от всеми-подряд-упоминаемого сикпа.

kkw ()

Re: Why Ruby is an acceptable LISP

Нда, тред только начался, а лисперы опять дружно соснули петона.

Camel_Toe ()
Ответ на: Re: Why Ruby is an acceptable LISP от smh

Re: Why Ruby is an acceptable LISP

>нужно ж прозреть?
Нужно. Как и для программирования вообще, не только на лиспе.

>А прозрение разума могут получить только посвященные...

Нет. Кто угодно. Иначе зачем метать бисер? Кстати, у меня вот как раз сейчас метательный бисер уже закончился, извините.

env ★★☆ ()
Ответ на: Re: Why Ruby is an acceptable LISP от kkw

Re: Why Ruby is an acceptable LISP

> Так происходит потому что лисп язык для романтиков :-D

Вот-вот.. :-) Это язык для хакеров, когда важен больше не результат, а процесс и эстетика.

smh ★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Camel_Toe

Re: Why Ruby is an acceptable LISP

> Нда, тред только начался, а лисперы опять дружно соснули петона.

Когда в питоне уберут сраные significant whitespaces и сделают *человеческие* макросы - я перейду в змеиную секту :)

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> не стоит, на мой взгляд, судить язык по его фанатикам.

Это да, но они легко создают первое впечатление.

tailgunner ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> ну что поделать, если в лиспе многое появилось раньше, чем в других языках.

скажи, мой паранонимный друк, часто ли ты видел программистов на смаллтолке, осаждающих форум жабщиков с воплями "ООП в SmallTalk появился раньше! Java ненужна!!!11адин адин"

фортранщиков, которые бы "лечили" сишников? (процедурное программирование)
наконец, адептов Пролога, наезжающих на Erlang?

вот то-то и оно, мой зеленый друк

Kuka ★★ ()

Re: Why Ruby is an acceptable LISP

Ваш матан, господин Лейбниц, не нужен. Всё это уже есть у Рудина. Фтопку.

:)

kkw ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

>Я ниасилятор, очевидно же. Злобствую от сознания собственной неполноценности %)

кстати, +1

jtootf ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

>фортранщиков, которые бы "лечили" сишников? (процедурное программирование)

вот такое я видел. таки бывает

jtootf ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от env

Re: Why Ruby is an acceptable LISP

>> А прозрение разума могут получить только посвященные...
> Нет. Кто угодно.


и это хорошо
потому что прозрение, слава Богу, часто наступает в правильную сторону, а не в сторону секты

вот тут один недавно прозрел - XML-процессор пыталсо на лиспе запилить, так его самого выпилили

> Кстати, у меня вот как раз сейчас метательный бисер уже закончился, извините.


ну, ты сам знаешь, что тебе засчитано

Kuka ★★ ()

Re: Why Ruby is an acceptable LISP

> сколько там правды?

Да статья вся правдива, только читать надо внимательно:

> this macro would be useless in Ruby, because it’s working around a problem we don’t have.


Собственно, именно в этом и заключаются те самые 80%.

LamerOk ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

>> ну что поделать, если в лиспе многое появилось раньше, чем в других языках.

> скажи, мой паранонимный друк, часто ли ты видел программистов на смаллтолке, осаждающих форум жабщиков с воплями "ООП в SmallTalk появился раньше! Java ненужна!!!11адин адин"

> фортранщиков, которые бы "лечили" сишников? (процедурное программирование) наконец, адептов Пролога, наезжающих на Erlang?

а как пролог связан с ерлангом?

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

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

> вот тут один недавно прозрел - XML-процессор пыталсо на лиспе запилить, так его самого выпилили

дык, топикастер там был - жирный троль :), зачем его кормить?

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> а как пролог связан с ерлангом?

Подобные вопросы от человека, который пытается высказывать собственные соображения на тему истории языков программирования, вызывают по меньшей мере недоумение, а то и подозрение. Идите-ка прямиком на Википедию, молодой человек...

"А как связаны 8086 и Pentium 4? только набором инструкций? ололо!"

Kuka ★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> дык, топикастер там был - жирный троль :), зачем его кормить?

Ах, ну разумеется, проще откреститься от проблемы, обозвав троллингом, чем признать ее. Проблема-то от этого не исчезнет, вьюноша.

Kuka ★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

> Подобные вопросы от человека, который пытается высказывать собственные соображения на тему истории языков программирования, вызывают по меньшей мере недоумение, а то и подозрение. Идите-ка прямиком на Википедию, молодой человек...

бугага :)

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> только синтаксисом? :)

Нет. Почитай историю Эрланга (где-то на erlang.org была ссылка).

tailgunner ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

> Ах, ну разумеется, проще откреститься от проблемы, обозвав троллингом, чем признать ее. Проблема-то от этого не исчезнет, вьюноша.

Т.е. проблема с шаманизмом на крайнем севере все-таки есть? :)

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от tailgunner

Re: Why Ruby is an acceptable LISP

> Нет. Почитай историю Эрланга (где-то на erlang.org была ссылка).

ок, спасибо :)

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> бугага :)

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

Вместе с ними - ясна ценность всех предыдущих, настоящих и будущих высказываний по теме. Физкультпривет от Глеба Капустина.

Kuka ★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

> > бугага :)

> Уровень культуры, интеллекта и познаний предметной области ясен.

Странно такое слышать от человека, у которого посты часто начинаются с "олололо" ;)

kkw ()
Ответ на: Re: Why Ruby is an acceptable LISP от Kuka

Re: Why Ruby is an acceptable LISP

> Уровень культуры, интеллекта и познаний предметной области ясен. Вместе с ними - ясна ценность всех предыдущих, настоящих и будущих высказываний по теме.

ого, мне прям страшно :)

> Физкультпривет от Глеба Капустина.

молодец, прочитал.

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

>> Нда, тред только начался, а лисперы опять дружно соснули петона.
> Когда в питоне уберут сраные significant whitespaces и сделают *человеческие* макросы - я перейду в змеиную секту :)

обе проблемы (да и проблемы ли?) решаемы уже сейчас. для скобок а-ля си есть pybraces, а синтаксис в стиле s-expr можно сделать тем же методом, правда готового не видел. макры есть в easy-extend, но сам не пробовал пока. а еще тут есть coroutines, генераторы, кошерные мультиметоды и куча других плюшек. а главное, нет проблем с коммьюнити (как качеством, так и количеством). пока медленнее sbcl, но быстрее остального паровоза в лице perl/ruby/php/groovy. имхо, Python is an acceptable LISP ;)

val-amart ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от Miguel

Re: Why Ruby is an acceptable LISP

Там по ссылке тот же старый добрый ЛОР, но на аглицком

Афтар приводит развернутую, подробнейшую, трезвую и абсолютно объективную критику лиспа. И что мы читаем в ответ? (в моем вольном переводе)

"Обычно то, что отталкивается от простоты - примитивно. Только по-настоящему гениальные вещи сочетают в себе простоту и мощь. Лисп как раз из таких вещей.

Вся проблема в том, что люди не понимают гениальности."

увы, ГСМ и сектантство - проблемы интернациональные

Kuka ★★ ()

Re: Why Ruby is an acceptable LISP

кстати, насчет интернациональных проблем...

я вот заметил, что в последнее время всякая зараза приходит к нам из Японии через Европу, аниме там, или эмо

и с Ruby та же история

Kuka ★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от val-amart

Re: Why Ruby is an acceptable LISP

> макры есть в easy-extend, но сам не пробовал пока

во-первых, в иде нет подсветки только что введного тобой синтаксиса, что порой немало расстраивает и ухудшает пресловутую readability, можно забыть про скакание по statements и autoindent в иде (привет ден73 :))

во-вторых, макросы, как я понял, not yet hygenic, т.е. чтобы ввести переменную для макроса - нужно выбирать "специальное имя".

во-третьих, что-то действительно сложное на ЕЕ macro fiber (вроде как эдакий заменитель defmacro) написать тяжело.

Собственно, мне ЕЕ показался слишком костыльной и obfuscated версией defmacro.

> а еще тут есть coroutines, генераторы,

есть :) в лиспе тоже есть реализация генераторов.

> кошерные мультиметоды и куча других плюшек.

а вот мультиметоды там сделаны через декораторы, и черт знает, как это скажется на производительности. А что еще за куча других плюшек?

> пока медленнее sbcl, но быстрее остального паровоза в лице perl/ruby/php/groovy. имхо,

а сильно быстрее он не станет, там, афаик, вроде как обязательно идет hash lookup на каждый вызов функции и поменять это нельзя - потому что это внутри самого языка.

> Python is an acceptable LISP ;)

Но я его не люблю :) хотя активно использую :)

paranonymous ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

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

> есть :)

а сопрограммы?

> черт знает, как это скажется на производительности

практически никак, на один вызов функции больше. но не глобальной, а локальной, так что действительно быстро (насколько это возможно для питона)

> А что еще за куча других плюшек?

если используешь, то знаешь. по большому счету, не значительное. просто есть все, что нужно. хвостовой рекурсии только не хватает, иногда рекурсивные алгоритмы выразительнее, а итеративное исполнение - эффективнее.

> а сильно быстрее он не станет

нет конечно. но и улучшение есть.

> Но я его не люблю

да, на религию он не претендует. но зато практично. это как линукс. солярис там, или даже бсд - религиообразнее, но не так практичны.

val-amart ★★★★★ ()
Ответ на: Re: Why Ruby is an acceptable LISP от paranonymous

Re: Why Ruby is an acceptable LISP

> иде
> подсветки

> autoindent


Да тебя сейчас труЪ-джедаи лиспа с г***ом сожрут.

Настоящий джедай пользуется только REPL-циклом, все остальное - от лукавого.

Может, тебе еще автокомплишен подать с всплывающей документацией? code folding? и интерактивный отладчик? профайлер? средства рефакторинга кода? ахтунг!!! адепты быдло-эклипсов и быдло-M$VS в треде! вон из секты! :)

Kuka ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.