知识大全 Java能够成为完美的技术平台吗

Posted

篇首语:道德可以弥补能力的不足,能力却难以掩盖道德的缺陷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java能够成为完美的技术平台吗相关的知识,希望对你有一定的参考价值。

Java能够成为完美的技术平台吗?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   前言  象许多在不断发展的平台/语言一样 Java让很多程序员又爱又恨 当然 当然这不包括那些狂热的Java爱好者 对于他们来说Java比 Net LAMP或任何其他语言或平台都要好 但是 我们还是不得不面对复杂的Swing 庞大的EJB规范等对硬件的额外要求以及J ME的变化多端的实现方式等等等等 抛开以上这些Java的弱点 我们可以说Java是一个完美的技术平台 那么Java到底有没有成为一个完美的技术平台的潜力呢?这篇文章将从两个方面讨论这一主题 开始 我会详细的告诉你什么是完美的技术平台以及为什么Java平台能够成为完美的技术平台 之后我会偏重于具体的解决方案 如何通过设计的优化避免Java平台的弱点      基础  首先 你为什么会关心Java是否是一个完美的沉下平台?它现在不是也很好吗?不 不是的 我相信在文章结束的时候 我将向你展示一些列Java中可修正的缺点 解决这些缺点会加快Java平台的发展 提高整个开发平台的性能 简而言之 它将使Java不管在工业还是商业领域都成为一个实际上的技术标准 成为程序员的一个超级语言 什么才是完美的技术平台?在我作进一步说明之前 我应该先定义一下我认为的完美的技术标准是什么 简单的讲 我认为完美的技术平台应该是这样一个软件系统 它可以让新手或高级开发人员都能使用 能够编写简单的程序也可以编写高级的应用 它应该能够运行在所有的硬件平台或操作系统平台上 并且应该是本地化的操作或接近本地化的操作      定义这篇文章讨论的范围  类似这篇文章的主题 事先定义一个范围是很重要的 首先 我们不讨论任何非Java的技术平台 你也许会认为这有些太狭隘了 我不这么想 这篇文章是要单独的讨论Java平台的各个方面 并不是要和其他的语言平台进行比较 我的兴趣在于那些为了完善Java平台提出的具有建设性意义的观点 如果可能 我希望其他技术平台的支持者能够发表类似的文章提出他们认为最完美的技术平台 另外 我在这里还假设Java语言已经是各种技术平台中最佳程序语言 并且我也不会讨论最新的Java 平台J SE 尽管在J SE 中我可以感觉到其中的一些变化比如标有 keeping up with the Joneses 的是把矛头指向了C#语言 一个语言的稳定与否至少需要将近 年的不断验证才能证明它的最初设计是否是健壮的 参数化集合的实用行在JDK 中是显而易见的 其中的一些新特性比如autoboxing enumerations和 static imports引起了开发人员的广泛关注     Java继承了来自C和C++的健壮行 它一开始就被设计为一个面向对象的语言 我认为这是一个成为核心语言和优秀平台的关键所在 当然这并不算什么先进的思想因为从最早的Eiffel到Smalltalk都是面向对象的语言 那么Java和他们之间有什么根本的不同吗?Java和那些比如功能性编程语言象LISP Haskell或象SQL这样的可以通过语义来执行的语言又有什么不同吗?因为我们学习这些语言只需要一本手册就可以了 但别高兴的太早 如果一个市场上主要的厂商比如SUN HP或微软想要把这些语言中的一种拿出来 并围绕它开发他们的下一代技术平台 你会发现这个语言的不会再进一步更新 我喜欢把Java作为一个平台来看待 实际上Java作为一种语言来说在Java平台中只是较少的一部分 也因此我会在下面介绍作为一个完美的技术平台的重要特征      什么才是完美的平台  比较起来 对于这个主题来说可以讲的很详细也可以讲的很简短概括 我选择了后者 对此有兴趣的读者可能会注意到有关这个主题的详细讨论很多词汇后面都会有一个 ility 作为结尾 也明白它是ility矩阵(matrix) 在我看来作为一个完美的技术平台应该具备这些条件 便于开发 而且提供多路访问(详见下面的讨论)     稳定性 这体现它应该便于客户平台的部署 还应该是本地化模式的部署操作   必须具备可靠的性能和可测试性   基于开放的标准      Java符合这些标准吗?  到现在我已经定义了一系列符合完美技术平台的标准和特征 让我们看看Java的成长过程是否符合上述的特征     我不得不痛苦的承认 开发Java程序并不容易 相对简单的项目还好 但如果项目不断增长以至于变得越来越复杂就会不断出现越来越多的问题 比如J EE应用就是这样 因此在项目的开发中我程序员需要花更多的时间来跟踪底层的问题 比如类引导(classloading)问题而不是解决实际的业务逻辑问题 还有令很多程序院头疼的EJB(查看我过去的文章To EJB Or Not To EJB?)通常情况下他们都是在清除一系列的警告信息 EJB也许想把负责的问题简单花 但是它并没有更贴近于现实中的持久化问题或业务逻辑的解决方案 这还与Java开发工具的不足有关 坦率的说 微软的Visual Studio在这方面比Java作的要好 Java需要学习     我曾经提出过一个多层次访问的想法 它允许开发人员或者用户可以工作在Java中的不同层次 比如核心开发人员可能使用emacs/vi的方式来以命令行调试器的方式开发和部署以Java为基础的系统 而业务分析师或最终用户应该能通过使用WYSIWYG这样的工具来访问和修改这个系统 Java在这两方面的开发并不是很容易 当然applet和JavaWeb Start技术在这方面提供了一定的帮助 当这两种技术也有自己的不足 运行他们必须在客户端安装配置JRE Java平台是想当稳定的 我已经不记得上一次应为Java本身的bug而给我带来麻烦是什么时候了 所以如果要作一个企业级应用的话我宁愿选择J EE而不是 Net Java在服务器端的应用是足够稳定和健壮的 Swing客户端的应用表现也不错但在执行速度方面比起本地的应用要差一些 由于对资源限制的原因比如移动电话(或智能终端) 在这里使用Java而不是用本地化的开发工具从实用性角度来说就显得有些奢侈了 附加额外的MIDP比起直接调用本地的应用造成了运行时的性能损失     很明显 Java有来自业界的主要软件厂商的广泛支持(除了微软) 比如IBM HP Oracle已经把他们自己的技术整合到了Java平台上 这对关心Java的人来说是个好消息 还有更多的组织和团体化大量的精力不断的晚上Java 他们希望看到Java在移动设备 PC 服务器等各个领域不断的成长 进步     优点   Java的优势在哪里?  平台支持 J SDK已经可以运行在任何的操作系统和硬件平台上 从金融机构到娱乐设施 从科学研究到家用电脑都可以使用Java Java语言规范和Java运行时规范的明确区分允许研究人员可以通过运行一个编译器来产生程序语言的映射 而不必非要使用Java来编译二进制码――也就是说它可以运行在任何的虚拟机(VM)上 这一点在我后面要提到的Java战略的改变非常重要 Java是当今企业级计算和应用中相当成熟和稳定的平台 微软仍然在不断的改进他们的 Net 而且可能最后会象Java一样好或者比Java好要好(但这只局限在Windows平台上) 但现在还作不到 另外 还有另一个竞争激烈的领域 那就是移动设备 尽管在前面我们提到过Java在节省设备资源方面相对较差 但是不可否认在这个领域它也占据着领导地位 Java在学术界也获得了强有力的支持 如果你在大学学习你会发现Java已经成为多数科学研究和计算使用的首选语言 在大学中有越来越多的人在使用Java语言 越来越多的尖端学术研究完全使用Java语言 各个行业的公司都有很多的Java程序员在开发他们的项目      缺点  现在我们来看看Java的缺点   一个开发组织创建新的框架和组件库几乎总是在存在优点的同时也存在着不足 一个优秀的组件技术总是在不同的开发人员和组织间相互竞争和促进中成长起来的 但是在这一过程中 却使得用户(这里特指开发人员)非常困惑 尽管Sun一直在忙于应付 但是就到底是使用JDO还是EJB更好一直存在着争论 的确 我们必须确定把哪一个继续发展下去 现在我们能作的就是把这一个想法简单的提交到JCP组织 比如 如果你是一个J EE设计师 你能 %确定当前哪一种才是完美的解决方案吗?我不能 但我的观点是 注重实际的方案就是完美的方案   现在有一种观点认为Java过于复杂 有谁能完全了解Java从服务器到PDA各个方面的所有知识吗?作为一个博大精深的语言 Java在人们生活的不同领域都无处不在 这不可避免的带来了它的复杂性 但同时这也更值得开发人员在其平台上使用Java来开发不同的应用 Sun的一句明言就是 嘿 我们已经给了你一个非常棒的核心技术 现在你可以用它来创建任何开发工具或健壮的产品 其中非常活跃的Jini/JavaSpaces就是一个例子 Sun自己把这一技术作为一个学术研究的工具 它几乎没有什么技术缺陷 实际上 基于JavaSpaces的编程模型也许是最简单最强大的技术之一   Windows 家族集成了很多繁琐的分布式客户端平台 除非与Java捆绑否则Windows技术永远无法避免这些缺点 当然 随着 Net的崛起 Java 在客户端编程(thick client)方面将失去了很多优势   我不认为Sun为Java投入了足够的财力 这给Java带来了潜在的隐患 那么为什么Sun应该继续对Java平台投资呢?我更乐意看到Sun通过大量的财力扮演一个 善意的独裁者 它将通过与象BEA IBM HP等这样的公司而不是和开发人员或最终用户一起合作来指导Java的未来 我担心来自Sun对Java的动摇 Sun公司的健壮稳定的发展预示著Java的不断完善 如果Sun出了问题那么Java的发展和完善也将受到影响 下面的图示显示了影响Java技术平台的几个方面   图 显示了高层的理想化的Java技术平台 其中 由Sun及其合作伙伴控制的技术显示为橙色 其他不属于Sun的为绿色    >  Java有哪些缺点  无疑 我承认Java平台是有缺陷的 这必须指出 下面几节将详细讲述这些问题和战略及战术上的建议 cha138/Article/program/Java/Javascript/201311/25369

