LINUX.ORG.RU
ФорумTalks

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)


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

env ★★☆
()
Ответ на: комментарий от env

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

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

kkw
() автор топика

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

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

env ★★☆
()
Ответ на: комментарий от kkw

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

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

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

env ★★☆
()
Ответ на: комментарий от env

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

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

Спасибо.

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

kkw
() автор топика

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

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

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

kkw
() автор топика
Ответ на: комментарий от anonymfus

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

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

tailgunner ★★★★★
()
Ответ на: комментарий от env

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

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

paranonymous
()
Ответ на: комментарий от tailgunner

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

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

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

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

paranonymous
()
Ответ на: комментарий от paranonymous

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

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

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

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

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

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

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

kkw
() автор топика
Ответ на: комментарий от env

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

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

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

smh ★★★
()
Ответ на: комментарий от tailgunner

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

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

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

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

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

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

paranonymous
()
Ответ на: комментарий от smh

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

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

kkw
() автор топика
Ответ на: комментарий от smh

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

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

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

env ★★☆
()
Ответ на: комментарий от kkw

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

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

smh ★★★
()
Ответ на: комментарий от Camel_Toe

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

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

paranonymous
()
Ответ на: комментарий от paranonymous

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

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

tailgunner ★★★★★
()
Ответ на: комментарий от paranonymous

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

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

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

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

Kuka ★★
()

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

:)

kkw
() автор топика
Ответ на: комментарий от tailgunner

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

кстати, +1

jtootf ★★★★★
()
Ответ на: комментарий от Kuka

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

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

jtootf ★★★★★
()
Ответ на: комментарий от env

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


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

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

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


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

Kuka ★★
()

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

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

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


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

LamerOk ★★★★★
()
Ответ на: комментарий от Kuka

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

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

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

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

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

paranonymous
()
Ответ на: комментарий от Kuka

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

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

paranonymous
()
Ответ на: комментарий от paranonymous

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

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

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

Kuka ★★
()
Ответ на: комментарий от paranonymous

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

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

Kuka ★★
()
Ответ на: комментарий от Kuka

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

бугага :)

paranonymous
()
Ответ на: комментарий от Kuka

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

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

paranonymous
()
Ответ на: комментарий от tailgunner

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

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

paranonymous
()
Ответ на: комментарий от paranonymous

> бугага :)

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

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

Kuka ★★
()
Ответ на: комментарий от Kuka

> > бугага :)

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

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

kkw
() автор топика
Ответ на: комментарий от Kuka

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

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

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

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

paranonymous
()
Ответ на: комментарий от paranonymous

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

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

val-amart ★★★★★
()
Ответ на: комментарий от Miguel

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

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

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

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

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

Kuka ★★
()

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

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

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

Kuka ★★
()
Ответ на: комментарий от val-amart

> макры есть в 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
()
Ответ на: комментарий от paranonymous

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

> есть :)

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

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

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

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

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

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

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

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

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

val-amart ★★★★★
()
Ответ на: комментарий от paranonymous

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

> autoindent


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

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

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

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