我最初把Java当作“只是另一种编程语言”,从很多意义上讲,它就是这样。但随着时间的推移,我对它进行了更深入的研究,我开始发现这门语言的基本意图与我迄今为止所看到的其他语言不同。编程是关于管理复杂性的:你想解决的问题的复杂性,取决于解决问题的机器的复杂性。由于这种复杂性,我们的大多数编程项目都失败了。然而,在我所知道的所有编程语言中,几乎没有一种语言全力以赴,认为它们的主要设计目标是克服开发和维护程序的复杂性。1当然,许多语言设计决策都考虑到了复杂性,但在某些情况下,总有其他问题被认为是必须加入混合物的。不可避免的是,这些其他问题是导致程序员最终用这种语言“碰壁”的原因。例如,C++必须与C(允许C程序员轻松迁移)向后兼容,以及高效。这些都是非常有用的目标,并说明了C++的大部分成功,但是它们也暴露了一些复杂的东西,这使得一些项目无法完成(当然,你可以责怪程序员和管理人员,但是如果语言可以通过捕捉错误来帮助你,为什么不呢?)(VB)与BASIC绑定在一起,而BASIC并不是一种真正的可扩展语言,因此所有在VB上堆积的扩展都产生了一些真正无法维护的语法。Perl与AWK、SED、GRIP和其他Unix工具的向后兼容,它是用来取代的,因此经常被指责产生“只写代码”(即,在一段时间后,你不能读取它)。另一方面,C++、VB、Perl和其他语言,如SMALLATTS,他们的一些设计努力集中在复杂性问题,因此在解决某些类型的问题上是非常成功的。当我开始理解Java时,最让我印象深刻的是,在Sun设计目标的混合体中,似乎有一个降低程序员复杂性的目标。就像是说,“我们关心减少生成健壮代码的时间和难度。”在早期,这个目标导致代码运行速度不是很快(尽管随着时间的推移这已经得到了改进),但是它确实使开发时间减少了一半甚至更少C++程序。仅此结果就可以节省大量的时间和金钱,但Java并没有就此止步。它继续将许多已经变得重要的复杂任务(如多线程和网络编程)包装在语言特性或库中,这些特性或库有时可以使这些任务变得简单。最后,它解决了一些非常大的复杂性问题:跨平台程序、动态代码更改,甚至安全性,每一个都可以适应您的复杂性范围,从“障碍”到“显示阻止”。因此,尽管我们已经看到了性能问题,Java的前景是巨大的:它可以让我们更高效的程序员。在所有方面,创建程序、团队合作、构建与用户通信的用户界面、在不同类型的计算机上运行程序以及轻松编写通过Internet通信的程序Java都增加了人与人之间的通信带宽。我认为通信革命的结果可能无法从移动大量比特的影响中看出。我们将看到真正的革命,因为我们都将更容易地相互沟通:一对一,但也在群体和作为一个星球。
我听说,下一次革命是一种全球性思维的形成,这种思维是由足够多的人和足够多的相互联系所产生的。Java可能是,也可能不是引发这场革命的工具,但至少这种可能性让我觉得,通过尝试教授这门语言,我正在做一些有意义的事情。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !