探讨程序语言
C是从系统语言演化而来的,主要目的是用来建立操作系统。C是系统编程语言。C和后继者C++直到最近才进入企业领域。Java和C++不同。移动运算(mobile computing)是Java最早的目标之一,而且很快就发展成适用于企业的因特网应用程序。你可以在四个地方很轻易地看到Sun的意图:
1 Java具有方便的特点,可以让应用编程更容易。Java具有垃圾收集以及内存管理功能,这使得应用程序开发者不需要担心这些问题。Java很重视字符串,所以程序员不需要担心移动字节(byte)的问题。如果是系统语言,可能会有比较多的控制。
2 Java的企业运算版本是以因特网主核心的。Java建立数个数据库,大大简化了企业计算,此成长过程中的语言总是以因特网为发展焦点。早期的API就已经可以做许多因特网的事,包括TCP/IP socket(网络通信协议)以及applet框架(将浏览器当成应用程序的平台)。
3 Java之父致力于简化,付出的代价是丧失低层的灵活性。例如,虽然C++可以接触到系统内的每一个byte,却因此造成C++应用族群必须和指针运算纠缠。
4 很早的时候,Java的目标是在移动应用程序,但是Sun看到可以颠覆微软的机会,Sun把握机会,将Java的焦点扩展,进入到因特网领域。
其他平台能像Java这样,这么快就长成一头大象。其他的平台能力一样,但是体积只有Java的5%,所以他们实在需要好好地进行架构。其实Java语言没有什么大问题,问题是在Java类库上,类库采用大而无用的设计。(我现在不太用Java了,我使用其他的语言,像Python、Ruby、ObjC.---<The Rise of Java>James Duncan Davidson
Sun开发者,James Duncan Davidson,建立了两个有史以来最重要的Java应用程序,Tomcat(用来展示servlet)和Ant(今日所有Java应用程很大部分是用Ant建立的)。
下一个成功的编程语言必须满足下面的主要的4个准则:
1 需要建立一个明显的社区。只有让采用者安心,他才会去使用此技术;
2 需要具备可移植性,Java虚拟机已经提高了后继语言的门槛;
3 需要提供经济上的动机,生产力、无线运算、数据搜索;
4 它需要展示技术优点;
Java是一个很棒的静态面向对象语言,具有可移植性及大量的API、产品、开放源码项目,也是一个设计良好的语言和虚拟机。
因特网的终极目标是:给所有的用户一个单一的应用平台(也就是浏览器),让他们可以在此平台上运行应用程序。
开始,这些应用程序以applet的形式存在。这其实是一个简单的想法:把JVM嵌入浏览器中,让用户下载Java applet bytecode,把applet当成另一种新的数据类型(MIME)。浏览器就只是把程序交给JVM执行。
applet失败后,服务器端的java出现了,Servlet让服务器端驱动的因特网应用程序开始被许多开发者采用。Servlet解决了许多CGI应用程序的问题,也让企业开发者有全新的方式让桌面可以运行应用程序。这种应用程序,在视觉上还是由浏览器所进行,但是逻辑上则是搬到服务器上进行的。
浏览器缺乏键盘驱动界面的生产力,但是比较方便学会使用。用户界面提供了一些细节上的加强,像通过链接(link)来进行向导,而不是通过菜单(menu).
但是Java的重心很快地完全移到服务器端了,直到今天还是如此。JavaServerPages(JSP继续了这样的演变。更多的模块的设计,加上了JSP标签库、端口组件(portlet)以及MVC框架,继续了这场演变。Java用户界面技术中,没有任何一者的成功可以和servlet在Web应用程序上的成功相提并论。
编程语言进化变量的原因在于它们并不是真正的技术,语言只是一种书写写法,而程序则是一种严格符号规则的描述,以书面的形式记录计算机如何解决你的问题;
另一种消耗硬件性能的方法是,在应用软件与硬件之间设置很多的软件层,每增加一个软件层,软件的运行速度就会慢一个数量级。但是,多余的软件层可以让编程灵活起来;