Hello, Carlo Zancanaro <[email protected]> skribis:
> I agree that this is a problem. Guix essentially ends up inheriting all > of the complexity of the underlying services. Rather than building an > abstraction, in many cases we're just writing a translation of a > configuration format into Scheme records. I don't understand why. To me, the pros and cons are similar to those of writing Scheme bindings to a C library: you get to reuse existing code, but you have a “convenient” interface that blends into your code, at the expense of extra work (which can be more or less automated, depending on the situation). > I don't think the benefit is worth the cost in general. However, I do > think there is an important exception: service extension. Yes, that and general convenience. For instance, I find it nice to be able to factorize bits of nginx or ‘home-openssh-configuration’ using the familiar Scheme mechanisms: procedures, variables, etc. I also like the consistency and discoverability that Maxim mentioned. It’s nice as a user to know that you don’t need to learn any configuration file format, that Scheme is enough for everything. In my ideal vision of making system configuration approachable to all, not just experts, I think it even plays a crucial role. Now, I agree that the cost for an initial service implementation is high. For the big services like Dovecot, the author had to write a specific tool to create those “bindings”. Keeping it up-to-date though appears to be quite cheap, from what I understand. Overall I lean on “it’s worth it”, but I understand that the initial cost for service writers can be intimidating. Ludo’.
