COMMON LISP как первый язык программирования. Плюсы и минусы?

Здравствуйте. Выбираю первый язык программирования. С чего начать свой путь? (Пожалуйста, хотя бы с краткой аргументацией.)

МОИ ЦЕЛИ (в порядке убывания приоритетов):
1. Стать качественным программистом.
2. Программировать для души (наподобие пианиста, играющего в свободное время для души на берегу моря) вещи, связанные с наукой, аналитикой, большими массивами данных, моделированием процессов (экономических, например).
3. Зарабатывать деньги.
  • Вопрос задан
  • 6000 просмотров
Пригласить эксперта
Ответы на вопрос 6
@thenno
Проектирую, разрабатываю, преподаю.
COMMON LISP как первый язык - это хардкорно. Нужно понимать, что Лисп - это не совсем обычный язык программирования - он чрезвычайно мощен и выразителен, но новичок вряд ли сможет это оценить и понять. К тому же, именно стандарт CL для изучения не прост, да и я бы не сказал, что начав писать на CL можно сразу найти хорошие библиотеки на все случаи жизни.

Лучше всего начать в Python - довольно простой язык, огромное сообщество, множество готовых библиотек и фреймворков. Не стоит недооценивать эти три фактора при выборе первого языка - очень неприятно бросить все, потому что-то не понимаешь какие-то идеи, на которых язык основан, при этом нет сообщества, которое готово помочь и ответить на вопросы, а писать свои первые проекты намного приятнее, когда не нужно разрабатывать с нуля нужные, но нетривиальные в реализации вещи (обработку http-запросов, создание GUI и ORM для базы данных).

Попутно лучше всего читать книги по алгоритмам и структурам данных (Кормен, и, обожемой, Кнут), сетям, ОС и прочим вещам, без которых современное программирование представит невозможно (но это еще более обширная тема, чем затронутая в этом вопросе).

Потом, если очень хочется работать именно с лиспами - лучше всего начать с SICP и Sheme, а потом уже посмотреть в сторону современного диалекта лиспа - Clojure (Clojure я бы новичку сразу точно не посоветовал, ибо она заточена на разработку многопоточных приложений, что само по себе является достаточно сложной и обширной темой).
Ответ написан
@bromzh
Drugs-driven development
Плохая идея. Да, общий лисп - хороший язык, и эта реализация, имхо, наиболее пригодна для реального использования. В стандарт языка уже 20 лет назад заложили такие фичи, что не все современные языки умеют. Но беда состоит в том, что этих реальных проектов просто единицы. Есть мало областей, где его целесообразно применять. А всё потому, что инструментов и технологий, которые работают нормально и стабильно, для него мало. И существует довольно мало областей, где он применим, и, самое главное, где он более удобен, чем другие языки.

В общем, как второстепенный язык он неплох. Но выбор его, как первого и основного - плох.

А вообще правильно сказали, важны общие принципы разработки. Можешь начать изучение с SICP, там как раз на диалекте лиспа идёт разработка.
Ответ написан
Комментировать
mannaro
@mannaro
Умею профессионально гуглить
1. Программировать на любом языке можно качественно.
2. Опять же, на вкус и цвет
3. Есть конторы, которые будут вам платить вне зависимости от того, на чем вы пишите

:)
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
У вас какое-то романтическое представление о работе программиста -- примерно как в фильмах про хакеров (но все-таки ближе к реальности, чем там:)) Лиспы -- клевая штука, заставляет мозги поскрипеть, да; есть афоризм, что он делает тебя лучшим программистом, да; но серебряной пули не существует.

Программистом тебя делает не язык, а умение алгоритмически мыслить, знание стандартной библиотеки, классических структур и алгоритмов, знание API, с которыми придется взаимодействовать (ни одна программа не работает в вакууме), наконец, просто широкая эрудиция в области того, что на западе называется CS.
Ответ написан
Комментировать
@potan
Функциональный программист
CL переусложнен. Если Вы не чувствуйте себя монстром в математике, логике и философии, то как первый язык лучше взять что-нибудь по проще (Scheme из SICP - хороший вариант, можно взять статически типизированный Haskell).
Ответ написан
Комментировать
@worlxxaker
Просто мировой хакер, и все.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы