Я учу 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, хоть и не работал в них сколько-нибудь долго, не писал ничего действительно серьёзного. Теперь Лисп, наверное, присоединится к этому списку.
no subject
Date: 2003-02-08 03:57 am (UTC)Лисп, юность, детство мое. Ах... Скажите, зачем Вам это сейчас? Я уже давно не слышал о применении этого языка.
Тут недавно предложили работа в Южной Корее, требовалось знание ассемблера, ох. Тоже ведь писал на этом языке. Машинные коды - это нечто такое волшебное, что может понять только неискушенное дельфями и перлами сердце. Это классика. Это инструмент прямого доступа к душе компьютера, к его чувствам, к его возможностям. Это ключ к пониманию лампочек на его экране, к шуршанию его диска, к зависанию его программ. Это красота слога. Это воплощенное кокетство в краткости. Это программа из 4 байт, позволяющая перезагрузить компьютер.
Эх. Это я. Это мое. Это навсегда.
no subject
Date: 2003-02-08 03:58 am (UTC)no subject
Date: 2003-02-08 04:04 am (UTC)Re:
Date: 2003-02-08 04:08 am (UTC)Из философско-теоретических соображений в основном.
Не для практического применения, по крайней мере, в обозримом будущем, хотя кто его знает, как жизнь повернётся.
Для программиста полезно знать -- не много языков, а много разных, принципиально отличающихся друг от друга языков. Разных типов языков. Лисп - это целый тип языков программирования, заключённый в самом себе. Это отдельный мир, другой способ смотреть на программирование и на задачи, стоящие перед программистом. Пора попробовать впитать в себя и эту традицию, это понимание. Из таких примерно соображений.
Тут недавно предложили работа в Южной Корее, требовалось знание ассемблера, ох. Тоже ведь писал на этом языке. Машинные коды - это нечто такое волшебное, что может понять только неискушенное дельфями и перлами сердце. Это классика. Это инструмент прямого доступа к душе компьютера, к его чувствам, к его возможностям. Это ключ к пониманию лампочек на его экране, к шуршанию его диска, к зависанию его программ. Это красота слога. Это воплощенное кокетство в краткости. Это программа из 4 байт, позволяющая перезагрузить компьютер.
Очень хорошо Вас понимаю. В прошлой жизни я много и с огромным удовольствием писал на ассемблере. Включая все возможные прямые доступы, оптимизацию графики на скорость (и был в этом асом одно время), и даже однажды оптимизацию кода на размер для embedded систем. Это были прекрасные времена.
Re:
Date: 2003-02-08 04:14 am (UTC)Я думал было учить Схему, а не Лисп, но решил, что всё же от Схемы более попахивает ученичеством. Мне хочется не только понять данную парадигму программирования, но и знать мощный язык, который её воплощает. К тому же изучение Лиспа даёт дополнительную отдачу ввиду его исторической роли и важности. Так мне кажется.
no subject
Date: 2003-02-08 04:17 am (UTC)no subject
Date: 2003-02-08 04:30 am (UTC)Лисп. Реомендую посмотреть на Форт. Некоторые вещи диаметрально противоположны, но класс один. Вам, уверен, понравится.
Вообще, функциональные языки типа Лиспа (Лого, АРЛ, ...) хорошо сравнивать с логическими типа Пролога, Кэнивера... А уж Снобол и Рефал вообще чудесные превращения прочих языков в новые. :)
Кстати, какой Лисп? Родной первый либо же common, standart, france?
Re:
Date: 2003-02-08 04:32 am (UTC)Кстати, какой Лисп?
Пока что, думаю, Common Lisp будет адекватен.
no subject
Date: 2003-02-08 04:42 am (UTC)Да, коммон лучше. На мой взгляд, конечно.
Пакеты, хэш-массивы...
Скажите, а KRL и FRL (хотя это уже не совсем язык)? ARL?
Re:
Date: 2003-02-08 04:48 am (UTC)KRL - это который knowledge representation? Не знаю тоже.
no subject
Date: 2003-02-08 04:53 am (UTC)Позвольте Вас во френды. Я думаю, это необходимость :)
no subject
Date: 2003-02-08 05:09 am (UTC)Там еще много любопытных статей, в том числе про то, как Лисп помог ему опередить конкурентов в создании одного из первых e-commerce движков, который теперь Yahoo! Store.
Когда прочитаешь про Лисп, обязательно посмотри что-нибудь про CLOS (если до сих пор не).
no subject
Date: 2003-02-08 05:27 am (UTC)no subject
Date: 2003-02-08 05:28 am (UTC)no subject
Date: 2003-02-08 05:34 am (UTC)точно-точно. Схема концептуально "элегантнее", но работать с ней разумно только академикам, да.
а стандарт у нея меньше, потому что в нём нету нифига. обожаю просто этот аргумент.
ежели книжков на бумаге хочешь, так у меня их есть.
Re:
Date: 2003-02-08 05:38 am (UTC)no subject
Date: 2003-02-08 05:53 am (UTC)Re:
Date: 2003-02-08 06:04 am (UTC)но увлекаться, конечно, не стоит. :)
no subject
Date: 2003-02-08 06:52 am (UTC)no subject
Date: 2003-02-08 11:35 am (UTC)Возможно, что тем, которым удалось справиться и было потом в чем-то проще, но все равно не вижу причин создавать такие сложности. Разве только, чтобы отсеивать народ, что они с успехом и делают.
no subject
Date: 2003-02-08 12:02 pm (UTC)Как раз наоборот те, у кого были какие-то навыки других языков, часто отказывались понимать и продолжали думать стандартными строками из C или паскаля. Мне кажется, что они воспринимали слишком близко сам язык и слишком расплывчиво то, что они пытались этим языком сказать. А обучение Схеме, как первому языку, как раз выбивает этот симбиоз смысла и слов и, наоборот, учит различать то, что надо запрограммировать от того, как выглядят строительные блоки языка.
почему старый LISP?
Date: 2003-02-08 12:42 pm (UTC)(пардон за репостинг, палец соскочил)
Re: почему старый LISP?
Date: 2003-02-08 12:47 pm (UTC)Типовой контроль - вовсе необязательно преимущество; поклонники Лиспа считают его нудным недостатком, и их точка зрения заслуживает изучения, мне кажется. Это одна из причин, по которой я хочу выучить Лисп.
А до Хаскеля я ещё доберусь.
Re: почему старый LISP?
Date: 2003-02-08 01:38 pm (UTC)три грубые ошибки в одном предложении. так держать, товарисч!
no subject
Date: 2003-02-08 01:43 pm (UTC)Мне как раз такие "те" казались скорее исключением , нежели чем правилом. Хотя наверняка это все очень индивидуально и круг знакомств на курсе в любом случае не является достаточным для статистической выборки :)
То что Схема, "учит различать то, что надо запрограммировать от того, как выглядят строительные блоки языка", безусловно верно, но так ведь он же не единственный -- на всех предметах впоследствии в качестве языка для объяснения алгоритмов используется псевдокод, что тоже приучает мыслить абстрактно.