Heiko wrote:1. You fail to explain *why* we'd need modules.
tobiassjosten wrote:You should have modules because this would make it easier to distribute isolated functionality.
Heiko wrote:2. You fail to discuss your module idea in the context of client objects (triggers, aliases, buttons, keys etc.) as they are the most important part of any real world package.
Modules are, IMO, better suited for "isolated functionality". Tools in a toolbox, if you want. Full blown systems might benefit from another distribution model. Allthough that should be pluggable with the modules.
In any case, I'd advocate building a proper API for controlling any aspect of the client with Lua and without having to use an "in client editor".
Heiko wrote:3. We have our own serialize functions. What would Nick Gammon's serialize function offer that isn't covered by our own version?
See that word,
example, I used there? Yeah.
Heiko wrote:4. Scanning over your Protea project I wonder why a Mudlet user should use such a system that doesn't make use of any of Mudlet's built in functionality and does its very own low level parsing in Lua to reinvent the wheel in slow motion? How do you think your system's performance would fare against a real Mudlet package that makes proper use of the client's native C++ trigger engine? As soon as your system gets bigger you'll find out what I'm talking about especially in the face of the spreading use of MXP and the resulting extreme overhead of non-print data. IMHO your system should either make proper use of its supported clients' native objects or stick to a black box solution on some proxy client. IMHO a Mudlet, Mush or CMud user has little use for a black box system that he cannot modify with the client's user interface.
Protea does support client specific functionality (adapters). And if there is an aspect you feel is left out in this regard, feel free to submit patches and/or pull requests on GitHub.
As for using Lua to parse I/O. There is little disagreement that C++ is (much) faster than Lua. However, even with tens of thousands of trigger patterns and hundreds of lines to match against per second, this is not a problem. Lua pattern matching handles this just fine.
Parsing in .00002s or .002s sure is a magnitude of 100, but it's still a difference you will never, ever notice. So why over optimize?
This debate has been a blast, really, but this is clearly not going anywhere. So I'll wrap my enagement up with this post. Best of luck people!