Здравствуйте, aka50, Вы писали:
M>>Поэтому и не мэйнстрим, а маргинальный язык, хотя труда в него вложили немеряно, вплоть до
M>>аппаратных лисповских машин.
A>
Очень смешно.
M>>Собственно, лисп и надо брать за начальную точку расширяемого языка. Только убрать текст.
A>Можно вопрос, сколько времени ты писал на лиспе? Я около 5-ти лет, пока работал в emacs (правда лисп там
A>самый наверное убогий из всех возможных). Так вот смею тебя заверить "проблема синтаксиса" — это миф.
A>Проблема "сложности" лиспа в его излишней гибкости.
Я на нём пытался писать несколько раз.
Не поборол скобок.
Этот "миф" я проверил на собственном опыте.
Я знаю, что некоторые люди могут на нём писать — но этих людей 5% от программистов. Статистика придумана
на основе реального использования лиспа, а не голословных утверждений, что эта проблема — миф.
A>Нормальный язык должен включать набор инструментов для реализации определенных задач и выбор этого языка или платформы,
A>как инструмента, определяется задачей. Если язык излишне гибкий выбор уже становиться достаточно сложный, т.к. вместо
A>одного большого рубильника менеджеру предлагается выбрать из кучи мелких выключателей (при чем не всегда очевидны взаимосвязи
A>этих выключателей).
A>Cравни:
A>A>Haskell: [ (x, y) | x<-[0,1,2,3], y <- [0,1,2,3], x < y]
A>Python: [(x, y) for x in [0,1,2,3] for y in [0,1,2,3] if x < y]
A>Scala: for( x <- 0::1::2::3::Nil; y <- 0::1::2::3::Nil if x < y) yield (x,y)
A>Lisp: (comprehension (cons x y)
A> ((x '(0 1 2 3)) (y '(0 1 2 3)))
A> ((< x y)))
A>
A>А теперь вопрос: где гибче синтаксис и язык и где лучше понимаемость кода? И самое интересное: почему в самом гибком языке нужно явно указывать, что это у нас comprehension?
Вот и должен один программист работать в понятиях, где неважна конкретная реализация, конкретный рубильник.
А другой программист должен это понятие реализовать, выразить в низкоуровневых операциях. И первый не должен беспокоиться как сделать работу за второго.
Что до твоего вопроса — так везде синтаксис и понимаемость приблизительно на одном уровне.
И она не имеет никакого отношения к реальным проектам в миллионы строк кода.
Там совсем другие проблемы. Совсем.