"Since this is a two-way, line-based text protocol, I think you’re missing something by not including a direct stdin/stdout interface. It should probably be the default for the arity-0 toplevel predicate unless you’ve specified otherwise in code, so you can use it as above. Requiring socket/network access to be able to use this makes for a significantly more difficult integration, depending on the language, but I can’t think of a single general-purpose language that doesn’t have a simple, builtin way to access standard input and output."
Initial thoughts:
It mostly doesn't complicate the interface since the library doesn't have to use it (unless the library supports both TCP and command line, which I suspect many might feel they have to...).
It can be added after V1 since it isn't a breaking change. Really it's just a way that might make it even easier for languages to integrate if they just choose that option.
From the SWI Prolog forum:
"Since this is a two-way, line-based text protocol, I think you’re missing something by not including a direct stdin/stdout interface. It should probably be the default for the arity-0 toplevel predicate unless you’ve specified otherwise in code, so you can use it as above. Requiring socket/network access to be able to use this makes for a significantly more difficult integration, depending on the language, but I can’t think of a single general-purpose language that doesn’t have a simple, builtin way to access standard input and output."
Initial thoughts: