Introduction
I really enjoyed reading The evolution of Lua, continued that I learned about thanks to this Hacker News thread. This is a great perspective on the long-term (15 year) evolution of the Lua programming language.
While discussing language evolution is not completely unheard of, it is rather atypical of the discussion we usually have around programming languages. Most often you’re only concerned about the syntax or features of a particular language version, usually the latest one. Sometimes you might look at release notes to see when a feature was introduced or a bug was fixed. Our day to day needs don’t often benefit from a longer term perspective.
Now and then it is nice to step back and see how ideas work out and morph to lead to the “final product” we are working with today. The choices of a programming language designer are something most programmers have considered in some way. Our tastes in languages - what we would use for our next project and why - are a way of expressing opinions about what we’d like to see more of from the designers and implementers of the languages.
The evolution of Lua, continued lets us get beyond our imaginations of what it must be like to hear how the last 15 years have actually gone for the Lua developers. What difficult choices were made? How did it work out years later?
Specifics
It is fascinating that integers proved to be so challenging and revolutionary for a programming language in recent memory. I’m so impressed and grateful at how the authors have walked us all through this journey with a healthy dose of the concern and confusion they experienced along the way.
I had never heard of generational garbage collection before. Now I have a better understanding of it and I’m glad that it is working out well for Lua.
One of Lua’s claims to fame was being the programming language for the World of Warcraft client. This was where I’ve spent the most time working with Lua. It was a positive experience so many years ago and it brought a spark of joy for that to get mentioned as well.
Community
The difficulties around LuaJIT made my sympathies go out to everyone involved. So much effort went into making such amazing things, but sometimes communities don’t get along and forking is the only solution. This can lead to a naming challenge, but that’s easier than getting fractured communities back together.
As a long-time commentator on the free and open source communities I am proud of the Lua community for reflecting on itself in such a thorough and honest fashion. Keeping a community together is a never-ending challenge. Some things will work, some things won’t. How you choose what to do from there can have amazingly great or incredibly dismal consequences. Whether you agree with the Lua dev’s choices, it is nice to learn what their experience of going through the process was like.
Conclusion
With the RubyGems drama and bewildering lawfare in the Wordpress community in our recent memories, it is heartwarming to see a counter example. Some communities are surviving and thriving over decades. The free software and open source movements are not over since some corporate overlords have pulled another bait and switch. The community not only remains vigilant to not rewarding bad actors, but new and interesting software continues to come out every day.
Meta
I didn’t finish anything that I meant to finish this month. I am happy to be writing more actively and consistently than in years past. The schedule was a nice idea, but I’m not too invested in it.
Linked-in post
I posted this on linked-in on the Monday after it went live on www.chicks.net:
Just published a review of “The evolution of Lua, continued” - a fascinating look at 15 years of programming language development!
What struck me most: Even adding integers to a language in the 2020’s involves difficult tradeoffs. The authors walk us through their journey with refreshing honesty about the challenges, confusion, and tough decisions along the way.
From generational garbage collection to the complexities of the LuaJIT fork, this paper offers rare insight into what it’s really like to maintain a programming language over decades. Plus, fond memories of Lua powering World of Warcraft addons!
In a world of RubyGems drama and corporate licensing switches, it’s heartening to see a community that’s surviving and thriving after decades. The free software movement continues to deliver.
Full review: https://www.chicks.net/posts/2025-10-23-review-evolution-of-lua/
#Lua #ProgrammingLanguages #SoftwareDevelopment #OpenSource #FreeSoftware #GameDev #TechHistory #LanguageDesign #ComputerScience #WoW #Programming #SoftwareEngineering #TechCommunity