[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: What's up with token filters (Re: New operators?)
- From: Glenn Maynard <glenn@...>
- Date: Sat, 14 Apr 2007 21:11:55 -0400
On Fri, Apr 13, 2007 at 04:06:26PM -0500, Rici Lake wrote:
> It's really cool that it is quite easy to make Lua-like languages with
> a variety of tools -- source patches, token filters, metalua, etc. This
> allows for easy experimentation with language features, some of which
> may eventually get adopted by Lua, or may become features in other
> languages. It is also interesting that it is easy to create a language
> which essentially targets the Lua VM by generating Lua source; there
> are many applications for that.
>
> But these are not Lua, and they shouldn't pretend to be. If one wants
> a language to grow a large and useful array of third-party compatible
> libraries -- and I believe that you share that goal for Lua -- then
> it is vital that there be a standard Lua in which you can write those
> libraries. If you are using a source-transformation system to code
> those libraries in, then by all means provide the pre-transformed
> code as well, but make sure you distribute something which can just
> be require()'d by a casual Lua user.
I do share the desire for a reasonably standard Lua. That's why I don't
patch += into my copy, or use a token filter for it; the value of the
feature isn't quite enough to warrant making anyone modifying my code
not only have to learn the APIs surrounding it, but also a bunch of
small tweaks that make my Lua different from everyone else's. And then
to inflict habits onto those poor programmers, who will now probably
habitually try to use my custom operators in other projects, curse me
when it fails, and maybe splinter off some more code by copying my
changes to that project ...
That's why I cringe at the "just modify your own copy" line. It ignores
the nontrivial costs of doing that.
(At least token filters would reduce maintenance costs. My copy of
Lua is not prestine, and so I've put off upgrading to 5.1.2 because
I don't want to spend time porting those changes ...)
--
Glenn Maynard