kind of over "functional programming" as an end instead of means toward an end. it's dogmatic and restrictive and doesn't actually mean very much.

in fact, most of the concepts people associate with FP aren't why I tend toward it-- immutability and strong type systems are nice, but they don't solve every problem or even most of them, and shit falls apart at module boundaries, esp wrt networking

I like languages based around an axiomatic framework-- those tend to solve most of the problems I have almost immediately. Understand the primitives? good, you effectively understand the language.

Haskell, Mercury, Scheme, Nix, and Rust are all very good at this, and all are from completely separate paradigms. An unpopular opinion: bash is also very nice in this regard.

Scala, on the other hand is god-awful and has no foundation at all. Haskell with the right extensions can get bad as well.

notice that none of said languages have OOP objects (although its easy to emulate similar patterns in each of them).

objects and actors (OOP) are a conspiracy to cover up axiomatic truth in programming languages for the sake of "ergonomics" where no such ergonomic problem actually exists.

fite me if you disagree

@afldcr i don't really have any basis for disagreeing, but i still want to fite u

i sort of think people get too hung up on whether something is "functional programming" or "oop" and it feels like people who feel like music and books must be labeled as belonging to one genre and they only like one or two genres and if they like something that was labeled as this other genre then either the label was wrong or they don't really like it.

i'm babbling fite me

@GinBaby would fite more but I think you're agreeing

@afldcr about ten years ago I realised OOP is amazingly ill-defined so I have to agree.

I love having an object that knows its own data type and can be queried at runtime but beyond that, it gets very weird trying to get objects implemented in different languages to communicate. There's no underlying theory; no OOP equivalent of lambda calculus or relational algebra you can point at and say 'here are the primitives'.

@afldcr one of my favourite OOP languages is Powershell but that's because you can do things to its objects that other languages don't have any mechanism for: Eg adding and removing fields at runtime. The most useful parts are the parts there's no theory for (or even a generally accepted body of OOP practice).
@afldcr This is one reason why I'm interested in Prolog-like logical term structure. A term is a super lightweight entity that has one of the more useful characteristics of an object: It has something like a type or class indicator (though no guarantee other than that). But just knowing that much is a huge step up from 'I have a random memory cell and I don't know its type'.
@natecull oh man unification semantics are really great to work with-- even more so than structural semantics.