Fork me on GitHub
#off-topic
<
2020-12-09
>
sova-soars-the-sora19:12:57

Is "procedural" a fitting antonym when talking about "functional programming" ?

sova-soars-the-sora19:12:19

I guess my question is, what's the opposite of "functional?"

hiredman19:12:00

the real functional programming is the friends we've made along the way

18
sova-soars-the-sora19:12:29

that does not help me in my essay but i appreciate the thought immensely

sova-soars-the-sora19:12:09

google says the opposite of functional is impractical...

hiredman19:12:44

von Neumann style

nate19:12:49

hm, imperative is what I usually talk about

nate19:12:06

but you can be imperative in a functional language

nate19:12:28

another antonym is object oriented programming

phronmophobic19:12:33

I wouldn't say it has an "opposite", but there are many alternatives. examples: • OO • procedural • logic programming

👍 6
phronmophobic19:12:56

and you can mix and match to a degree

sova-soars-the-sora19:12:54

where does Assembly fit into that trichotomy?

borkdude19:12:24

When I tried to explain functional programming to a colleague lecturer once (traditionally the education was still big on OO) his reply was: but this is back to procedural programming. I gave up.

hiredman19:12:49

to quote the abstract of the linked paper "their primitive word-at-a-time style of programming inherited from their common ancestor—the von Neumann computer, their close coupling of semantics to state transitions"

hiredman19:12:57

which is basically describing assembly

sova-soars-the-sora19:12:11

Hmm... I want to explain that transforming collections is better than setting up a fickle environment and pulling levers...

phronmophobic19:12:21

it's not a trichotomy, it's a way of categorizing approaches that lie in a multi-dimensional space. approaches may overlap and there may be approaches that don't have common categorical names

sova-soars-the-sora19:12:01

That's very interesting. I agree with you @smith.adriane in that there are several slopes within which most language styles will live/overlap... I mean, pretty much all the code has those 3 in it to some degree...

sova-soars-the-sora19:12:40

But a register / drawer where you put stuff and manipulate it's drawer sequentially is different than transforming collections without caring where / what / which / is-there-a / drawer

sova-soars-the-sora19:12:02

So yeah, that distinction is a little trickier to peg succinctly

hiredman19:12:22

the phrase rich uses in a number of talks to cover oop and procedural is "place oriented programming"

👍 6
hiredman19:12:19

but those descriptors are sort of only good for "small" programs. programs on a single thread, maybe on a single machine. as the lambda calculus is a logic of names, process calculi are logics of places

😮 3
lambdalove 3