Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Pro and Cons of external control via IPC vs. Extension Language
1 point by matbatt38 on Sept 9, 2021 | hide | past | favorite
Hey HN!

Recently, I'm thinking a lot about "practical software freedom" as branded by GNU Guile (aka. "customize and extend while running" + self documenting/live introspection).

I really understands how cool that can be when it's done well, and I see many successful project doing it this way (Guix, and Emacs obviously, but also outside of LISP world there is awesomewm and many others).

I've already tried integrating Guile in some hobby projects written in other languages, so I understand how it works, although I don't use it on a daily basis.

On the other hand, most of the time I'm using (and tweaking) programs that are extended and configured externally through IPC (e.g. sockets, d-bus), like i3 or NetworkManager. I'm more familiar with running helper programs (or a front-end) that I wrote in the language of my choice with a library, using d-bus discoverability features when available or after reading some documentation.

I often hear that this second way is "only almost as powerful as having a real programming langage built-in", but I'm not sure I understand why. I realised I don't really know the practical pro and cons of each way.

From where I stand, I see three main advantage of the IPC's way and none for Extension Language (sorry) : - It's language-agnostic, at the reasonable cost of writing libraries (vs the cost writing and maintaining e.g. a Lua->Scheme compiler like Guile's folks are doing) - It can be extended remotely through network - When using d-bus almost everything is standardised and runtime cost is never an issue (at least from what I've seen so far in 10+ years).

Obviously the reason why I'm seeing things like this is because I never had the opportunity to learn the advantages of the Guile's way, so... I'd like to learn some bits from you :)

I know there's a lot of enthusiasm here for LISP-related tech here, so if you feel like proving me wrong and explaining me why the extension language path is better, I'm all yours!

PS: I really don't want to start a flame war lisp vs not-lisp or d-bus vs not-d-bus, I'd like the conversation to stick mainly to IPC vs Extension Language. Thx!



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: