Sigh. There is no one true way!
Lua is absolutely brilliant for configuration scripting. (And quite a
bit more, but you can run into difficulties quite quickly then.)
Programming languages are tools (note the plural!). In order to solve a
large problem, you end up needing more than one tool. In all the
industrial projects I have worked in, none of them used one programming
language (compilers I worked on used assembly, C, Imp, Yacc, Lex;
statistics programs used C, C++, Java, homegrown scripting language; IT
mgmt program uses Java, Flash, Javascript, Powerbuilder, SQL, Lua,
Erlang, C, C++), plus build, test and support scripting (make, perl,
python, ant, sh, awk, ...).
It's a toolbox, use as much of it as you need. But if all you know how
to use is a screwdriver (aka Java, these days), you're gonna get into
trouble reasonably quickly.
Further, writing a library for general use is very hard. Regardless of
underlying language. Either you write a library that solves your
problem, and if you make it public, quite a few people moan about lack
of features. Or, at the other extreme, you invent CPAN. Not everyone has
the resource to come up with something like the C++ template library,
which is the only fully functioning, bells and whistles, stable,
dependable and well documented bit of kit, I am aware of. Everything
else (Java, Python, Ruby, Perl, Haskell, SML, C#, Lua, Squeak, Lisp,
Fortran) is good to very good, but generally a bit of a mess all round.
Designing the supporting infrastructure for any programming language is
a non-trivial task. Making the language is the easy part.
Robby
PS I never had the pleasure of working with Algol 60, which supposedly
had a pretty good set of libraries at the time.