I was invited to give a short talk (30 minutes) in CartoDB’s offices last friday.
This was not part of a conference or anything; they just like to bring someone to their offices some Fridays, and have a short talk before lunch.
Here are the slides I used. As usual, my slides don’t really stand well by themselves. I will try to explain the main points below.
I divided the talk into 3 sections.
The Browser Curse: If I build a website today, future browsers should be able to handle it
The middle section is all about syntax comparison between the two languages. My main objective here was making clear that Lua has almost feature-parity with ECS6 (well, maybe 90%). I don’t know whether I succeeded in transmitting this. I felt I was missing more meat in this section, but I had to cut somewhere.
A secondary point I wanted to stress on this section is that Lua is a very economical language: it reuses its parts again and again. I mentioned this when looking at its multi-line comment (which reuses the multi-line string syntax), and of course, when explaining tables.
It can “add new stuff” (like the
=== operator), but it can’t “fix” bad parts (because that would potentially break the websites made 5 or 10 years ago).
let is objectively better than
var in all ways, but again, removing
needs to “drag it along”.
The differences in size, speed, maintainability and … “cruft” can all be attributed to the Browser Curse, in my opinion. I draw a strong parallelism with C++.
I left the most fun for the end: compiling Lua 5.2 in Turbo C++ 1.0, a C compiler which pre-dates the first version of Lua by several years.
Overall, I think people enjoyed the talk. I hope I was able to make at least some of them curious about Lua.
Personally, I appreciated the opportunity of trying a new talk in front of a small audience. I recommend it to everyone.
I also arrived to a somewhat important conclusion while writing the talk: previously I have stated my desire of being able to use Lua in a browser. I have reviewed that opinion completely. I don’t want Lua to ever touch a browser. I don’t want it to get infected with the Browser Curse.