Eric S Raymond says that one nice thing about Python is that "it comes with batteries included": It has good support out of the box for interfacing to a variety of net protocols.
Muq has a nice core engine, but it does not yet have this kind of connectivity support. An engine which cannot be hooked up to the load is pretty useless in practice, however beautiful its internals may be in principle, so I think providing such interfaces is a very high practical priority for Muq.
Particularly important:
Beyond that, the sky is the limit: LDAP, ICQ, SNMP, whatever -- the more, the merrier! CORBA support would be expecially nice. Or how about implementing support for the server end of the AlphaWorlds, Onlive! Worlds, Quake or Ultima Online protocols, say, so we can use the free clients available for them?
None of this requires knowledge or hacking of the Muq server internals: If someone else could do some of this stuff, it would free me up to spend more time improving the core server functionality.
For a first cut implementation, at least, I'd leverage
(say) existing Perl implementations of these protocols,
rather than re-inventing the wheel: Simple Perl scripts
can be run from Muq via ]rootPopenSocket
, with
suitable MUF wrapper code making it all transparent
to the Muq application programmer. When (and if!) the
separate Perl processes become efficiency issues, we
can consider doing native MUF implementations.
Or See section Perl Compiler.
Similar comments apply to such things as interfacing
Muq to standard engines such as gdbm
: An
external program linked to the relevant libraries,
started up via ]rootPopenSocket
and presented
to the Muq application programmer via suitable
wrappers can make another facet of the external
world available to the Muq application programmer
(and end-user).
How about a bridge allowing Muq to be used as a
GIMP script language? This could allow
(say) smart websites written in Muq to use the
full power of GIMP to generate on-the-fly
graphics. The existing Perl bridge to gimp
could be re-used, at least for the first try.
Go to the first, previous, next, last section, table of contents.