Are there any studies as to whether it is easier to use functional / declarative or imperative programming as the first language?

It's not best to learn, but easiest to learn. Not easier for programmers, but for non-programmers (as the first language). Not opinions or jokes, but are there any studies?

I think that functional / declarative programming (Haskell, Scheme, Lisp, etc.) is more powerful and more abstract than imperative programming, and therefore it is more difficult to learn. I wonder if there is any factual evidence, anyway.

+2
programming-languages
Mar 09 '09 at 22:24
source share
3 answers

Matthias Felleisen and his colleagues have gathered very convincing evidence that the simplest language to learn is a language that is designed for novice programmers and has instrumental support aimed at novice programmers . They actually designed and implemented four such languages, each of which is a subset of the next and all subsets of the Scheme. They have very compelling articles, pedagogy and software . In addition, their results were reproduced in Germany, as shown by the impressive published results in the last FDPE workshop, as well as many good, but unpublished works in high schools.

The output message does not mean that the circuit is good for learning, but rather, for beginners, programmers need tools and languages โ€‹โ€‹(they call them "language levels") designed specifically for them. I believe that this concept at the language level can be applied to other languages, including C (which I teach at the introductory level), but, unfortunately, Felleisen et al. Did not publish a number of principles or guidelines that would allow someone replicate your work using another language.

So, if this is the proof you are looking for, the only data available allows you to use a functional language using language levels and a custom programming environment. You must decide for yourself which factors are most important. I know that if language levels and the โ€œstudent programming environmentโ€ were available for C, I would choose this in an instant, say, in the full Scheme and Bigloo Scheme compiler.

+3
Mar 10 '09 at 2:58
source share

No, it's too hard to come up with a meaningful study that controls all the variables. See also

Are there any statistical studies that show that Python is more productive?

+2
Mar 09 '09 at 22:30
source share

The best language for beginners will be one that has little understanding.

Neither the functional nor the OO languages โ€‹โ€‹are particularly light in this respect - they are completely straightforward (although both can lead to something quite simple, but the fact that all other syntaxes and functionality hangs there is actually a problem - it makes people want to understand this, they feel that they are missing something when they look at more complex code, etc.)

I hate to say this, but the best languages โ€‹โ€‹were probably the old Basic and Pascal. Very few tricks - hell, the basic one didn't even have features at first!

This allows you to focus on understanding variables and program flow before striking with things like objects, pointers, and immutability.

However, if your question were not just theoretical, you could take a look at BlueJ. This is a Java IDE designed exclusively for training. It does not require the most complicated java syntax, such as "public static void main ()" and "System.out.print". They are not needed due to the unique way of accessing objects. It also introduces students to UML and provides instant understanding of objects.

+1
Mar 09 '09 at 23:07
source share



All Articles