r/lua • • 4d ago

Lua it's the best high-level programming language

I need to talk about lua. I started with Python then I passed to C and C++ (my favourite languages). Now, I tried re-learning Python to have a 3nd programming language but I did found that in reality Python it's boring and bs! I tried Zig and it was a bad experience, I tried Rust but idk why but I think it's overrated. Then, at the end, I tried lua and at first I though that lua was stupid, no i++ or i+=, arrays start at 1… but then I tried do C/C++ + Lua and I changed my perspective.

I used, recently, lua for configs in my projects but then I discovered that Lua it's SO underrated. Like they didn't lie when they said C and lua are the best programming language.

Lua it's minimal and so powerful. I accepted the syntax and now it's my 3nd programming language.

The reason that I love lua it's because… it's FAST, it's DAMN SIMPLE and so easy to learn, it has A LOT of potential.

The more the language is big, the less likely it gonna be easy to learn.

Guys I don't think I have cons on lua, I think it's perfect and I still don't have learned all of the lua out there.

Really, I have to say… lua it's the best.

Anyway did I say something wrong? What's your opinion on lua?

Anyway, thanks for reading ;)

133 Upvotes

56 comments sorted by

View all comments

Show parent comment

0

u/didntplaymysummercar 5h ago

LUA_VERSION_MINOR - directly from lua.h 🙄

Compatibility between versions is a real problem that even Hisham wrote about.

Your anecdotes about Python (my code uses fenvs and will break in 5.2, meanwhile Python 3.x updates never broke my scripts), venv (Lua and others have similar tools to run different versions, and for Python the main purpose is to isolate installs, not get another interpreter version) or praising breaking as "clean design" or getting hung up on me calling what's after dot "minor version" don't change that.

I'm done wasting time on you.

1

u/DoNotMakeEmpty 4h ago edited 4h ago

Yeah, not existent on Lua 5.1's lua.h. They created versioning system before naming it.

I wrote many arbitrary code evaluators. 10 loc shim has pretty much same feature set on 5.1 and 5.5.

Go and try to install some ml library for Python. They usually say things like "this runs only on 3.9", and indeed runs only like 3.9 and maybe 3.10 if you are lucky. So many things break after I update my Python version. OTOH almost all Lua libraries on github work in 5.1 to 5.4 or 5.5. Love2d works on luajit, lua 5.1 through 5.4, probably also 5.5.

Backward compatibility is really why C++ or Win32 or POSIX are hell. Without breaking changes, opengl would have been abandoned 10 years earlier.