从开发项目的类别角度看java平台基于B/S结构的系统,在这个方向上的竞争是激烈的,有专注于此的LAMP(Linux + Apache + Mysql + Php);也有刚刚兴起的Rails(Ruby Frameworks)甚至是号称快速开发的ASP.NET;当然了java在这个领域里的MVC框架数都数不完,比如Struts . Webwork等,然而即便是如此,选择java作为开发的理由也是不充分的,因为在这个梯队里java顶多排名最后。
基于C/S结构的系统,在这个方面java显然没有考虑周到,面对VB 、DELPHI、vc这些个如狼似虎的快速开发IDE,JAVA实在是显得异常的淡薄,即使你找到了一个可以匹敌这些个ide的工具,面对第三方的组件又会成为一大障碍,所以java在这个方面又一次的输了。
从java所强调的特性角度看java平台
java的重点是业务逻辑!(我以前也是如此坚信不移)可是谁有能够说别的语言不注重业务逻辑呢,业务逻辑只是一个抽象的概念,java只是依靠ejb提出了业务组件而已,其他的语言在实现业务逻辑的时候也可以包装成POJO的形式,看来这个观点也是失败的。
java强调的是跨平台的优势!这可以理解为初级的、商业的、忽悠人的词汇,面对众多动态语言如Python,在若干平台上的表现,java又如何来强调自己这方面的优势呢?失败
java支持分布式应用的项目!可笑的言论,分布式根本不是值得炫耀的资本,在java之前的c/s项目中何尝不是分布式的应用呢?失败
既然没有了这些个优势,我们看看java到底还剩下些什么?对了其实就是应用服务器!然而看过J2EE WITHOUT EJB的读者肯定知道Spring所希望达到的目的,也就是脱离应用服务器概念上的J2EE体系实现,既然在作者的眼里APPLICATION SERVER只不过是一个忽悠人的词汇,那么任何项目都选择java作为开发的依据显然就是自找苦吃,
那么什么情况下改选择java作为开发的平台呢?
<1> 如果你真的遇到了大型的系统开发任务,恭喜你,你终于可以看到分布式对象、集群的优势了。
<2> 客户是一个java的忠实fans或者是sun、ibm的金牌合作伙伴之类的,选择java是不得已的,但记住并不能证明java是最好的实现方式<3> 如果你只想关心业务逻辑的实现,对于事务、缓存、查找等服务的实现没有兴趣的话,倒是不妨考虑采用ejb的形式,当然前提是你不愿意在寻找合适的替代品的情况下。
<4> 如果项目迫切的寻找某种框架的支持,选择java就是对的,你有众多优秀的、免费的、可扩展的、天才的框架可以选择,更多的时候你是出于尴尬的境地,因为任何一个都让你心动、而这样的选择往往是最痛苦、和快乐的。
正确的选择<1>条件: 如果项目仅仅只是一个小型的网站系统选择: LAMP、Rails
<2>条件:项目规模中等并且项目的时间比较紧,项目可以架构在windows的系统之上,选择: .Net / Delphi
<3>条件:大型的系统,有支持分布式对象、集群的要求;或者SUN / IBM的金牌合作伙伴 ; 想要寻找某种优秀的框架来解决问题选择: java是不二的选择,可是我想问一下,在现实中你能遇到这样的项目吗?
所以,从实际的角度出发,我们面对的99%可能都是一些符合条件1,2的系统,而选择java实在是得不偿失的。最后以一段Code Complete中的话来作为结束语
每个程序员都有很多的工具,但并不存在任何一个能够适用于所有工作的工具,因地制宜的选择正确工具是成为能有效编程的程序员的关键。
原文地址:http://blog.sina.com.cn/s/blog_5c4e77210100cy7o.html
分享到:
相关推荐
- **特点**:采用JDK标准的RMI协议实现,传输参数和返回参数对象需实现Serializable接口,使用Java标准序列化机制,使用阻塞式短连接。 - **传输协议**:TCP - **序列化方式**:Java标准序列化 - **应用场景**:适用...
Java开发工具JRE 1.4是Java平台标准版(Java SE)的一个早期版本,它为开发者和用户提供了一个运行环境来执行Java应用程序。这个版本在Java的发展历程中扮演了重要的角色,因为它引入了一些新的特性和改进,使得Java...
这份规范是理解Java平台核心特性的基石,涵盖了从基本类型到复杂类结构,从内存管理到异常处理的全方位知识。 一、Java语言基础 Java 11的语法基础包括变量声明、数据类型(如基本类型与引用类型)、运算符、流程...
目前,最新的Java版本已经远超7.0,支持更多的特性和改进。 #### 二、Java平台分类详解 - **Java SE (Standard Edition)**: 主要用于桌面应用程序的开发。提供了标准的基础库和支持,适合于开发单机应用软件。 - *...
- Java的安全模型远超SmallTalk,后者虽然也是面向对象的先驱,但在安全性方面不如Java强大。 - **1.2.3 Java的网络支持** - Java原生支持HTTP、FTP、TCP/IP等网络协议,可以通过URL进行访问,这意味着Java程序...
标题中的“松下公司——北京奥运全面采用Panasonic P2 HD高清半导体存储卡系列广电转播设备”揭示了几个关键知识点,主要集中在高清视频技术、半导体存储设备以及在大型体育赛事中的应用。以下是对这些知识点的详细...
Java开发工具集1.1版本推出了基于供应商的新型灵活应用编程接口——Java密码体系结构(JCA),支持供应商之间的互操作性,并同时支持硬件和软件实现。 ##### 4.2 Java密码体系设计原则 Java密码体系的设计遵循以下...
2. **Kent Beck** - 作为极限编程(XP)的创始人和测试驱动开发(TDD)的倡导者,Beck的影响力远超Java领域。JUnit是他与Erich Gamma共同创建的单元测试框架,极大地促进了Java开发者对测试的重视。JUnit的普及推动...
Java模拟器是针对个人计算机(PC)设计的一种软件,它允许用户在没有真实硬件设备的情况下运行Java应用程序,尤其是那些原本为移动设备如Java ME(Java Micro Edition)平台设计的游戏和应用。PC版Java模拟器主要...
这个工具可以用来自动化上述过程,但其功能远超Java简单示例,包括处理重定向、cookies、登录等复杂情况,以及更高效的文件下载和存储策略。 总的来说,Java发送HTTP请求和处理响应涉及网络编程、HTTP协议理解、...
- **内存寻址**:32位系统最大可寻址内存通常为4GB,而64位系统理论上可以寻址的内存远超这个数值,对于需要大量内存的应用更为合适。 - **性能**:64位系统通常在处理大数据和多线程时表现更优,但对某些特定的32...
Java手机模拟器的核心技术是基于Java ME(Java Micro Edition)平台,这是一个专为资源有限的设备设计的Java版本。通过模拟Java虚拟机(JVM)和相关的硬件特性,如触摸屏、GPS、加速度计等,Java手机模拟器可以提供...
股权激励是一种重要的企业激励机制,尤其在高新技术企业中,它对于研发创新有着显著的影响。股权激励,即通过赋予企业管理层或关键员工一定比例的公司股权,以期激发他们的积极性,使其更加关注公司的长期发展,而非...
### Java面试中电商领域的常见问题解析 #### 一、多线程的应用场景及安全性 - **应用场景**: 在项目中虽然没有直接使用多线程,但许多现代技术内部封装了多线程功能,如MyBatis框架中的`sqlSession`、ActiveMQ、...
### JSON快速入门(Java版本) #### 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由Douglas Crockford于21世纪初提出,旨在提供一种更简洁、更易于处理的数据交换方式。相较于XML...
对于Java开发者来说,理解和实现后缀树是一项有价值的技能,因为它能够解决许多字符串处理问题,而效率远超传统的线性搜索方法。 总之,"java后缀树代码"涉及的是使用Java语言实现后缀树数据结构的过程。通过分析...
《Thinking in Java 4th》是编程领域内一部极具影响力的经典著作,由Bruce Eckel撰写,他是MindView公司的总裁,该书的第四版更是将Java编程的深度与广度推向了一个新的高度。这本书不仅深入浅出地介绍了Java语言的...
4. **云计算**:云服务提供商广泛采用Java构建后端服务,以利用其高可靠性和可伸缩性。 5. **游戏开发**:虽然Java在游戏开发领域的份额不如C++,但它仍然被用于一些大型游戏引擎的开发,如Unity的脚本语言Jython...