繁体   English   中英

是否有任何关于函数式/声明式或命令式编程是否更容易作为第一语言学习的研究?

[英]Are there any studies on whether functional/declarative or imperative programming is easier to learn as a first language?

不是最好学,但最容易学。 对于程序员来说不是最简单的,但对于非程序员(作为第一语言)来说。 不是意见或轶事,但有任何研究吗?

我认为函数式/声明式编程(Haskell、Scheme、Lisp 等)比命令式编程更强大、更抽象,因此本质上更难学习。 我想知道是否有任何实际证据,一种或另一种方式。

Matthias Felleisen 和他的同事收集了一些非常有说服力的证据,证明最容易学习的语言是为初级程序员设计的语言,并且具有针对初级程序员的工具支持 他们实际上已经设计并实现了四种这样的语言,每种语言都是下一种语言的子集,以及 Scheme 的所有子集。 他们有一些非常有说服力的论文、教学法和软件 此外,他们的结果在德国得到了复制,最新的 FDPE 研讨会上发表的令人印象深刻的结果以及在高中的许多优秀但未发表的作品都证明了这一点。

要点并不是说 Scheme 对学习有好处,而是初学者需要专为他们设计的工具和语言(他们称之为“语言级别”)。 我相信这个语言级别的概念可以应用于其他语言,包括 C(我在入门级别教授),但不幸的是 Felleisen 等人还没有发布一套原则或指南,允许某人使用不同的语言。

因此,如果您正在寻找证据,那么唯一可用的数据会将函数式语言的使用与语言级别的使用和定制设计的编程环境混为一谈。 您必须自己判断哪些因素最重要。 我知道,如果 C 可以使用语言级别和“学生的编程环境”,我会立即选择它,而不是完整的 Scheme 和 Bigloo Scheme 编译器。

不,很难想出一个有意义的研究来控制所有变量。 也可以看看

是否有统计研究表明 Python “生产力更高”?

对于初学者来说,最好的语言是要理解的东西最少的语言。

函数式和 OO 语言在这种方式上都不是特别容易——完全可以直接掌握(尽管两者都可以简化为非常简单的东西,但是所有其他语法和功能都存在的事实实际上是一个问题——它让人们想要理解它,当他们看到更复杂的代码时,他们觉得他们错过了一些东西,等等)

我不想这么说,但最好的语言可能是旧的 Basic 和 Pascal。 很少的技巧——哎呀,一开始basic甚至没有功能!

这使您可以在遇到对象、指针和不变性等内容之前专注于理解变量和程序流程。

也就是说,如果您的问题不仅仅是理论上的问题,您可能会研究 BlueJ。 这是专为训练而设计的 Java IDE。 它不需要最难的 java 语法,例如“public static void main()”和“System.out.print”——它们是不必要的,因为它处理对象的方式独特。 它还向学生介绍了 UML,并让他们立即了解对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM