[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Tweets from a Lua vs. Tcl "Debate"
- From: Matthew Frazier <leafstormrush@...>
- Date: Sat, 9 Feb 2013 20:46:08 -0500
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.
- "#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 http://storify.com/IsharaComix/foss-fair-2013.)
Hope you enjoyed,