У меня сложилось аналогичное мнение после нескольких недель изучения лиспа в 2008-м. Обчитавшись Грэма.
Но реальным репеллентом для меня тогда стало то, что лисп оказался такой-же вещью в себе как и смолток - обнаружилась практически полная изоляция от реального мира разработки. Реализаций лиспа - вагон. Но во всех них для самых элементарнейших вещей приходится изобретать велосипеды, т.к. или их ещё не написали, или их три и все в состоянии, непригодном к незамедлительному использованию.
В общем, тогда сложилось впечатление какой-то маргинальщины. С современной точки зрения я, конечно, понимаю, что есть места, где самописанная минимальная лисп-машина будет в тему. Но как дополнительное, а не основное средство разработки. Вот, кстати, пример симпатичной минимальной реализации - http://yurikravchik.livejournal.com/11864.html
Имхо основной смысл и красота лиспа это минималистичность. Это вообще прикольно, было актуально когда-то давно, но сейчас тулы, которые содержат фичи, заметно облегчающие жизнь программисту, хоть и ценой сложности выигрывают у него.
Кстати, немного оффтопик, а можете порекомендовать что нибудь гуевое под хаскель? gtkhs под GPL, WX глючит под маком, есть что-то еще на чем можно писать гуй? Интересуют в первую очередь не кнопочки и формочки, а возможность рисовать на канвасе, итд итп.
Слушайте, нет в Лиспе красивой минималистичности. В Форте есть, в Лиспе - нет. Количество концепций, которое должна поддерживать Лисп-машина, заметно, её нельзя сделать за несколько дней.
Под Хаскелем я использовал gtk2hs, там хороший canvas. А он точно GPL, а не BSD или GPL с исключением для линковки? Ибо GTK+ сам под LGPL и его библиотеки (.dll) можно использовать в любом коде.
Вот в том и вопрос -- а разве не так оно и для любого языка? То есть, та же проблема перевода\обучения что и с языками естественными -- даже если текст об одном и том же, все равно везде свои акценты, структура.
Я согласен с наличием акцентов. Вопрос в количестве, как много удастся использовать в других местах.
Возьмём OCaml, например. Алгебраические типы оттуда - это ОО иерархия из абстрактного базового класса и нескольких реализаций. ФВП можно собрать на классах же.
Мало того, что это переносится на Java, допустим, так широкие и неглубокие иерархии считаются более правильными.
То есть, изучивший OCaml станет более хорошим программистом на Java (C#, C++ и тп).
Comments 39
Но реальным репеллентом для меня тогда стало то, что лисп оказался такой-же вещью в себе как и смолток - обнаружилась практически полная изоляция от реального мира разработки. Реализаций лиспа - вагон. Но во всех них для самых элементарнейших вещей приходится изобретать велосипеды, т.к. или их ещё не написали, или их три и все в состоянии, непригодном к незамедлительному использованию.
В общем, тогда сложилось впечатление какой-то маргинальщины. С современной точки зрения я, конечно, понимаю, что есть места, где самописанная минимальная лисп-машина будет в тему. Но как дополнительное, а не основное средство разработки. Вот, кстати, пример симпатичной минимальной реализации - http://yurikravchik.livejournal.com/11864.html
Reply
Кстати, немного оффтопик, а можете порекомендовать что нибудь гуевое под хаскель? gtkhs под GPL, WX глючит под маком, есть что-то еще на чем можно писать гуй? Интересуют в первую очередь не кнопочки и формочки, а возможность рисовать на канвасе, итд итп.
Reply
Под Хаскелем я использовал gtk2hs, там хороший canvas. А он точно GPL, а не BSD или GPL с исключением для линковки? Ибо GTK+ сам под LGPL и его библиотеки (.dll) можно использовать в любом коде.
Reply
Да действительно LGPL, спасибо, попробую.
Reply
Reply
То есть, та же проблема перевода\обучения что и с языками естественными -- даже если текст об одном и том же, все равно везде свои акценты, структура.
Reply
Возьмём OCaml, например. Алгебраические типы оттуда - это ОО иерархия из абстрактного базового класса и нескольких реализаций. ФВП можно собрать на классах же.
Мало того, что это переносится на Java, допустим, так широкие и неглубокие иерархии считаются более правильными.
То есть, изучивший OCaml станет более хорошим программистом на Java (C#, C++ и тп).
Reply
Reply
Reply
Изучать их в Haskell или Scala сложнее из-за статической типизации.
Reply
Reply
Leave a comment