[Haskell-cafe] Design of an extensible system

Marc Busqué marc at lamarciana.com
Tue Jul 24 06:07:38 UTC 2018

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é

More information about the Haskell-Cafe mailing list