On Apr 28, 2008, at 03:21, Marc Lehmann wrote:
On Sat, Apr 26, 2008 at 08:13:27AM -0400, Rocco Caputo <[EMAIL PROTECTED] > wrote:
each event watcher.  Anyone who knows POE can tell you this is one of
the least efficient designs possible.  In fact, this design is worse
than the average for first-time POE users.

[He then called my model fundamentally broken in private mail and the
documentation rude and unprofessional, without bringing up any evidence]

Dear perl-loop@perl.org, and anyone reading this in the archives.

I apologize for my part in this unfolding thread. As Marc mentions, I have been trying to take it to private e-mail. However I feel that Marc has misrepresented to the list what I said to him in private. At this point, it's easier for me to repost what I actually said rather than paraphrase it.

Again, I'm sorry you had to be involved.

--
Rocco Caputo - [EMAIL PROTECTED]

Begin forwarded message:
From: Rocco Caputo <[EMAIL PROTECTED]>
Date: April 27, 2008 23:29:18 EDT
To: Marc Lehmann <[EMAIL PROTECTED]>
Subject: Re: benchmarking various event loops with and without anyevent

On Apr 27, 2008, at 01:53, Marc Lehmann wrote:

On Sun, Apr 27, 2008 at 01:15:49AM -0400, Rocco Caputo <[EMAIL PROTECTED] > wrote:
I have read your code and documentation for AnyEvent::Impl::POE. Your
module's design is fundamentally broken, and your code is probably
more to blame than POE.

Oh, btw, be careful with such strong idioms such as "fundemantally broken": so far, there is no evidence that it is broken at all, only inefficient.

(If you think it really is fundamentally _broken_ then you better back up
your statements).

I hope to show that I intended no offense.

Reasonable scalability (CPU and memory) seems to be one of AnyEvent's design goals. I base this impression on the fact that you're benchmarking your code in terms of speed and size. "Reasonable" is subject to interpretation, but I think we agree that AnyEvent::Impl::POE is neither as fast nor as small as it should be.

Therefore, while AnyEvent::Impl::POE operates correctly, it does not fulfill some of AnyEvent's design goals.

AnyEvent::Impl::POE's greatest inefficiencies stem from one fundamental design choice: the 1:1 relationship between watcher instances and POE::Session instances. In your own words: "AnyEvent has to create one POE::Session per event watcher, which is immensely slow and makes watchers very large."

One point of contention may be whether this is a design or implementation flaw. The problem is inherent in the way one class (AnyEvent::Impl::POE) interacts with another (POE::Session). Class interaction is a software design issue. It can be modeled in software design languages such as UML. Re-implementing the same entity relationship more efficiently, or in a faster language such as C, would not resolve the scalability problem.

Therefore, AnyEvent::Impl::POE is flawed in design rather than implementation.

Therefore, AnyEvent::Impl::POE's design prevents it from meeting some of AnyEvent's design goals.

Therefore, AnyEvent::Impl::POE's design is broken.

Unfortunately most of AnyEvent::Impl::POE's design stems from its flawed interaction with POE::Session. We should not need to change AnyEvent::Impl::POE's public interface, but we will need to rethink and revise nearly all aspects of its interaction with POE.

Therefore, AnyEvent::Impl::POE's design flaw is a fundamental one.

Therefore, AnyEvent::Impl::POE's design is fundamentally broken.

Again, let me repeat that empty insults that obviously are founded by
paranoia will not have any positive effect on your standing with me (I mean, I won't hate you or anything, but you make yourself an idiot in my
eyes very quickly by repeatedly not beinging up any evidence...).

Of course, I understand that if you mistook my comments about POE as rude,
there is a natural tendency to "insult back".


I hope I have shown reasonable evidence that my assertion is neither empty nor intrinsically insulting. Without the intent to insult, there can be no intent to "insult back". In the end, any offense you have taken may be of your own manufacture. Could there be cultural differences to overcome?

In this light, your assertion of my paranoia is unfounded, unjust and offensive. Your view that I'm acting like an idiot is no better. You are of course entitled to your opinions, but those two are not appropriate for polite conversation.

...

I'm sorry that I haven't responded promptly to your e-mail. I get the impression that you expect the worst from me, so I feel the need to choose my words in a slow and painful (and often futile) effort to minimize being misunderstood. As a result, I cannot write to you as often as I would like. Nor have I had the opportunity to work with you on the module in question (something I would much rather be doing).

I hope we can reach a mutual understanding, if only so that we may correspond and collaborate more effectively.

Until next time,

--
Rocco Caputo - [EMAIL PROTECTED]

Reply via email to