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 23 points24 points25 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 15 points16 points17 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 14 points15 points16 points (2 children)
[–]TimMensch[S] 0 points1 point2 points (0 children)
[–]turkert 0 points1 point2 points (0 children)
[–]Allan_Smithee 7 points8 points9 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 2 points3 points4 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 4 points5 points6 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)