this post was submitted on 12 Nov 2025
253 points (99.2% liked)

Programmer Humor

27512 readers
700 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
top 22 comments
sorted by: hot top controversial new old
[–] CrackedLinuxISO@lemmy.dbzer0.com 53 points 2 weeks ago (3 children)

I once got assigned a work project to add new functionality to the web service of a recently-acquired company.

The meat of their codebase was a single lua file to handle web requests, query value from Redis, and then progressively filter out items in a loop. Of course, because Lua has no continue statement, the file was a long series of if / else blocks. It was clear that the development style was to just keep adding new things to the loop. There were, of course, no tests.

I asked the former CTO of the acquired company (now in a sales) why they went with Lua. His reply was something about how if Lua is good enough for fintech, it should be great for web services. He must have been good in the sales role, because when I learned how much our company paid to acquire this crappy Lua script, my jaw dropped.

Anyway, that's all to say that in my sample size of 1, Luarocks has been the least painful part of Lua.

[–] scrion@lemmy.world 23 points 2 weeks ago (2 children)

I mean, Lua is a pretty "interesting" choice for that application, but don't blame shitty coding practices and inexperienced coders on the language.

The gigantic loop could have been cleaned up with a table, registering handlers for the individual cases.

Lua is probably not the best choice for a web service, but it definitely has its applications.

[–] SlurpingPus@lemmy.world 4 points 2 weeks ago

There's a Lua module for Nginx, and in particular OpenResty bundles those two. Lua is snappy as hell, especially in the LuaJIT variant, and uses very little memory — so when it's paired with Nginx, one could probably run a performant web app on a toaster.

[–] irelephant@lemmy.dbzer0.com 2 points 1 week ago

Openresty and lapis are great for web services.

[–] hoppolito@mander.xyz 16 points 2 weeks ago* (last edited 2 weeks ago)

That’s a pretty crazy use of Lua if I may say so.

It is possible to craft continue-like logic in lua, however, with (out of all things) goto statements.

For example, I have the following code in my dotfiles:

	for _, lang in pairs(loopvar) do
		if condition then
			goto continue
		end
		<do whatever the loop actually does>
		::continue::
	end

Of course the continue could be called anything. Really felt uncomfortable resorting to this way but it is possible :-)

[–] Droechai@piefed.blahaj.zone 9 points 2 weeks ago

I did my first game in BASIC with thousands of IF/ELSE when I was like 11, good to know that experience is directly transferable!

[–] Hudell@lemmy.dbzer0.com 31 points 2 weeks ago (4 children)

Is there even an ecosystem? I don't think I have heard of anything for Lua itself, just the stuff that embed it.

[–] FaceDeer@fedia.io 18 points 2 weeks ago

There is. luarocks is basically the "pip" equivalent for lua, it installs packages (called "rocks") and manages dependencies. These packages can extend lua with all sorts of practical capabilities.

[–] MonkderVierte@lemmy.zip 6 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Ruby on Rails. 🚂🚃🚋🚃

[–] protogen420@lemmy.blahaj.zone 5 points 2 weeks ago

trams when?

[–] SlurpingPus@lemmy.world 2 points 2 weeks ago

Lua works smooth like butter with binary libraries written in C (since it's made to be embeddable in C), but also it's so fast that for many things people just do libraries in plain Lua.

[–] irelephant@lemmy.dbzer0.com 2 points 2 weeks ago

There is luarocks, which is better than nothing, but it's not great.

[–] kibiz0r@midwest.social 15 points 2 weeks ago (3 children)

My Lua experience is about 15 years old at this point, but back then I recall Luarocks had like 10 packages that were actually stable and maintained. Basically a ghost town. I’m gonna guess it hasn’t gotten much better.

[–] irelephant@lemmy.dbzer0.com 1 points 2 weeks ago

It's a lot better, but a lot haven't been updated in ages, usually some random dependency to a package won't install because of some compilation error.

[–] SlurpingPus@lemmy.world 1 points 2 weeks ago

These days there are ten packages for every task.

[–] mx_smith@lemmy.world 0 points 2 weeks ago

I used to use Wally a long time ago, but that is mainly Roblox package management. It also uses Cargo.

[–] Kolanaki@pawb.social 7 points 2 weeks ago (2 children)

I kinda got a bad taste from LUA when I was introduced to it via it being added in GMOD. It quickly led to me quitting the game because through it, you had remote control access possibilities just by running into the wrong player.

Like, I know that's not common but it took a while to actually learn it after that lol

[–] irelephant@lemmy.dbzer0.com 7 points 2 weeks ago

That doesn't really seem like a lua issue

[–] hoppolito@mander.xyz 6 points 2 weeks ago (1 children)

Can you expand on that?

I was running a tiny bit of garrsymod many years ago and didn’t know there were any RCEs. Unfortunately I can't find any news reports talking about it either at a quick glance?

[–] Kolanaki@pawb.social 5 points 2 weeks ago

When LUA scripting was first added to the game it had basically no guard rails and it was possible to write up LUA scripts that could download and execute files on your machine from within the game.

[–] entwine@programming.dev 5 points 2 weeks ago

Lua is cozy, like a nice, warm dumpster fire.

[–] belated_frog_pants@beehaw.org 4 points 2 weeks ago

Only ever used it with WoW addons. Arrays starting with 1 is so annoying