What It Is edit
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.htmlGitHub repo:
https://github.com/bitkeeper-scm/little-langWeb forum:
https://users.bitkeeper.org/c/little-languageIRC channel:
#little-lang on freenode.net
What It Was edit
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.
What It Looks Like edit
/* 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);
}
Discussion edit
New topics
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 [
1], check out the FAQ [
2], and look at the community [
3]. 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 [
4]. 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.
Availability (old)
PT 07-Nov-2007: I built some tclkit executables that contain
L for Windows - see [
5]
(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.
History of L (old)
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.
Questions
SYStems will L add features that TCL does not, like different ways to do concurrency or parallelism, gradual typing, etc ...