代码之家  ›  专栏  ›  技术社区  ›  13ren

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

  •  2
  • 13ren  · 技术社区  · 17 年前

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

    我认为函数式/声明式编程(haskell、scheme、lisp等)比命令式编程更强大、更抽象,因此本质上更难学习。我想知道是否有任何实际的证据,不管是这样还是那样。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Norman Ramsey    17 年前

    Matthias Felleisen and his colleagues 收集了一些非常令人信服的证据,证明最容易学习的语言是 为初学者设计 并且有 针对初级程序员的工具支持 . 他们实际上已经设计并实现了 这样的语言,每个都是下一个的子集,以及方案的所有子集。他们有一些非常有说服力的论文,教育学,和 software . 此外,他们的研究成果在德国得到了复制,最新的FDPE研讨会上发表了令人印象深刻的研究成果,以及许多优秀但尚未发表的高中研究成果。

    这并不是说这个方案有利于学习,而是说初级程序员需要专门为他们设计的工具和语言(他们称之为“语言级别”)。我相信这一语言层面的概念可以应用于其他语言,包括C语言(我在入门级教授),但不幸的是,Felleisen等人没有发表一套原则或指导方针,允许某人使用不同的语言来复制他们的工作。

    所以如果是 证据 您正在寻找的是,唯一可用的数据将功能语言的使用与语言级别的使用以及自定义设计的编程环境混为一谈。你得自己判断哪些因素最重要。我知道,如果C语言水平和“学生的编程环境”可用,我会在心跳中选择它,比如说,完整方案和bigloo方案编译器。

        2
  •  2
  •   Community Mohan Dere    9 年前

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

    Are there statistical studies that indicates that Python is "more productive"?

        3
  •  1
  •   Bill K    17 年前

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

    无论是函数语言还是OO语言,都不是特别容易理解的——完全可以直接理解(虽然两者都可以简化为非常简单的东西,但事实上,其他所有语法和功能都存在着一个问题——它使人们想要理解它,当查看更复杂的代码等。)

    我不想这么说,但最好的语言可能是旧的BASIC和帕斯卡语言。很少有技巧——见鬼,一开始基本功能都没有!

    这使您能够集中精力理解变量和程序流,然后再被对象、指针和不变性之类的东西击中。

    这就是说,如果你的问题不只是理论上的,你可能会研究Bluej。它是专门用于培训的Java IDE。它不需要最困难的Java语法,比如“公共静态空隙主”()和“Soal.Out.Primes”——它们是不必要的,因为它处理对象的独特方式。它还向学生介绍了UML,并提供了对对象的即时理解。