Мне очень понравилось определение науки, которое дал Алан Кей (я его перескажу тут немного вольно, посолив и поперчив по своему вкусу): наука занимается поиском наиболее компактных методов описаний мира, пригодных для деятельности. Методы описания (viewpoints) по определению связаны с языком (формальным), поэтому наука у Кея практически перекрывается с математикой. Я бы флегматично заметил, что собственно языковой частью больше занимается философская логика, а не математика -- но по поводу этого высказывания может традиционно начаться холивар между логиками и математиками (математики при этом будут побеждать как минимум в силу своей многочисленности по сравнению с логиками), но это отвлечёт от основного посыла Кея: наука изобретает методы сверхкраткого описания сверхсложных феноменов.
Ряд ссылок на работы по компактификации знания я собирал в http://ailev.livejournal.com/872954.html
Замечание Алана Кея про DSL как ранее забытое "problem-oriented languages" для меня сначала было немного странно -- ибо problem-oriented называли любой "немашинный" язык (ага, FORTRAN -- для трансляции формул, COBOL -- Common BUisness-Oriented Language, ALGOL -- ALGOrithmic [часто добавляют и оriented] Language и т.д., вплоть до FORTH как способа порождать такие языки пачками, см., например, http://www.colorforth.com/POL.htm, 1970). А потом я понял, что Алан Кей до сих пор считает Java или Python лишь распухшими проблемно-ориентированными языками, пригодными для одних проблем, и непригодными для других. Опять же, это к спору о "внутренних и внешних DSL".
Я также подумал, что Дуглас Ленат вдруг из картостроителей (искателя эвристик, компактификатора знаний, учёного) в своих поисках искусственного интеллекта вдруг перешёл в паковщики: начал описывать мир на одном проблемно-ориентированном языке, CYCL. И ничего он уже много лет не паковал, никакой науки тем самым, сплошная инженерия. Вау, проект CYC немного упал в моих глазах -- он ведет к повторению обывательского интеллекта, а не к созданию учёного или инженерного интеллекта. Впрочем, Ленат это всё наверняка понимает не хуже меня, и у него гарантированно есть какие-то свои контраргументы на этот счёт. В любом случае я считаю программу Алана Кея не менее амбициозной, чем программу Лената.
И еще одна очень правильная мысль: учить нужно нескольким формальным языкам одновременно, без перегибов в один "родной" а остальные потом неминуемо "с акцентом". Вот я дитёнка учу школьному алгоритмическому языку, ибо для него есть учебный курс обучения детишек, и обучающая среда -- КуМир. Увы, я не знаю курса обучения детишек функциональному языку, причем с детской обучающей средой, логическому языку. То есть я понимаю, что можно взять с потолка какой-нибудь Factor -- но ни упражнений для детишек, ни дуракозащищенной среды, ничего этого нет...
Крайне рекомендую эту лекцию поглядеть. Кто заинтересуется примерами "поиска краткости в программировании" из последних десяти минут, материалы по этим примерам можно найти тут: http://www.vpri.org/html/writings.php, а форум тут: http://vpri.org/mailman/listinfo/fonc