[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Fleece: fast Lua to JSON
- From: Alexander Gladysh <agladysh@...>
- Date: Mon, 21 Mar 2011 01:27:36 +0300
On Mon, Mar 21, 2011 at 00:03, Henning Diedrich <hd2010@eonblast.com> wrote:
> On 3/20/11 2:18 PM, Alexander Gladysh wrote:
> On Sun, Mar 20, 2011 at 12:45, Alexander Gladysh <agladysh@gmail.com> wrote:
> 1. Any programmer in my team who would write such... code without
> getting an explicit permission would be fired.
> I have to clarify: code that goes in production commercial system, not
> some experimental or personal stuff, of course :-)
> Of course!
> As always, if somebody tries to force it upon you, just say no. It will be
> the right thing to do and will relax your mind and soul!
Of course, I have no problem with that.
> But I am growing a tad bit concerned about the ratio of time you might have
> spent actually looking at Fleece, as opposed to writing about it?
> If you feel it's not worth much of your time - then maybe withhold judgment?
Well, with this letter the ratio is probably close to 3 parts writing
to 2 parts looking.
> I found a great way to explain your demand to my girl friend at the break
> fast table.
Which demand would it be?
I made one (hopefully) polite request to you: please explain your
design motivation, and one to community: provide a benchmark which
proves or disproves feasibility of Fleece module.
I plan to do the second part sometime on this week if no one would
step up. (My free time is, sadly, scarce nowadays.)
> I am having a bit of a hard time getting over your gun threat
> metaphor to be honest, so that came up.
I did not try to threat you, see the other post. I apologize again for
this lame metaphor. :-)
> We were discussing how Eva Mendes
> has so much more sex than Salma Hayek and how great it would have been if
> Salma would have stuck her toe into Clooneys mouth in Dusk to Dawn. So it's
> like:
Above paragraph is lost on me, sorry.
> Fleece is your nitro system and you are complaining that it's not having a
> fuel nozzle that fits the standard filler neck.
> It just doesn't make sense. It is not an inadvertent mistake,
Of course it is not an inadvertent mistake — it is clearly visible
that you've put a lot of effort to it.
> but by design, that nitro, or Fleece, must be attached closer to the engine. Because with a
> fuel nozzle, sure, in theory you'd have a nitro tank you could conveniently
> re-use with any car model. It would also be useless. Because, yes, you could
> fill nitro right into the tank by any means. But you defeat the goal of
> focused performance.** And it would really look stupid. (Salma's toe does
> not play a role in the metaphor and is not associated with the fuel nozzle.
> The connection is merely that Eva played in 2F2F.)
I do not know what is 2F2F or who is Eva Mendez (probably some
actress), so your metaphor is probably lost on me, sorry.
But goal of "focused performance" has to be offset by (1) the rule of
avoidance of premature optimization and (2) the cost of maintenance of
the system.
> For all else, you have not actually explained why you find Fleece so
> surprisingly offensive,
I tried to do this again in my previous post. Please tell me if I need
to be more elaborate — and I'll try to write more tomorrow. Also — see
below.
> nor why you would fire people for using it (your
> next scare metaphor).
Um, not exactly.
I would fire a person that would try to *write* (i.e. create) a
library or other piece of code, that uses Lua internals like Fleece
does, to be used in commercial production system that I control,
*without* getting my (or his direct superior's) explicit and motivated
*permission* to do so. (Actually it is a maxim — that person is likely
to be off with nothing more than a hard talk.)
> Or why you maintain that it is somehow
> 'unprofessional' to use something like it.
I never said it. I said that Fleece is banned from my production code
— as well as any other library too tightly coupled with Lua internals.
(Including, for example, Pluto.)
In general — risks are too high, benefits are too low. There are
specialized cases when it is worth it — JSON serialization on server
side is not among them — in my opinion that is.
Furthermore, since these cases are, in my opinion, so specialized and
consequences so dire — I, acting from my personal beliefs on what is
wrong and what is right, would be ashamed to publish this code as a
publicly available module.
It does not mean that *you* should be ashamed to do so — I do not
force my system of values on you.
> I am happy to receive usable, even destructive feedback. But what policy is
> this?
> Some investment to disclose? The pureness of Lua? But claiming the
> professional high ground? Give me a break. There are thinking beings around.
I hope that I explained my position. If you wish, I will try to
clarify it more tomorrow.
To reiterate, using different metaphor: to use private internals of a
major third-party system is, in my opinion, an engineering "sin". This
"sin", in general, can not be justified by the execution speed alone.
If someone uses such "sinning" code which came from a third party, he
is likely to have to "pay" for the "sin" as well — not in metaphysical
sense, but in the maintenance costs.
> I am seeing you contributed command line tools for converting Lua to JSON
> and vice versa.
Only as a byproducts of my process. I do not claim them to be much
useful for anything.
If you want to pick a target for criticism, which is comparable to
Fleece — pick luabins: https://github.com/agladysh/luabins.
> I appreciate that this is the other end of employing
> converters for manual tasks. I wouldn't dream of criticizing their
> performance.
I do not criticize performance of Fleece. I try to understand why did
you use such questionable — in my opinion — engineering practices to
implement it.
Alexander.