lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Hello, lua-l,

Today, myself (@LeafStorm) and a friend of mine (@_jdpage) participated in a "debate" of sorts on the relative merits of Tcl and Lua, at NC State University's FOSS Fair 2013. One of my other friends (@isharacomix) live-tweeted and refereed it, and I thought you might find the tweets interesting. There were quite a few witty one-liners on both sides. (Keep in mind that @isharacomix is not very familiar with Lua or Tcl, and any inaccuracies are probably his fault.)

- I am responsible for livetweeting #luavstcl at #fossfair2013. @leafstorm is under the impression that @_jdpage has a plan.

- Currently installing #tcl on a laptop for @_jdpage. @leafstorm gains 10 points for starting first.
[Context: we only had one DisplayPort adapter, so Jonathan had to borrow someone's ThinkPad.]

- Lua is power hungry and killing @leafstorm's laptop. @_jdpage takes the initiative! 5 points!
[Context: it wasn't plugged in, and went to autosleep.]

- #tcl and #lua are both embeddable languages. #tcl was Sun's baby before it was abandoned. #lua raised in Brazil.

- We could have had #tcl instead of #javascript. 5 points for @_jdpage for being sympathetic.

- "#lua is pedantic. Don't capitalize it!" LUA means "Lua Uppercase Accident". Lua is Jscript w/o the suck. @leafstorm 5 points.

- My tweets are showing up on the monitors. Trolling the speakers while they don't pay attention. :P

- Now seeing the #lua syntax - it's pretty readable, no curly braces, no semicolons.

- Looks like @_jdpage is at a disadvantage with no internet! @leafstorm is taking the lead! :D
[Context: the laptop he was using lost the wireless connection.]

- Even without internet, @_jdpage tells us the #tcl syntax. "10 easy-to-memorize #tcl syntax [rules]", but he doesn't remember. :P

- "Parsing #perl involves the halting problem." 10 points for @_jdpage.

- "The #dodekalogue", the #tcl rulebook (order of ops, how delimeters work). 5 points to @_jdpage for awesome name.

- #tcl was one of the languages that influenced #ruby. 1 point for @_jdpage.

- In #tcl, "if" and "else" are commands with their arguments in curly braces. All constructs are commands. Good for meta-prgmng.

- Talking about the types. In #tcl, everything is a string or list. In #lua, types are automatically coerced.
[Note: neither of these are what we said.]

- Now talking about #TK (widget toolkit (that sucks ~@leafstorm) (that looks like Motif ~@_jdpage)). Rolling into #OO soon.

- "WE GOT A GRAY BOX." 5 points for @_jdpage! #lua's not looking to good right now. :P

- So @_jdpage created a #TK button - he didn't add it to the gray box, though. Reminds me of Swing.

- Text widgets support color, formats, and less ugly fonts. Make bad horrifically bad guis in #tcl with little training!

- #tk and #tcl is too meta for me. And I'm pretty meta.

- Now @leafstorm has stolen the good monitor and is ready to talk about GUIs in Lua. Lua's batteries are not included.

- #lua fits in 200KB of RAM. 5 points to @leafstorm for awesome fact.

- #tcl takes advantage of the fact that most computers have >200KB of RAM. 10 burn points for @_jdpage.

- #lua can support GTK, #TK, and others because it's really easy to bind things. 5 flexible points for @leafstorm.

- #lua philosophy: mechanism, not policy. In other words, here's enough rope to hang yourself. 5 more points for @leafstorm

- An unbelievable development - @_jdpage is looking up #tcl on @leafstorm's #lua laptop! #iamhavingwaytoomuchfun

- [About Tcl's C API:] Everything is passed by objects. They are values that pass references. They are badly named.

- #lua's policy on threads is you can have as many interpreters as you like, but not one interpreter in multiple threads.

- [About Lua's ANSI C-ness] "So you're saying that #lua strives for the lowest common denominator on every platform?" 10 points for @_jdpage.

- I can't tweet this trash talk fast enough, guys. #besttalkaward

- 8 types in #lua: number, string, bool, nil, 1st-class functions, userdata, thread, table. 8 points for @leafstorm

- #lua functions can accept and return multiple values. Also real anonymous functions with full closure. 5 points!

- [About "everything is a string:"] "So basically, #tcl is a language for string theorists?" 5 points for @leafstorm.

- Tables are #lua's most important datatype. The keys can be any value, and so can the values. The internal state is all tables.

- #lua: IT'S TABLES ALL THE WAY DOWN. 25 points for @leafstorm #turtles

- #lua arrays don't start with 0. Get over it.

- The only value that can't be used as a key in table is nil.

- On a function that defines classes in #lua: @_jdpage "I feel like I wrote that in C". 5 points. :P

- Current score. @leafstorm 58 points, @_jdpage 56 points. 5 minutes left, time for sudden death.

- In #lua, you don't have polymorphism, but in #tcl, you can because nothing really define anything as an "object".
[Note: I hadn't actually brought up polymorphism at this point.]

- #snit doesn't have inheritance, but delegation. #snit's not incr tcl.

- "So, instead of doing OO the way you'd do it in C, you do it the way you'd do it in shellscript." :P Good response, @leafstorm!

- #luavstcl is over. The winner? Nobody. Because nobody wins in a language war. #thanksforplaying #fossfair2013

(The full set of tweets from FOSS Fair is at

Hope you enjoyed,
Matthew Frazier