Я рассматриваю работы vpri.org как лидирующей организации по программированию-в-малом (а то, как они это решают -- это и моделирование-в-малом). Они решают вопрос "как мало нужно сказать железу, чтобы оно поняло, что от него нужно".
How do you find the Sine function, if you don't know its name?, Ted KaehlerChains of meaning in the STEPS system, Ian PiumartaAn Assembler for AVM2 using S-Expression, Takashi YamamiyaHigh-level Expressions in Language L, Hesam SamimiResearch Summary: A Programming Methodology and A Reliability Mechanism, Hesam SamimiCOLA Kernel Abstraction, Ian PiumartaA Lazy List Implementation in Squeak, Takashi YamamiyaRegister Allocation via Puzzle Solving via Planning, Hesam SamimiRCCola: Remote Controlled Cola, Takashi YamamiyaRecognizing the CAICO, A Collection of Almost-Identical Complex Objects, Ted KaehlerBabySteps: An approach to bootstrap an interactive system on COLA, Yoshiki OhshimaQuantum Object Dynamics, Ian PiumartaА вот SOA -- это программирование-в-большом. Я не очень понимаю, кто сейчас лидер в этой области: "как мало нужно сказать, чтобы описать другие автономные программы, и как мало нужно сказать, чтобы эти другие программы поняли, как им слипнуться для общей цели". Пока присматриваюсь к моделям-в-большом от группы AtlanMod (
http://www.emn.fr/z-info/atlanmod/index.php/New_Results) и практическим разработкам типа Dassault Systemes V6, я писал об этом неделю назад --
http://ailev.livejournal.com/748188.html.
Я вот думаю сейчас, что эти такие разные большие-малые программирования-моделирования (с размытой между ними всеми границей) очень похожи на проектирование и конструирование в нынешних инженерных проектах. Когда-то "просто инженер" сейчас -- либо инженер-конструктор (с ЕСКД, прошитой в голову), либо инженер-проектировщик (с прошитой в его голове СПДС). Эта разница отражалась и софтом, и ВУЗами, и повадками.
Но онтологические САПР позволяют сегодня преодолеть разницу между конструированием и проектированием (например, в CATIA начиная с V5 проектирование и конструирование ведутся в одном окошке, между этими режимами работы по факту нет переключения). Я думаю, что language workbenches становятся такими же мостиками между двумя (а то и всеми четырьмя, если учесть моделирование) уже успевшими разойтись и теперь настоятельно нуждающимися в склейке программистскими-модельерскими "в малом" и "в большом" мирами.
И тут нужно вспомнить, что одна из идей всех этих COLA и STEPS из vpri.org -- создание компактной и удобной системы для многоязыкового мультипарадигмального программирования. Что это, если не language workbench?! Но аборигены vpri.org не пользуются терминологией от Martin Fowler, они и сами с усами.