I wrote this 'project' (a portmanteau of PROLOG and Object) because
-
I was tired of writing boilerplate over and over in PROLOG for what were essentially objects. PROLOG overuses ordinals IMO and this violates the third relational manifesto.
-
Logtalk doesn't support qsave very well, which I generally make extensive use of (DON'T WRITE DEAD SYSTEMS! Seriously).
-
I was frustrated by XPCE's lack of decent tooling, as well as its object system not being sufficiently introspective, as are many other declarative object systems.
-
I wanted something lightweight + easy to understand for an expert user.
A basic metaobject protocol is provided with inheritance, good integration with PROLOG, and a simple dispatch shell. Memory is currently managed manually, but hopefully eventually I will add a garbage collector. There is no static inference or optimisation for now.
An example harness for example-driven development will be coming soon. An image is provided.
To install, please run swipl pack install .