[Haskell-cafe] Design of an extensible system
Jeremy O'Donoghue
jeremy.odonoghue at gmail.com
Tue Jul 24 07:30:07 UTC 2018
> On 24 Jul 2018, at 15:16, Paul <aquagnu at gmail.com> wrote:
>
> > that Pandoc supported dynamically loading of extra plugins on demand.
>
> It means .dll/.so. But also there are applications with pre-built "plugins" - you can not load them dynamically, but can turn-on/off dynamically (from a list of pre-installed plugins). It's useful too.
>
Pandoc plug-ins are separate executables rather than shared libraries. Haskell data types are serialised by Pandoc then de-serialised, modified and re-serialised in each plugin.
The Pandoc approach is more like a data pipeline with Pandoc itself at both ends.
Jeremy
> 24.07.2018 09:07, Marc Busqué wrotes:
>> On Mon, 23 Jul 2018, John Lato wrote:
>>
>>> I think you're attempting to optimize the wrong thing. In a dynamic language like Ruby, this approach makes sense because download times are a
>>> significant fraction of the user's time, and otherwise the user experience isn't affected much because the code is basically interpreted either
>>> way.
>>> Haskell is primarily a compiled language. The total download size probably won't be significantly larger from downloading all modules. The cost
>>> of recompiling/dynamically loading plugins will be expensive (relative to the rest of the user time), and payed with every execution. Plus it's
>>> additional work for the developer to set up.
>>
>> What you say makes a lot of sense in terms of optimization. But, what
>> about extensibility? Take for example the Pandoc package, which would be
>> similar in design of what I'm trying to do. Say I want to add a
>> converter to some mark-up format not supported by Pandoc, and that
>> Pandoc team doesn't agree to merge my work in its repo or simply I don't
>> have the time to wait until it happens. In this sense, it would be nice
>> that Pandoc supported dynamically loading of extra plugins on demand.
>>
>> Marc Busqué
>> http://waiting-for-dev.github.io/about/
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180724/de29dc54/attachment.html>
More information about the Haskell-Cafe
mailing list