XPCE apps run on my machine (as they do for many others, as has been the case for longer than I know). Yet, I cannot find any 3rd party apps built with XPCE, no 3rd party tutorials, books. Searching for XPCE in the packs shows nothing.
I suspect this is related to the fact that existing documentation and (lack of) examples make it very challenging to get started. This is not a technical problem.
Also, I suspect (if they are like me) many users of the apps built using XPCE, are using them for the (excellent) features that have nothing to do with XCPE in particular (syntax/error highlighting, code navigation, code formatting, tracing, profiling, etc).
What I’ve seen in new languages, is that the core distribution includes an LSP and/or TreeSitter, formatter, etc. And developers wire these into the IDEs/editors/tools of their choosing.
So I think there are a few things to clear up:
- who wants XPCE to have a future beyond bare maintenance-mode.
- who wants the functionality currently in the XPCE apps, but doesn’t need it IN an XPCE app?
- who wants to build UI’s in Prolog in a way that doesn’t (necessarily) have anything to do with XPCE.
I want 2 and 3.
In that interest, I’ve recently switched from PceEmacs to Helix with GitHub - jamesnvc/lsp_server: Language Server Protocol server for SWI-Prolog. And I see there are discussions essentially about point 2: Programmatic interface to library(help)?
So a low-effort strategy might be:
- refactor existing code that supports GUI tooling into a public API (with clear documentation/examples to get started with)
- create bindings to an established GUI library with semantics that are low-friction with Prolog (e.g. GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies which has been discussed)
- existing XPCE apps remain in maintenance mode.
Note: I say all the above with deep reverence, gratitude, and appreciation for the vast amount work that has gone into SWI-Prolog and its ecosystem. And folly accepting that I might be the only person who feels this way about any of the above.