lua-users home
lua-l archive

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




On Saturday, February 22, 2014, Petite Abeille <petite.abeille@gmail.com> wrote:

On Feb 23, 2014, at 12:48 AM, Tim Hill <drtimhill@gmail.com> wrote:

> No,

Shocker.

> but it’s clear that io:lines() is a dangerous API to use unless you have complete control over the input dataset.

( Meh. Sounds like a drama-queen argument, with a dose of tunnel vision. Anyway, to each their own. )




On some level, it's an enlightening debate about a technical issue running up against The Art of Lua. 

[mushy prose follows]

Art is defined by enforced limitation. Whether it's paint or software, when an expert uses a limitation in the construction of a creative work, the output has a distinct ability to be truly meaningful. There are precious few examples of this in software. HTTP is one. Lua is most certainly one, as well. [1]

Breaking the rules is also part of the process and for something as technical as Lua, pragmatism is mixed into these process. So, we have a POSIX flag and we have dynamically loaded libraries and a handful of other "nods" to reality.

However, we're talking about behavior that can be confusing when given out-of-spec input in a single method of the standard library and an issue that has a frequency that is unknown. This could easily be, in many people's eyes, "improved" by breaking the rules. The consequences were better stated by others, above (potentially inconsistent behavior between runtimes on different systems, etc.)

These changes are incredibly expensive, even if their implementation is nothing more than a "simple patch." If they turn out to be a mistake, reversing them is even more dramatic. **This is why their consideration requires a great deal of thought about every single little detail.** When it comes to knowing what those consequences actually are, there are probably 5 people on this list that I would trust,. The vast majority of us think that cross platform means Mac, PC and Linux.

In this thread, when people didn't agree, things devolved. It's beyond the patience of some to put up with talk about "simple patches" to "bug fixes". The patch is worth nothing and the words "bug fix" are ignorant and insulting. There is only so much grace that a person has before he or she decides to go back to work.

While the technical issue is important, the human lesson is far more important. You can be "right." But until you take the time to understand why the smart person on the other side of your argument disagrees with you, then it is you that is the problem and you can only do damage.

If we could go 190 or so messages without "drama-queen", claims of violations of free speech, or dismissing other's concerns as "not legitimate" (when those concerns come from people with reputations that deserve far greater than that)...

Then we truly will have achieved something special.

-Andrew

[1] I'd love to hear other examples in software.