lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I'm noticing that people are using the term "bug" where they find
behaviours that seem to be some sort of breakage in the language.

I prefer to use the term "defect" for the case where "the language
fails to fulfil a promise made by its (abstract) definition", and
only use "bug" colloquially where this discrepancy is obviously true.

The key is the promises (i.e. the "contract") made, for an abstract
implementation, by the language designers.  Time-critical
(real-time) specifications are relatively rare in language
specifications, as a portable, flexible and especially a dynamic
scripting language may want to be applicable to a wide range of
hardware/OS/runtime environment configurations.

Ironically, a change that results in an unexpected improvement to
the runtime performance of some code may seem to be a "bug" -- it
may expose a race condition (the real defect) that was hidden by
the previous performance profile.

Lua-l is a forum which has quite a number of technically
sophisticated participants, including members of the core
language and standard library designers and implementers.  This
is not an unusual practice -- many programs have
developer/technical/author/release announcement lists.  (Although
not the case in the current discussion, newbies sometimes come in
with questions that are a little off-kilter, and are typically
handled with understanding and are helped in various ways.)

If possible, I'd prefer to see the term "defect", with its careful
connection to a detailed understanding of exactly what the
language specification (Reference Manual) is offering, be used
where possible.

"Programming in Lua", on the other hand, gives examples where the
choice of algorithm (e.g. concatenating a large number of immutable
strings) can dramatically affect performance.

Just thinking about this now, perhaps there's room for a
"Cookbook" or "Recipes" publication.  At the moment, the Lua
Wiki serves at least part of this role, but I'm not sure about
how it's indexed, cross-referenced, sectioned or sequenced in
covering its main content.  A cookbook could start as a page in
the Wiki, and perhaps end up forming the basis of a stand-alone

Just some ideas... hopefully this isn't too distracting...

sur-behoffski (Brenton Hoff)
programmer, Grouse Software