Evgeny503 писал(а): |
Дело не в языке. |
м... не совсем... есть же языки высокого и низкого уровня...
в ассемблере есть только Jump/GoTo из управляющих структур и вообще нет абстракции данных.
в си уже есть if, циклы, функции, стуктуры, массивы. есть ужасный препроцессор (#define) который больше запутывает
в си++ классы и ужасные темплейты. и т.д.
реализовать абстракцию более высокого уровня на языке низкого - иногда можно, иногда - вообще нет.
не скажу чтобы замыкания или функциональное программирование было необходимо, но эмуляция их на си...
впрочем и указатели на функции в си для многих - "черная магия" которую лучше никогда не использовать.
получается что язык в любом случае ограничивает человека, заставляя мыслить только в рамках доступных на нём абстракций.
и в лингвистике есть теории что разговорые языки ограничивают мышление, есть искуственные языки, которые, якобы, развивают мышление... если надо - нагуглю ссылок.
так вот, лисп, как язык, imho, меньше всего ограничивает фантазию. абстракции нового уровня можно создавать средствами самого языка.
поэтому я придерживаюсь мнения что обучаться программированию лучше именно на нём, или в любом случае быть знакомым с ним.
одна ссылка по теме под рукой даже есть -
http://www.paulgraham.com/avg.htmlвпрочем, большинству программистов это, наверное, и не нужно, как и указатели на функции в сях.