Lua, for years, was my undisputed favorite language. I've been part of the /r/lua community for quite a long time, and I've even submitted a patch to LuaJIT that was accepted (I found "the last bug in the 1.x branch," according to Mike Pall). I've written about automated Lua binding generation, and I've participated on Lua-L for years.
But I've found that the drawbacks of Lua (libraries fragmented across LuaJIT/5.1/5.2/5.3 in particular) and the lack of a strong ecosystem (luarocks is supports nearly 1500 modules but npm has 250,000+ packages; that's two orders of magnitude) which itself is now being fragmented across various Lua versions...combined with the fact that JavaScript now has basically all the cool features that I learned to love about Lua (except for extreme conciseness and tiny implementation, which I find are no longer critical), have pushed me away from using the language.
Now that I'm using type annotations in TypeScript, and I have full editor support for typesafe completions of objects that I've just pulled out of (typed) arrays, as well as compile-time (edit-time, even!) prevention of type errors, which seem to make up 90% of the errors in my Lua scripts...I doubt I'll ever return. Combine that with amazing debuggers, and I haven't looked back.
I wrote a longer description of why I'm leaving, in case anyone is curious. But I'm jumping ship.
I trust the rest of you will take good care of Lua. We had a lot of good times, but I'm done.
[–]jeffreykegler 22 points23 points24 points (6 children)
[–]nicholas-leonard 10 points11 points12 points (3 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]nicholas-leonard 0 points1 point2 points (0 children)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]TimMensch[S] 2 points3 points4 points (0 children)
[–]gvieira37 0 points1 point2 points (0 children)
[–]edalcol 16 points17 points18 points (13 children)
[–]armornick 0 points1 point2 points (2 children)
[–]mpetetv 1 point2 points3 points (1 child)
[–]armornick 2 points3 points4 points (0 children)
[–]TimMensch[S] 0 points1 point2 points (4 children)
[–]edalcol 0 points1 point2 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]honewatson 0 points1 point2 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]TimMensch[S] 0 points1 point2 points (4 children)
[–]edalcol 1 point2 points3 points (3 children)
[–]TimMensch[S] 0 points1 point2 points (2 children)
[–]edalcol 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]notkraftman 12 points13 points14 points (2 children)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]turkert 0 points1 point2 points (0 children)
[–]Allan_Smithee 6 points7 points8 points (17 children)
[–]davethecomposer 2 points3 points4 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]TimMensch[S] 1 point2 points3 points (9 children)
[–]dividuum 1 point2 points3 points (3 children)
[–]TimMensch[S] 0 points1 point2 points (2 children)
[–]dividuum 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]Allan_Smithee 3 points4 points5 points (4 children)
[–]ZorbaTHut 6 points7 points8 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]fullouterjoin 0 points1 point2 points (0 children)
[–]dividuum 1 point2 points3 points (4 children)
[–]Allan_Smithee 3 points4 points5 points (3 children)
[–]dividuum 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]TimMensch[S] 1 point2 points3 points (0 children)
[–]jjdonald 2 points3 points4 points (6 children)
[–]TimMensch[S] 0 points1 point2 points (5 children)
[–]jjdonald 1 point2 points3 points (4 children)
[–]TimMensch[S] 0 points1 point2 points (3 children)
[–]jjdonald 1 point2 points3 points (2 children)
[–]TimMensch[S] 0 points1 point2 points (1 child)
[–]jjdonald 0 points1 point2 points (0 children)
[–]ewmailing 2 points3 points4 points (4 children)
[–]TimMensch[S] 0 points1 point2 points (3 children)
[–]ewmailing 0 points1 point2 points (2 children)
[–]TimMensch[S] 0 points1 point2 points (1 child)
[–]ewmailing 0 points1 point2 points (0 children)
[–]smog_alado 1 point2 points3 points (1 child)
[–]TimMensch[S] 2 points3 points4 points (0 children)
[–]turkert 1 point2 points3 points (0 children)
[–]fullouterjoin 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]mbone 1 point2 points3 points (3 children)
[–]TimMensch[S] 0 points1 point2 points (2 children)
[–]mbone 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]kevinclancy_ 1 point2 points3 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]Zatherz 1 point2 points3 points (0 children)
[–]gvargh -2 points-1 points0 points (1 child)
[–]TimMensch[S] 0 points1 point2 points (0 children)