相关参考

知识大全 淘宝经过十年就成为世界第一购物平台。

淘宝经过十年就成为世界第一购物平台。马云大大v5霸气呗淘宝已经世界第一购物平台是真的吗。这不是真的,世界第一应该还是亚马逊吧淘宝会成为世界第一大的购物网站吗?这没什么的,中国人多物博,只要集中国家的资

知识大全 如何理解平台这个概念 如windows平台,linux平台,java平台

如何理解平台这个概念如windows平台,linux平台,java平台可以理解为环境即能使程序运行的软硬件环境如何将非JAVA平台变成JAVA平台?(手机的)那属于硬件问题,改不掉的,就像初期的mtk

知识大全 Java操作Excel完美解决方案

Java操作Excel完美解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  只要有表格就会

知识大全 多线程编程您不知道的5件事

   多线程编程向来不容易但很少有Java?开发人员能够忽视多线程编程和支持它的Java平台库我们临时学习线程在需要时向我们的工具箱添加新的技巧和技术以这种方式构建和运行

知识大全 跨平台编写Java程序注意事项

Java进阶:跨平台编写Java程序注意事项  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用

知识大全 在Java平台上进行多线程编程的缺陷

在Java平台上进行多线程编程的缺陷  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Java语言的并

知识大全 漫谈Java平台上的CRM系统

漫谈Java平台上的CRM系统  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概要  本文介绍了

知识大全 如何用Java平台访问开源云存储

如何用Java平台访问开源云存储?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽管云计算这一

让你成为祛斑高手

女人都是爱美的,希望自己的皮肤能够永远的像婴儿般那样完美。可现实总是很残酷的,随着年龄的成长总是有这样或那样的问题产生,就如让人头疼的黄褐斑,很多人为此烦透了心也花了很多的精力,到头来也没看到有所改善

知识大全 JAVA系统平台的手机可以刷机吗

JAVA系统平台的手机可以刷机吗?是不是可以提升系统的版本的?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看