Ответы пользователя по тегу Lisp
  • Что конкретно может дать программисту знание языка Lisp?

    @mithraen
    У Lisp очень непривычный синтаксис. И читается он тяжело :( Причем по ходу изучения языка читабельность все равно остается низкой — очень много информационного мусора — те самые скобочки, за которые его не любят :)

    Посмотрите лучше на Haskell. У него тоже cryptic syntax на первый взгляд, но со временем он начинает казаться очень лаконичным и простым.

    В нем вообще только две самых больших сложности:
    1. осознать понятие «монада», оно непривычно, хотя писать код можно и без полного понимания, но читать чужой код будет сложно, и писать _хороший_ код не получится;
    2. осознать то, что он «ленивый», и какие из этого следствия;
    Ответ написан
    1 комментарий
  • Что конкретно может дать программисту знание языка Lisp?

    @mithraen
    У каждого языка есть набор подходов к разработке, которыми в нем наиболее удобно пользоваться. Опыт использования языков с разными парадигмами разработки меняет мышление — вы можете сформулировать задачу разными способами.

    Это, в итоге, оказывается полезным и при разработке на других языках.

    С практической же точки зрения сейчас Lisp мало интересен. Насколько я вижу, сейчас на практике используют скорее Scala.

    Вообще функциональные языки очень интересны. Их освоение для более-менее опытного программиста оказывается сложным (новичку их осваивать даже проще), из-за того, что многие привычные подходы в них оказываются неудобны. Но после освоения — оказываются даже проще в разработке чем объектно-ориентированные и процедурные.

    Итоги:
    1. Освоение функциональных языков полезно потому, что повысит скорость и качество разработки и на других языках (правда будет неприятный побочный эффект — от них станет подташнивать, когда окажется что вещь реализуемая в несколько строк на haskell требует несколько страниц бреда на C++).

    2. Их очень удобно использовать в качестве скриптовых языков внутри более сложных продуктов (как тот же AutoLISP).

    3. В крупных «enterprise» проектах их использовать нереально из-за того что мало разработчиков которые с ними знакомы, а для бизнеса заменимость сотрудников критически важна.

    4. В небольших проектах, которые пишутся в одиночку — после освоения они могут дать заметно большую скорость реализации проекта. Соответственно, если заказчику все равно на чем сделано, лишь бы работало и работало хорошо, и оплата попроектная — функциональщик может банально зарабатывать больше.

    5. Некоторые функциональные языки, например Haskell и OCaml обладают очень интересной и мощной системой типов, которая одновременно не так сильно путается под ногами как в Java, но при этом очень жесткая, и срезает множество потенциальных ошибок.

    6. Ну и еще — например в JavaScript и Perl есть ряд инструментов, привычных для функционального программирования. Владение хотя бы одним функциональным языком программирования позволит писать более красивый код на этих языках.
    Ответ написан
    3 комментария