Я учу Lisp (язык программирования такой, для тех, кто не знает). Немного стыдно, что до сих пор его не знал (совсем простые куски кода я умею читать, подцепил где-то случайно, в emacs'е скорее всего; но писать не могу, и язык по-настоящему не понимаю), но как-то не нужен он мне был. Да он мне и сейчас не нужен особенно, но захотелось вот заполнить эту лакуну. От лакуны к лакуне -- так, глядишь, и дойдёшь до чего-то хорошего.
Взял в библиотеке две книги пару недель назад: Lisp (Winston&Horn, 3rd edition), и Programming in Common Lisp (Brooks). Сегодня начал их читать, и если найду ещё немного времени, скачаю и установлю какой-нибудь Лисп поиграться.
Книга Винстона и Хорна более подробна, основательна; вместе с тем более "попсовая" что ли. В тексте сквозит настойчивое стремление объяснить читателю, что Лисп - это совсем не страшно. Вместо car и cdr всегда используются first и last. И много ещё подобных мелочей. Книга Брукса куда более лаконична, написана более уверенным тоном и для людей, уже что-то знающих и уверенных в себе.
Концептуальная простота Лиспа меня восхищает. Я вообще очень падок на концептуальную простоту, и потому очень люблю, например, Smalltalk и Forth, хоть и не работал в них сколько-нибудь долго, не писал ничего действительно серьёзного. Теперь Лисп, наверное, присоединится к этому списку.
Взял в библиотеке две книги пару недель назад: Lisp (Winston&Horn, 3rd edition), и Programming in Common Lisp (Brooks). Сегодня начал их читать, и если найду ещё немного времени, скачаю и установлю какой-нибудь Лисп поиграться.
Книга Винстона и Хорна более подробна, основательна; вместе с тем более "попсовая" что ли. В тексте сквозит настойчивое стремление объяснить читателю, что Лисп - это совсем не страшно. Вместо car и cdr всегда используются first и last. И много ещё подобных мелочей. Книга Брукса куда более лаконична, написана более уверенным тоном и для людей, уже что-то знающих и уверенных в себе.
Концептуальная простота Лиспа меня восхищает. Я вообще очень падок на концептуальную простоту, и потому очень люблю, например, Smalltalk и Forth, хоть и не работал в них сколько-нибудь долго, не писал ничего действительно серьёзного. Теперь Лисп, наверное, присоединится к этому списку.
Re: почему старый LISP?
Date: 2003-02-08 05:20 pm (UTC)прошу прощения за резкость. просто Ваш набор утверждений был ну настолько типовым, что подозревать что-либо кроме тупости и стёба мне было сложно. издержки разницы, тыкскыть, бэкграундов. считайте коммунистом.
Принято. Извиняюсь за стёб в свою очередь — зацепили Вы меня первым комментом. Последние штришки: заметьте, что из двух книжек, упомянутых Анатолием, название только одной из них упоминает Common (хотя вероятно и другая — про него, раз уж это мэйнстрим). Далее, из нескольких десятков лично знакомых мне программистов только один (на самом деле не совсем программист, а профессор CS) пишет (писал?) какое-то искусственно-интеллектное составление расписаний на Лиспе (уж не знаю, Common или каком другом) так что разница бэкграундов/среды общения действительно имеет место. Функциональным язык назван не зря (вот уж не думал, что это слово можно принять за ругательное) и тот факт, контроль типов «динамический» в наше время — практически простое отрицание наличия статического контроля типов. Конечно, корректнее было написать «без статического контроля типов», но для меня это звучит несколько тавтологично. Это моя последняя попытка отбрыкнуться от того, что я носитель типового набора заблуждений о Лиспе. После Ваших поправок он уже никогда не станет обратно девственно-типовым :^). Коммунистом меня считать не стоит, но давайте жить дружно («Нам нужен мир. Желательно, весь» :^) )
Перехожу к существу:
ага. можно совершенно серьёзный и некаверзный вопрос: в Ваших глазах новизна как таковая в самом деле является достоинством? (я говорю о программистских вещах, конечно). если да, почему? мне правда ужасно интересно.
Конечно, нет. Но я верю в небесполезность прогресса, который привёл от программирования на тумблерах к языку ассемблера, потом к Лиспу, и, наконец (в Вашем случае, вероятно), к Common Lisp-у. Так вот в случае функциональных языков мне более интересна та его ветвь, которая привела к ML и Хаскелю. В чём достоинство этой интересной мне разновидности новизны? Повышение уровня абстракций приводит к расширению того круга «глупых» ошибок, которые ловятся различными инструментами ещё до тестирования и отладки. Прогресс в системах типов (видимо, нелюбимый Вами за то, что опирается на некоторые математические построения), произойди он вовремя, помог бы избежать миллионов проблем (я имею в виду, например, дурацкие C баги типа разыменования нуля и присваивания вместо равенства в условии. Вы не читали про Cyclone? Чудовищно запоздалая попытка «исправить» C, а не обвешивать новыми концепциями, как поступил Страуструп). Мои взгляды на программирование маргинальны и расположены сильно в стороне от «столбовой дороги прогресса», но я бы предпочёл писать и отлаживать исполняемые спецификации, доказывая статически их разные полезные свойства, с тем чтобы инструменты сгенерировали по ним гарантированно корректный код (в том смысле, что он удовлетворяет той спецификации, по которой сгенерирован, и которая была протестирована/прочекана на предмет соответствия техзаданию). В реальности же приходится писать на монструозном C++, подыскивая подходящие (современные) инструменты анализа и проверки кода. На функциональных языках я, честно, не писал, но с Прологом дело имел.
Common Lisp в самом деле имеет мало общего с оригинальным дитём Джона Маккарти. правда. честно. вот Вам магендовид. книжку про него почитайте и поймёте. where does this incredible arrogance come from?
Мы близки по возрасту, но учились, очевидно, в разных местах (я закончил питерский матмех в 92м) — вот типа откуда. Книжку про первоначальный Лисп читал, про поздние диалекты — нет (вроде валяется какая-то книжка про какой-то RLisp в коробке — так и не стал читать). Ну неинтересен он мне! А современные «академические» языки — интересны.
Re: почему старый LISP?
Date: 2003-02-08 05:54 pm (UTC)a в техзадании будет указано, что программа должна когда-то остановиться? :)
если серьёзно, то подобный подход возможен только при реализации полностью изученных задач. по моему скромному опыту, таких задач не бывает (то есть бывают, но так там и программисты нафиг не нужны), и нет никаких предпосылок к их появлению. посему языки, в которых Нужно Как Можно Больше Знать Заранее, А Не То Будет Больно -- мне как класс не нравятся. надо идти к реальности, потому что реальность к нам идти не желает.
(это некоторым образом self-fulfilling selection, если можно так выразиться. полностью решённые задачи бывают, но они неинтересны -- так будет точнее).
> Ну неинтересен он мне! А современные «академические» языки — интересны.
легитимно. я не агитацией занимаюсь, просто на дезинформацию болезненно реагирую. особенно на добросовестную дезинформацию по незнанию -- это самая разрушительная разновидность.
> А к вызыванию на флейм у Вас талант или любовь, не иначе.
скорее уж талант, ага. :)
Re: почему старый LISP?
Date: 2003-02-08 06:07 pm (UTC)А какже, с оценочкой сложности, желательно :^)
если серьёзно, то подобный подход возможен только при реализации полностью изученных задач. по моему скромному опыту, таких задач не бывает (то есть бывают, но так там и программисты нафиг не нужны), и нет никаких предпосылок к их появлению. посему языки, в которых Нужно Как Можно Больше Знать Заранее, А Не То Будет Больно -- мне как класс не нравятся. надо идти к реальности, потому что реальность к нам идти не желает.
(это некоторым образом self-fulfilling selection, если можно так выразиться. полностью решённые задачи бывают, но они неинтересны -- так будет точнее).
Согласен (я ведь назвал свои воззрения маргинальными, верно?), но обратный процесс (забивание всё больших кусков реальности в хорошо структурированные, изученные и потому Вам неинтересные блоки) тоже имеет место, и именно в нём польза "новизны" и "прогресса".
легитимно. я не агитацией занимаюсь, просто на дезинформацию болезненно реагирую. особенно на добросовестную дезинформацию по незнанию -- это самая разрушительная разновидность.
ОК, хорошо среагировали, сильно. Вы почаще за программирование пишите, я Вас читать буду.