`
sky840505
  • 浏览: 32328 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

为什么Java这个语言没有在基础应用领域发挥优势?

阅读更多
在做WEB服务器的时候,就一直在抱怨,我们的WEB服务器怎么就是那么慢,TPS总是上不去。一般谈及高性能的网络服务,总是不由自主的想到用C语言去开发服务应用,以确保性能。

难道Java语言的性能,就真的是远远不如C吗?

其实,大家都知道,JDK 5.0 6.0的绝对性能和C相比差距并不大,在很多评测里面,两者的差距不到一倍。而从语言特性上来说,Java语言,在抽象机制、安全机制、内存管理、并发控制和基础库上,和C语言相比,就像火枪和弓箭。

但是,就是这样,装备了大量堪称完美的高级特性的Java语言,却在基础应用领域内较少应用,明显落后于C语言。尤其在数据库、高性能网络服务、图形图形处理等领域。这其中的根本原因是什么??

我想到了一些原因:

1、人的问题。

能够用C语言写出优秀基础软件的人固然不多,能用Java写出来的人恐怕更少。Java有好几百万开发者,但是他们在干什么?大部分是去搞企业级开发、Web开发了,像这种bt下载网站 www.bt285.cn 很简单就可以实现了。但是有多少人真的理解Java的内存模型?有多少人能够熟练使用java.util.concurrent包中提供的那些工具?很多使用Java多年的人没有写过socket程序,不了解Java多线程的开销,不清楚如何进行性能诊断和调优,而这些在写基础软件的时候是必备的技能。大部分Java程序员在刚刚学会Java之后就转向Web开发,把主要精力花费在掌握一个又一个大型的、复杂的、具有厚厚的抽象层和华丽结构的frameworks上,不但对真实计算机体系结构不清楚,对于Java虚拟出来的那个计算环境也不清楚。因此,要把Java开发者编程转变成能够担负起下一代基础软件开发工作的尖兵,不但难度很大,而且必须花费足够的时间。

2、风格的问题。

这个问题我认为是最严重的。基础软件开发崇尚的是自由、直接、透明、简单、高效,反对繁琐华丽的设计,反对架床迭屋的层层抽象,反对复杂的结构和不必要的灵活性。而Java开发者多年来形成的设计风格与此格格不入,甚至可以说是对立的。Java在意识形态上是要面向企业应用软件的开发,所以特别强调架构,强调设计模式,强调标准,强调规规矩矩,强调高姿态,强调一种华贵的宫廷气质。在C中,你需要什么就做什么。而在Java中,你经常为了要干某件事,先new一个对象,然后以这个对象为参数new另一个对象,如此这般重复n遍,得到真正需要的对象,最后就是为了调用那个对象的一个方法。 这套繁琐的东西,对于基础软件开发来说,既不必要,也很难习惯。需要说明的是,这不是Java语言的问题,其实Java本身不必如此复杂、如此巴洛克。从语言本身来看,Java也可以是轻快直接的,也可是酣畅淋漓的。只不过十多年来几乎没有人这样用过,所以大家已经不知道,该怎么用Java写简洁程序?
读过此文之后,自己感触很深,一直以来的困惑终于有别人总结说出来,但是对于我来说,怎么面对这个问题,我应该好好想想。

来源:http://www.blogjava.net/zhongli/archive/2009/02/18/255245.html
分享到:
评论
1 楼 hk_cxy 2010-10-11  
虽不至于茅塞顿开,但也受益匪浅。

相关推荐

    java JMF2.1 -windows版下载

    Java术语,意为Java媒体框架(JMF)...就是 说,各种Java Media API发挥了Java平台的固有优势,将"编写一次,到处运行"的能力扩展到了图像、影像和数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发 成本。

    java并发编程:juc线程池

    在当今计算机软件开发领域,多核处理器的广泛应用使得并发编程成为开发者必备的技能之一。而了解 Java 并发编程以及其中的 JUC(java.util.concurrent)线程池,对于构建高性能、高可伸缩性的应用程序具有重要意义。...

    基于Java的人事管理系统设计与实现.doc

    Access 第一章 绪论 2 1.1信息化的发展 2 1.2课题的研究背景 2 1.3课题的研究目的 3 1.4系统开发关键技术与开发环境 3 1.4.1 JAVA语言简介 3 1.4.2 JAVA的优势与特点 4 1.5 MyEcpse的特点与开发环境 4 1.6运行环境...

    New of GWT Introduction--GWT开发快速入门

    这种情况下,我们就可以既充分利用Java语言的开发优势降低Ajax应用开发的难度,加快Ajax应用的开发速度,为Ajax的大规模应用创造可能,又可以充分发挥Ajax技术的优势,创建更加动态和交互性更好的Web应用程序,提升...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    基于Java的XML解析与反射设计模式.doc

    多元性,作为现下最流行的语言,应用之广泛,资源之充足都是现今流行语言中的佼 佼者,在行业和企业信息化、电子政务及办公自动化、嵌入式设备及消费类电子产品、 辅助教学等领域发挥着其多元性的优势。 xstream可以...

    基于java的音乐播放器课程设计报告.doc

    就是 说,各种Java Media API发挥了Java平台的固有优势,将"编写一次,到处运行"的能力扩展到了图像、影像和 数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发 成本。 在开发JMF 应用程序之前要完全理解...

    基于java的音乐播放器课程设计报告(1).doc

    就是 说,各种Java Media API发挥了Java平台的固有优势,将"编写一次,到处运行"的才能扩展到了图像、影像和 数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发 本钱。 在开发JMF 应用程序之前要完全理解...

    计算机毕业设计 大学计算机课程管理平台 Vue+SpringBoot+MySQL

    在操作系统、开发语言、服务器,数据库、连接技术方面,对应使用Window操作系统、Java语言、Tomcat服务器、MySql数据库以及MyBatis技术完成系统搭建,大学计算机课程管理平台基于B/S架构,采用前后端分离架构,用户...

    毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的大学计算机课程管理平台,内含完整源代码,数据库脚本

    在操作系统、开发语言、服务器,数据库、连接技术方面,对应使用Window操作系统、Java语言、Tomcat服务器、MySql数据库以及MyBatis技术完成系统搭建,大学计算机课程管理平台基于B/S架构,采用前后端分离架构,用户...

    在线考试系统文献综述

    为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来! 目前,网络应用软件运行的模式主要有二类:...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除此之外,用户需要亲临检测机构实地送检,在检测的每一个环节用户也无法有效的进行追踪,这些都制约着认证检测领域的进一步发展。鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别...

    如何学习ACM,看后受益匪浅

    新来的同学可能C的基础知识刚刚学完,还没有接触过C++,其实在赛场上使用纯C的选手还是大有人在的,它们主要是看重了纯C在效率上的优势,所以这部分同学如果时间有限,并不需要急着去学习新的语言,只要提高了自己在...

    PLSQLDeveloper下载

    PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。 目录 简介 背景 主要特性 编程基础知识程序结构 控制结构 变量声明与赋值 SQL基本命令 过程与函数 游标显示游标 ...

    网上购物系统

    这个是对购物篮的商品进行清空的处理,其实就是对全局变量ProductList赋空值(Session("ProductList") = "")。通过调用函数clean()来执行clear.asp. <p><B> </B></P> <p><B>4)      ...

Global site tag (gtag.js) - Google Analytics