в очередной раз напомню про Dylan. Dylan — это такая Схема, только с «человеческим синтаксисом», всё объектное (если хочется, гыг) и компилятор в машинный код (или C). это я про OpenDylan. который сам на себе написан, кстати. а, ещё там есть опциональная типизация (и какой-никакой type inference). замыкания, само собой. перегрузки функций (одинаковые имена, разные типы аргументов). при этом выбор «правильной» функции может быть и в рантайме — например, для обработки элементов разнородной коллекции. ну, и прочие приятные фичи из Схемы тоже наличествуют.
а, про синтаксис. как-то вот так, например:
define method bar () => (my-untyped-value)
if (weekend-day?(today()))
"Let's party!" // return string
else
make(<excuse>) // return object
end if
end method;
вместо «end if» и «end method» можно просто «end;». а можно вместо последнего «end bar;» или «end method bar;» — как приятней.
или так, с типами и лямбдой:
define method square-list (numbers :: <list>) => (out :: <list>)
map(method(x) x * x end, numbers);
end;
ну, и вообще очень много вкусного. идите на сайт OpenDylan — там дают компиляторы, туториалы и прочие нужные вещи.
библиотек, конечно, мало — ну так это ж какое поле для деятельности!
если нет — проходите мимо, вам неинтересно. а если да — то интересный проект от одного из архитекторов ZeroMQ: nanomsg. помимо того, что он написан на си, там ещё и другие достоинства есть.
судя по исходникам, штука вдобавок шибко модульная, с изначально заложеной в дизайн фичей более-менее нормального добавления новых протоколов и транспортов. я сам ещё не ковырял, но выглядит, по крайней мере, интересно.
ах, да: для тех, кто свалился с Луны использует винду, автор говорит про IOCP вместо прибитых гвоздями сокетов. ну, знающие поняли.
также там есть транспорты не только по tcp, но и для внутрипроцессной и межпроцессной коммуникации. отдельно. штука может быть очень заманчивая для, например, плугинной архитектуры.
я так понимаю, что в ёбаном ведре пинусов тупо нет утилиты, которую можно натравить на каталог и получить на выходе сумму размеров всех файлов в каталоге и его подкаталогах? нет, du не предлагать, она делает не это.