Мне показалось странным, почему в все обсуждают
процедурные языки программирования
А как же будущее, новые технологии и т.п. ?
Я например советую всем программистам
для расширения кругозора обратить внимание
на современные фунциональные языки Forth и
тот же Haskell. Хотя с их использованием
вы вряд ли сможете создать серьезный
коммерческий проект, зато
вы сможете увидеть новые горизонты.
PS. с haskell-интерпретаторами идут
весьма интересные
примеры вполне полезных программ (скрипты/утилитки запросто можно
писать - и весьма красиво

).
вот например пример перевода числа из арабской нотации в римскую
(взято с
http://pleac.sourceforge.net/)
Код:
-- @@PLEAC@@_2.6 -- code from comp.lang.functionnal
inttorom n = (concat ° reverse) (zipWith roman sets digits) where
digits = reverse (map (\x -> fromInt (read [x])) (show n))
roman (i,v,x) n = case n of {
0 -> []; 1 -> [i]; 2 -> [i,i]; 3 -> [i,i,i]; 4 -> [i,v];
5 -> [v]; 6 -> [v,i]; 7 -> [v,i,i]; 8 -> [v,i,i,i]; 9 -> [i,x] }
sets = [('I','V','X'), ('X','L','C'), ('C','D','M'), ('M','?','?')]
mroman = putStrLn ("Roman for "^15^" is :"^inttorom 15)