▲ | nine_k 5 days ago | |||||||
One big takeaway: a 60k LOC project in Lua is doable, and it will not crumble under its own weight. Surprisingly, LuaJIT is not mentioned even once. Luau is mentioned, Teal is mentioned, Fennel, not. (But Haskell is mentioned!) Little is told about the general code structure, likely because it's dictated by the (C++-based) game engine with Lua bindings. It would be interesting to see an analysis of a comparably large game built with Löve, for instance. | ||||||||
▲ | stevekemp 4 days ago | parent | next [-] | |||||||
Years ago I wrote/maintained a modal console-based email client. It was written with some UI primitives in C++ and the UI actually maintained and controlled by lua. Viewing a list of folders? Lua. Viewing a list of messages? lua. Viewing a single message? Lua. Those were the three main modes and UI options. All the keybindings, layout, colour setup, and similar was dynamic. It actually worked out really well. For comparison I just ran "wc -l" against he codebase: 60k lines. Combination of C++ and Lua, but mostly Lua. Having good scope and good tests made such a thing fine to support. Mostly the pain was broken MIME messages and handling dealing with the external world - e.g. invoking gpg to handle decryption and encryption. I'd work with big-lua again if I had the need, it's a fun language and very flexible. | ||||||||
▲ | lifthrasiir 5 days ago | parent | prev | next [-] | |||||||
> it will not crumble under its own weight It is possible to make it not crumble under its own weight, right? I had my share of Lua nightmare with more than 100K lines of code back when I was a gamedev [1], and it seems that there are some requirements in order to remain sane with the growth. Thankfully there are now multiple working type checkers for Lua, unlike when I had to built my own. [1] https://news.ycombinator.com/item?id=18351788 is my canonical answer, but I have written many other comments about Lua which should be easy to search. | ||||||||
| ||||||||
▲ | debugnik 5 days ago | parent | prev | next [-] | |||||||
> LuaJIT is not mentioned even once Defold uses LuaJIT (except for web which I think uses Lua 5.1 compiled to wasm?), so it's taken for granted. | ||||||||
▲ | wruza 4 days ago | parent | prev | next [-] | |||||||
I read half the article and little is told in it in general. You'd expect some deeper developer reflections on a 60kloc project. Like, much deeper. The part about "spacer" hints that the second half won't surprise either. There's just not enough general xp to make conclusions. | ||||||||
▲ | 4 days ago | parent | prev | next [-] | |||||||
[deleted] | ||||||||
▲ | rahil627 4 days ago | parent | prev [-] | |||||||
60k? try Roblox’s 60bajillion! | ||||||||
|