Little is a statically-typed scripting language that combines C syntax and types with Perl's regexes and associative arrays, and dynamically compiles the whole lot to Tcl byte-codes. All Tcl/Tk facilities are available to Little, and source files can interleave Little and Tcl code that call each other.
Homepage: http://www.little-lang.org/
Language Reference: http://www.little-lang.org/little.html
GitHub repo: https://github.com/bitkeeper-scm/little-lang
Web forum: https://users.bitkeeper.org/c/little-language
IRC channel: #little-lang on freenode.net
Little is the current incarnation of the L programming language.
As of late 2006, an introductory paper was at: http://www.bitmover.com/lm/papers/l.pdf . A related IRC channel named "##l" existed on the irc.freenode.net. Old documentation remains available at http://www.mcvoy.com/lm/L/L.html .
A seminar on the language was presented in 2006 at the Thirteenth Annual Tcl/Tk Conference.
/* trivial grep implementation */ int main(string argv[]) { string buf, regexp; int ret = 1; // not found is default unless (regexp = argv[1]) die("usage: grep regexp [files]"); undef(argv[1]); // left shift down the args /* * Example perl goodness, the iterate through files and regexp */ while (buf = <>) { if (buf =~ /${regexp}/) { puts(buf); ret = 0; } } return (ret); }
Larry Smith God, people, can we please stop looking to C for syntax? It was an ugly language when it was created, it's gotten nothing but uglier since then, and it, and all of its derivatives, remain ugly, glitchy, and riddled with exceptions, arbitrary assumptions and associated garbage. C'mon, folks, the state-of-the-art has moved in 30 years! If you need some idea what to look for that's cleaner and easier, look at Oberon [L1 ], check out the FAQ [L2 ], and look at the community [L3 ]. Full control-statement bracketing is not the only advance, not just solve the "dangling-else" problem, it incorporates type extension and other object-oriented concepts cleanly, elegantly, and concisely. Check out [L4 ]. And it's not the only major advance out there either, but can we stop looking to a glorified assembler for high-level language concepts? It's not "easier" - it's just more familiar - and that's an endlessly self-fulfilling prophesy.
PT 07-Nov-2007: I built some tclkit executables that contain L for Windows - see [L5 ]
(June-2009): If people want more recent drops based on 8.6b1 ping the L mailing list, we're looking for a few beta testers.
lexfiend 2016-Apr-21: The current incarnation of the language is called Little.
L is a programming language started by Larry McVoy, with help with help from Jeffrey Hobbs, Oscar Bonilla, and Tim Daly, Jr.
(2009) That's not quite accurate, says lm. I, through BitMover, provided the funding and the overall direction. The initial coding was done by Oscar, Tim, with help from Jeff and hand waving (aka "you're doing it wrong") from me. Miguel Sofer did the first implementation of "deep dive" which was the logic needed get at various elements of complex structures (a hash of structs which contain an array - think int x = h{"key"}.list[12]). That was some complex work.
Tim got it partially working and then moved on to Yahoo. After Tim left, we coaxed Rob Netzer into coming back to work at BitMover and he's done a tremendous job of moving the language forward. As of June 2009 the line counts on the code look like:
8 damon 9 jeffh 400 lm 20 mig 88 ob 16896 rob 688 tim 996 wscott
and the line counts on the tests look like:
21 damon 10 jeffh 24 lm 336 mig 72 ob 69 ob/tim 12953 rob 1472 tim
so you can get an idea of who is doing the heavy lifting.
SYStems will L add features that TCL does not, like different ways to do concurrency or parallelism, gradual typing, etc ...