I find languages that don’t have methods cursed because you end up with a bunch of nouns (data structures) but you have to read the entire codebase, and have a very good understanding of the language’s core features, to understand what verbs (functions) you can use on them
I find languages that only have methods cursed because sometimes you want a verb that doesn’t operate on any particular noun, or you don’t want to go through the entire ceremony of defining a new type of class and then instantiating it just to run one function or to get the answer to one question. so you end up with code that is incredibly convoluted and boilerplate-y and obfuscates what you’re actually trying to express
I find Rust incredibly cursed because it found a way to have both functions and methods while keeping as many of the disadvantages of both as possible
@kasdeya
Object Oriented Programming is typically easier to wrap around for people but I would seriously encourage trying out languages that don't impose OOP and to understand data flows.
Also, in many languages, if you have methods, you can technically have functions... that's just how it goes. A method is, essentially, a kind of function or procedure which is attached to an object. That's all really.
I used to be a big fan of procedural and functional programming, and I still am. Structs are good enough to represent more complicated state in general.
C++ is also a markedly multi-paradigm language (or language with which you can write code in the forms of more than one paradigm, essentially the opposite of Java which is only OOP) and also allows to do both functions and methods.