克服复杂性,Eckel对Java和Python以及块理论的研究

克服复杂性,Eckel对Java和Python以及块理论的研究,java,python,complexity-theory,Java,Python,Complexity Theory,1998年,在介绍Bruce Eckel的Java思想时,他说: 编程就是管理 复杂性:问题的复杂性 你想解决的问题,被强加在 所使用机器的复杂性 问题解决了。因此 复杂性,我们的大多数编程 项目失败。然而,在所有的 我是其中的编程语言 我知道,他们都没有全力以赴 并决定他们的主要设计 我们的目标是征服世界 发展与创新的复杂性 维护程序 在第二版和以后的版本中,他添加了以下脚注(大约2003年): 我在第二版中回顾了这一点:我相信Python 语言最接近于行动 正是这样。见www.Python.

1998年,在介绍Bruce Eckel的Java思想时,他说:

编程就是管理 复杂性:问题的复杂性 你想解决的问题,被强加在 所使用机器的复杂性 问题解决了。因此 复杂性,我们的大多数编程 项目失败。然而,在所有的 我是其中的编程语言 我知道,他们都没有全力以赴 并决定他们的主要设计 我们的目标是征服世界 发展与创新的复杂性 维护程序

在第二版和以后的版本中,他添加了以下脚注(大约2003年):

我在第二版中回顾了这一点:我相信Python 语言最接近于行动 正是这样。见www.Python.org

我是一个java语言的初学者,在Delphi(Pascal)、C、C++和Python中有背景。 以下是我想知道的:

当他把Python称为“更好”来克服复杂性时,他是怎么想的呢?他是不是和其他两个使用过的人在追踪?p>
  • 你如何看待征服复杂性?Python的较短和更简洁的语法是克服复杂性的关键方法(因此,例如Jython可能是java的大库的一个很好的桥梁,Python的简洁语法),或者是java的强类型化思想,它继承了C++的思想,它从Simula继承了这个想法,我想是,征服复杂性的关键?或者它是Rapid应用程序设计器(想想Delphi,或者Java,优秀的免费NetBeans窗口/表单设计器工具)还是组件,或者Bean,或者J2EE?对你来说,什么能征服一切

  • 这已经是主观的了。[编辑]

    文章中的一段关键引语:

    布鲁斯·埃克尔:他们说你可以坚持下去 七加或减两块 你头脑中的信息。我不能 记住如何在Java中打开文件。 我已经写了关于它的章节。我做完了 这已经有很多次了,但是太多了 步骤。当我真的分析它的时候, 我意识到这些只是愚蠢的设计 他们做出的决定。即使他们 坚持使用装饰器 在java.io中,它们应该具有 有一个方便的构造函数 简单地打开文件。因为我们开 所有的文件,但没有人可以 记住怎么做。太多了 要记住的信息

    所以,语块理论。根据组块理论,Python杀死了所有其他人。我会答应他的。但你使用的标准是什么?如果你愿意的话,我想特别邀请大家支持Java,反对Bruce


    [请不要投票重新开放,这个主题本身就是煽动性的,我的失言让它变得更具煽动性。我同意主持人的观点。]

    对我来说,从Java切换到Python是一个巨大的胜利。我可以更快地编写代码,使用相同或更少的bug,并且更容易地修改代码。代码的可读性也要高得多,所以当我在几个月后回到代码中时,我可以更快地了解它在做什么(当我做不到的时候,重写它不会有太多麻烦)

    Java是强类型的,需要大量的前期工作来设计和维护正确的类型定义。如果您将一个变量声明为
    int
    ,然后决定它应该是
    float
    ,则需要在整个程序中更改该类型。您是否将该值存储在数组中?您还需要更改该类型声明。决定重构几个类以共享一个公共接口?您必须在整个代码库中更改函数定义才能处理它。如果你有一个特别复杂的设计,你会发现你自己必须处理很多这些问题

    Python在语言中也有很多支持,可以改变某些事情的工作方式。例如,Python装饰程序可以抽象出大量复杂的代码(处理缓存或注册函数),从而降低代码维护。复杂的IDE可以帮助维护您的代码,但最好从不太复杂的语言开始

    然而,在我所知道的所有编程语言中,没有一种语言能够全力以赴,并决定他们的主要设计目标是克服开发和维护程序的复杂性

    几乎每一种语言都是建立在征服复杂性的基础上。没有其他目标值得追求。程序集,C++,java,python,以及几乎所有其他现存的语言都是基于编程更容易。 python如何善于克服复杂性

    Python无疑拥有一些IMHO语言中最直观的语法。它使用块缩进解决了很多问题,而且大部分都是这样
    M=[x代表S中的x,如果x%2==0]
    是一个很好的例子,请参阅任何python书籍了解更多信息

    Python的更短更简洁的语法是克服复杂性的关键方法吗

    我相信python的简单语法是克服复杂性的好方法。然而,这是我能对你的另一个问题给出的唯一明确答案:

    你如何看待征服复杂性

    你所问的问题是语言理论的核心,它包含了可能会持续到时间尽头的战斗。这就是一场这样的辩论。语言理论中还有很多其他的发展,比如过程语言、面向对象语言、函数语言和面向方面编程,它们试图简化编程。查看一种语言的最新(或任何)版本,了解一些“克服复杂性”的示例。永远不会有一个明确的答案,对每种方法的全面讨论都需要几个月的时间来阅读,到你完成时可能会完全改变D

    布鲁斯·埃克尔:他们说你可以坚持下去 七加或减两块 你头脑中的信息。我不能
    new FileInputStream(filename);
    
    print "hello World!"
    
    class HelloWorld {
      static public void main( String args[] ) {
        System.out.println( "Hello World!" );
      }
    }
    
    with open('myfile.csv') as f:
        print f.read().split(',')