[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available)
- From: David Demelier <demelier.david@...>
- Date: Wed, 09 Jul 2014 14:44:46 +0200
Hi,
It is a hard decision to take, I've been following Lua for two years and
used it intensively in several projects including irccd [1] and Lua-SDL
[2]. There were already things that I didn't like much in Lua but I
could deal with it but some are much more annoying for me.
* No continue keyword
This has probably been the most requested feature and I don't really
understand why it is, it is not included. So you have break but not
continue, it makes no sense at all. This is probably the thing I hate
the most in Lua. Each Lua version breaks compatibility with previous
versions so the argument "adding a new keyword will break" is not enough
for me. I personally think it's just to piss people off. This keyword
may take something like 15-30 lines of code maybe?
* The equality operator
Lua was designed with the use of ~= instead of != in mind because it was
planned to be used by non programmers IIRC. It's okay, but I don't think
~= is easier to understand than !=. When you have thousands of languages
which already use != and you come to Lua which use ~= you may be
confused. In some spoken languages, ~= means "approximatively equals".
* Closed source development
While Lua is completely free and open source, I don't like much the
closed development model it uses. First because you never know when /
what feature is coming except when a work version come few years later.
Also this close development model includes a big flaw, if Lua does not
compile / work on a certain operating system, you can't send a patch
because:
1. Lua's authors don't accept patches
2. Because you don't have access to the development source code
So, if one day Lua 5.3 does not work correctly on my OS, what should I
do? Tell Lua's authors to install my OS and try by themselves?
* Compatibility
Each Lua release breaks the compatibility with earlier versions. There
are however some compatibility switches to enable removed functions but
it does not save the functions whose signatures have completely changed.
This break scripts everytime.
The same concern is applied for the C API, if I want to support
different versions of Lua, I need to add a bunch of #if LUA_VERSION_NUM
to fix the signatures.
* Modules
As a side effect of the compatibility problem explained above, a lot of
modules are *still not* Lua 5.2 compatible and some are just completely
outdated. I know this because I have already sent patches to some of
them and tried others. I don't think Lua will have a large ecosystem
like Python or RubyGems because of these compatibility issues.
With that in mind, Lua is probably not the best language to use as a
standalone application and embedding is better (which I did with irccd).
* Lua's authors decisions
I've read in the FAQ that Lua *is* Lua's authors language. I agree that
because it's their language that they can do what they want, it's true.
But when you release it publicly, you will expect to have lot of feature
request / changes, almost all of them are just completely ignored
because Lua's authors *don't* want them. In that case, I just think that
Lua should even not have a mailing list and just a "bug tracker".
Also, it seems that almost each Lua version remove essentials function
that users *have used* in the past, so removing them constrain the Lua
user to adapt its script or to never update the Lua version.
Because of this, I'm very afraid of what may be removed in Lua 5.4 and
future versions.
Nevertheless, it was very fun to use Lua in my IRC bot, I really loved
it because it has simplified a lot the creation of plugins. I much
enjoyed this but now I think I'll just leave the land of scripting
languages at all, at the beginning I was thinking of switching to V8 but
I think I'll just stick with plain C++. However, I will still maintain
irccd and Lua-SDL2 which will be my last Lua powered projects.
Roberto, Luiz thanks very much for your work, Lua is a great language,
but probably not for me.
I'll still keep my PiL 3 as an historical use.
On a very sad day, regards,
David.
[1] http://projects.malikania.fr/irccd
[2] https://redmine.malikania.fr/projects/luasdl2/wiki
- Follow-Ups:
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Alex Queiroz
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), steve donovan
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Hans Hagen
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Michel Martens
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Tim Hill
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Steven Degutis
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Alexander
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Rena
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), Vadim Peretokin
- Re: Why I leave Lua (Was: Re: [ANN] Lua 5.3.0 (work3) now available), steve donovan