One thing about non-imperative languages (functional, logic, etc.) is that they tend to encourage a much higher level of abstraction that's useful for dealing with complexity, but difficult for most novices to deal with. In particular, young children have relative trouble with abstract reasoning.
If your standard library makes pervasive use of higher order functions, and you haven't yet wrapped your head around elementary algebra, you're going to have a bad time.
I'm having a hard time thinking of an existing functional or logic programming language that requires a minimum of abstract thinking. You can use many languages in a functional style, but if e.g. you're using Python with a low level of abstraction, then you're likely using it as an imperative language.
Re:Learning to program is getting harder
by u801e on Saturday February 17, 2018 @12:20AM
(#16399198)
> The downside of growing up on Commodores was their default imperative and procedural programming environment.
That could be an upside if you wanted to learn assembly since BASIC really wasn't that far removed from it in terms of what you could do and how you did it.
Re:Learning to program is getting harder
by matchagaucho on Saturday February 17, 2018 @01:16AM
(#16399348)
Good point. The commands were really hands-on with memory and CPU.
My introductions to object-oriented and functional programming came much later in life, and I can't help but wonder how many bad coding habits I had to "unlearn" as a result of my Commodore foundation.