@natecull @kara_dreamer I've never quite trusted the "object" as a programming entity, myself, but then my idea of a good programming language is Fortran.
@natecull @kara_dreamer Indeed. I am not the least bit convinced that the information-hiding that's often cited as a major feature of such languages as C++ and Java is really a feature worth having around.
My lingering mistrust of the object model is not terribly well-reasoned, perhaps. I somewhat dislike scattering "state" in little parcels around the code, rather than keeping it in one place.
@mona @kara_dreamer I agree. From a functional or declarative perspective, state *should* be centralised, and put into something like a transaction.
More and more I think of programming as 'capturing knowledge' more tgan describing proesses.. and forced encapsulation feels like a kind of deliberate ignorance.
I understand the intention behind "hiding the irrelevant details", but on a hostile net the details are no longer irrelevant.
@natecull @kara_dreamer Right! completely agreed. Having every little entity carry around a little bit of state is a nightmare when one wishes to preserve _all_ state.
@natecull @kara_dreamer @mona I have some clue about the general idea of Prolog, but no real familiarity with it. What are some of the misfeatures it has?
@duck57 @mona @kara_dreamer First, if you want to play with SWI Prolog (kinda the standard open-source implementation) there's a really neat webby version here: https://swish.swi-prolog.org/
I love that Prolog has a built-in database, so it's less of a 'language' and more of a 'place to put data and then rules about how to generate more data'.
but the 1970s-isms are a bit like FORTRAN:
* Terrible string handling
* Everything's one big top-level database
@kara_dreamer @mona @duck57 also
* It's supposedly declarative/functional but it's actually imperative. You can change the database at runtime (have to, to do serious work) but you can't, easily, represent the database as data itself. You sorta can, but you have to hack it up yourself
* It got higher-order functions kinda late in the day and weirdly. It's not lexically scoped but dynamically scoped, and HOFs pass the*name of the function not the function itself.
@duck57 @mona @kara_dreamer Prolog's spiritual successor is probably Kanren ( http://minikanren.org/) but that's less of a language and more a library, kinda heavily dependent on whatever language it's implemented in.
@mona @kara_dreamer For me it's Prolog, except a theoretical Prolog that doesn't have all the terrible 1970s misfeatures the actually-existing Prolog has.
But I think we need a lot more transparency and clarity in our programming languages.
Sealed mystery meat libraries that do 'something' to data - or to the entire state of the Internet behind your back - which you don't know and can't prove, give me the willies.
'Encapsulation' has bad side effects.