起初,在计算机资源还很缺乏的时候,接近于普通机器似的运转还是可取的,但是当硬件资源变得更容易使用,并且开发时间变得重要,更高水平的语言必须出现。开发从C到C++,然后再到Java和C#,伴随着这种趋势,服务器的编制程序被类似PHP、Python、Per1和Ruby的语言所控。Java和C#在某些被称为“真正的程序设计语言”和“脚本语言”中隐退。C#可以更多地被当做是微软的代用品,适用于多种环境的Java与C#比较变得微不足道了。
自从Java许诺带着独立的平台出现以来,它很快就流行开来。它既不是脚本语言也不是和在JVM上运行的字节代码,所以JRE就像其他脚本语言需要一种引擎来翻译一样。Java当然就改变了我们看待真正的程序设计语言的方式。Java逐年变快,并在电脑系统上给予C++最大的挑战,Java在字节代码的独立平台给人们对于脚本语言所拥有的自由。Java在浏览器、服务器和嵌入式系统上都有解决方案。
但是像每个优秀技术一样,Java当然也有一些自身的问题,当它涉及到浏览器时就不够好了。虽然Applets和Java web Start是基于调配网络应用系统而设计的一个好技术,但是不知为什么它运转起来并不尽如人意。Applets很快成为一项过时的技术。但是Java的不幸并没因此而结束,开发者还要面临Java的图形界面库的问题。不管Sun在Java Toolkit的事情上多么努力。开发者们看上去绝不满足于此。虽然Java swing Toolkit的大部分组件运转完美,建立一个漂亮的开发前台对于Java开发者还是个有些遥远的梦想。
由于互联网的激增,一系列关于服务器和客户端的脚本语言伴随着网络应用系统开始开始受到欢迎。这些脚本语言开始掌控整个世界。虽然服务器脚本提供flavors PHP、Python、rarl、ASP等等,但是客户端仍明显被JavaScript所控制。当JavaScript涉及到开发网络应用系统时AJAX的流行已将其推至最前沿。因为除Flash、Action、Script、HTML5等少数几个技术之外的技术不能传递独立执行系统的客户端,网络应用系统的潜能被迅速开发,以至于只有Flash、action、script、HTML5等被一些网站开发小组认为是仅能存活于客户端的几个技术,这些开发小组急需改变。所以能够创造无痕接口并能在整个过程中和数据库保持在服务器端的云计算刚好证实了这些。
云计算无疑有极大的好处,但是把它作为未来计算的最终办法看上去却不是明智之举。如果我们说云计算是下一代计算,那么就表明我们的计算步骤将会分裂成客户端的和服务器端两类。我们正期待着一切都更加有效率,服务器和浏览器的processing时间的总和比客户端所有processing的时间都短,现在这种假设在逻辑上是不太正确的。
此外,我们会保证服务器端的脚本语言绝不会比最快的客户端的快。因此我们就不会摒弃完善Java、drain等语言的努力。当然,Java会以更多的形式存在,但嵌入浏览器,几乎每一个从文字处理应用都会减慢我们的体验,我们就会受到互联网带宽、脚本语言以及浏览器的制约。如果我们真的缺乏技术使效率变慢,这种趋势是合理的。显然,作为一个应用程序运行时,如一群人在社交网站,论坛等,引擎的浏览器是有利的应用程序处理的服务器上的信息共享和修改,但每一个嵌入到浏览器中应用程序的存储数据都会饱和。因为有些人能够获得巨大的带宽,我们不能剥夺其他人的真正的计算体验,使每一个应用程序的硬件资源和计算能力都达到用户良好的体验和自己的要求。但是只是因为我们的语言的API和工具包没有独立开发平台功能丰富的GUI阻碍了快速计算,这似乎就没有道理了。于是我们要发展一个有引擎的浏览器,能运行所有的应用程序。但不同于现有的引擎,这会是一个GUI和执行基本的计算,剩下的工作将委托给其他服务器引擎,它不同于真正的引擎,只有为JRE做好各项工作的能力。
只要继续发展Java,容易开发、平台独立和高性能的Java API恰恰有创造各种桌面应用的潜力。不仅仅是桌面应用程序可以用来创建胖客户端应用程序的执行,也可以按客户要求聊天交换数据计算,多人游戏等执行大部分客户端和服务器一样。
没有Java的日子?我看还是算了吧!