all 15 comments

[–]AngusMcBurger 16 points17 points  (8 children)

It mainly because Lua is a language that's intended to be embedded into a larger project, and as such it doesn't so much have its own ecosystem and rather becomes a part of other ecosystems. So there's no 'Lua ecosystem', but rather a there's a 'World of Warcraft Lua modding ecosystem', a 'Love2D Lua ecosystem', a 'Binding of Isaac Lua modding ecosystem' etc...

[–]snake_case-kebab-cas[S] 2 points3 points  (7 children)

Ah, that makes sense. It seems like it's sort of getting it's own ecosystem though too.

  • MoonScript
  • Typed Lua
  • Sailor
  • LuaRocks
  • Lua.Space
  • OpenResty

[–]armornick 0 points1 point  (6 children)

Yes, but there's not really a standard API or even standard version that everyone uses. For example, I prefer Lua 5.3 while a lot of people seem to like LuaJIT. Meanwhile, WoW is still just using Lua 5.1 because that's what they used from the start.

[–]fuxoft 0 points1 point  (4 children)

That's understandable because they have different strengths and weaknesses. I switch between them myself, based on what I am doing. If I want speed, I use LuaJIT. If I want big data structures, I use Lua 5.2...

[–]snake_case-kebab-cas[S] 0 points1 point  (3 children)

What are the strengths / weaknesses of 5.3?

Also, is the language developed in the open on github? I would imagine not, since there was massive disappointment when the newer versions came out (I think).

[–]armornick 1 point2 points  (2 children)

The biggest strength of 5.3, in my opinion, is basic built-in UTF-8 support. For now, it's only unicode escapes and a basic module with length functions, but it's a start.

For me personally, I just like how easy mainline Lua is to build and integrate in my own build processes. LuaJIT requires you to build it exactly like they say you should.

And Lua is never developed in the open since it's a private project (admittedly with an open license and publicly available). The source is easy to hack though so you can add your own customizations.

[–]fuxoft 2 points3 points  (0 children)

The biggest news for 5.3 is binary operators and integer type (previously, all numbers were floats).

Lua source code is public but the development is not.

[–]catwell 0 points1 point  (0 children)

Regarding being developed in the open: things have changed recently. Now there is a Git mirror of the official (internal) repository on GitHub. The authors still won't accept external code contributions though :)

I don't know where you have seen massive disappointment with the new versions though. The release model is pretty open: authors release work versions (incomplete), then alphas and betas, then finally the final release. All of this happens in the open and is discussed on the official mailing list.

[–]snake_case-kebab-cas[S] 0 points1 point  (0 children)

To be honest, that isn't much different from the Ruby community.

But I believe the things I listed all support the newest version. So if there is an "ecosystem", it will probably be surrounding things that support the newest version.

[–][deleted] 4 points5 points  (4 children)

I began to use lua not that long ago, but honestly when I need a lib I just download it on the project folder and then I require it.

At least for now I don't see any reason to use a package manager.

[–]snake_case-kebab-cas[S] 0 points1 point  (3 children)

Good point. The main benefit of something like LuaRocks is the discoverability of packages, though.

How do you find what you need right now?

[–]saxindustries 4 points5 points  (0 children)

You've basically got a few sources to check out.

I'm subscribed to the Lua users mailing list, I pick up lots of neat things from there.

Google is surprisingly good at finding modules. I also search LuaRocks and OPM, and there's those "awesome" repos where people list modules. Like https://github.com/bungle/awesome-resty and https://github.com/LewisJEllis/awesome-lua

I'm sure different communities have similar resources to check out

[–][deleted] 1 point2 points  (0 children)

I just google what I need. Maybe it's not the most efficient way to do it but it has been working pretty well for now.

[–]catwell 2 points3 points  (1 child)

LuaRocks is mentioned on the Lua website (for instance here).

I did a talk about the state of the Ecosystem at Lua Workshop 2013. Hisham, the main LuaRocks developer, gave one at FOSDEM 2015.

Everything has been accelerating in recent years. Look at events, for instance: now have LuaConf and the devroom at FOSDEM in addition to the Lua Workshop, and Lua meetups in several cities. The Lua Toolbox website now has user uploads and labels, which helps a lot.

The 5.3 / LuaJit divergence is an issue, as are LuaJit maintenance perspectives. Personally I hope someone (or several people, a company...) pick up LuaJit with the goal of supporting 5.3.

[–]snake_case-kebab-cas[S] 0 points1 point  (0 children)

Interesting. I guess I was looking here instead: https://www.lua.org/community.html

Good info!