As announced in a GitHub post, I’ve had contributed enough to the current version of LWT to consider that it was time to roll over a new project, namely LUTE. In this blog I’m detailing the reasons for this change and it’s implications.
A Bit of History
After one year of contributing to my fork of LWT, I felt that I had done most of the reasonable housekeeping and small feature insertions. It was quite fun, but the more I worked, the more I felt that I had to stop contributing to the app at some point.
The original LWT stems from a great concept: learning by reading in your target language. However, the app had a chaotic development: it dates back to 2011, was made by a single person who is not a professional software developer, and never received contributions. The app expanded iteratively and was never intended to be production-ready. It has no test cases, no clean access to the database, etc.
Those were feature I struggled to import, but at some point I had to admit that there were too many things to do, and that a refactoring was no longer the solution. I started posting about a new app and discussing with the community, until a very motivated person came and saved the day: jzohrab.
He is an experienced software developer who decided to rebuild LWT from scratch at a time when I had my hands full fixing current LWT bugs. His intervention enabled me to pack up things with LWT while he was working on his software, enabling a smooth transition. As of May 2023, I consider both programs worth using.
LUTE + LWT-fork Era
LWT-fork is not a goner though. LUTE is a nice piece of software, but it hasn’t included all the features of LWT yet. More importantly, LUTE is jz’s software, and while we often collaborate together, our views can be diverging on some points. The organization we came into was that while he continues working on LUTE, I can freely solve problems on LWT, try new features, and import things I consider important to LUTE. With things as this, projects can benefit from each other, and users are free to use either of the two.
As a personal ambition for LWT, I now try to keep backward compatibility at a maximum while experimenting with new features that can be ported to LUTE, as stated in a previous discussion. LWT is still a nice playground for me because it deals with the basics of full-stack engineering (good to get experience), while LUTE relies on frameworks. Both are very nice to contribute to, and I hope you will find them useful.
If you liked any of these projects, please leave a star (LWT/LUTE stargazers) or fork them; that is our only reward as open-source developers!
Leave a Reply