`
javawebsoa
  • 浏览: 436039 次
社区版块
存档分类
最新评论

对Java的一点看法

 
阅读更多

这段时间没事的时候写写Java,当然,工作还是用C#,虽然在很多资深Java人士看来,还远远不够.但说实话,我对此不以为然.能解决问题的东西,其实与语言本身是没有多大关系的.我也一直想写一些编程要点学习系列的东西,但因为比较懒,一直都是只有想法,没有行动(后面应该会写微笑).下面是对Java的一点看法,也希望大家指正(这篇文章主要是写给那些想多了解几门语言,同时没有语言控的同仁):

1)Java 真正的优势不在于其技术和成本优势,而在于其开源和跨平台理念.
  从语言技术本身而言,Java跟C#比没有任何优势,毕竟C#(包括Dotnet体系)别人是后来者,而且深度借鉴了很多语言的长处。而对于一些框架性的东西,一些设计模式来说都是与语言无关的,你能做,别人也能做。C#虽然在语言上占有一定优势,但这并不等于在技术上就比Java好,因为事物往往是两面性的,长短也是相对的。因此在技术上,Java和C#的差异其实可以忽略不计。
  成本的比较其实是非常难的,但从天下没有免费的午餐来讲,Java并没有本质上的成本优势,因为让你盗版(微软的策略)和开源策略(低级的可以免费用,高级的或者商业的多要收费)其本质上有异曲同工之妙(大家可以思考一下),而Java的开发速度要慢些,人力成本相对较高,都会推高整个项目的成本。
  而Java的优势其实在于开源(不等于免费)和跨平台的理念,实际上真正能不能跨平台,需不需要垮平台,是不是真的都是免费的,其实都不是关键。关键是这种理念给人的一种预期,不要小看这种理念所带来的预期,作用大着呢。为什么呢?其实这就是人性,人其实是感性和理性的混合体,而且理性并不是第一感的,也就是说大部分人的感性多于理性。在这种情况下,理念的作用就非常大,因为理念给人的作用多是感性的。就拿跨平台来说,如果理性的分析一下,你会发现,除了少数应用,大多数(至少80%以上,Web应用就更不用说了)并不需要跨平台(何况就是跨平台,你其实还得安装一个虚拟机,虚拟机本身没法跨平台的);开源也是一样的道理,收费的就不讲了,因为收费的开源就是公开让你盗版。免费的开源看起来很美丽,也确实有利可图,但免费又好用的东西其实很少(这其实也是利益决定的),很多免费的东西都同时有收费的版本,免费的能用,但没有保障,而且功能一般都有限,你真正做商业应用,选择收费的版本的概率要大很多(至于为什么,大家可以思考)。这种策略其实就是一种利用人爱贪小便宜又怕事的心理。这不Oracle公司对JVM也开始采用这种策略。本质上来讲,免费是违背人性而又符合人性的(人性的贪婪),其实就是都希望别人免费,而希望自己的收费。但最终都是要付出的,有付出才有收获嘛。
  开源和免费同时带来了另外一个问题,就是Java体系的派系林立,导致各种框架,平台林立,各种名次概念泛滥,这无形中增加了学习成本和移植成本。说实话,Java之所以比C#难学,根本点就是在这里,基础的学习都不难,但你要搞定这些框架和平台,就比较麻烦,因为这些框架和平台本身并不是通用的(本质上,这些公司跟微软一样,都有自己的利益考虑),而且Java的框架和平台非常喜欢配置化,很多东西喜欢拐弯抹角,而且这种配置化往往跟框架和平台是密切相关的,这就对学习和使用增加了很多难度。在这里,也不是说配置化不好(配置化的好处也还是很多的),但凡事都要讲个度,因为一旦走向极端(完全配置化和零配置),我们就往往会陷入反28定律。

  当然,在这里我并不是说开源和免费不好,也不是批评Java体系,仅仅是就事论事,因为作为程序员,需要理性的看待这些东西。

2)编程语言就是一个工具
 编程语言就是一种工具,当然,多了解一些工具总不是坏事。用熟一门工具,再学另外一门工具也不是很难的事情。当然,学习语言不要纠结于语法本身,能写出系统,解决问题就行。

3)学习Java要避免纠缠于配置化细节,了解其本质后,不需要搞得太细,因为每个框架和平台都不相同,真正用的时候找个手册即可。当然,自己也可以学习别人用配置化来解决一些问题的思路。

PS:其实人性是复杂的,并不完全是贪婪和懒惰这么简单。  

PS:理念会变成你的感觉,多了就会变成潜意识,好听点是一种营销手段,说白点就是洗脑.乔布斯深谙此道,中国的360周也深谙此道....深谙此道的且有行动力的基本都会成功.政治上就更不用说了.

分享到:
评论

相关推荐

    JAVA 学习之路

    Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。 1. 思考一下 学习Java之前,先别急,静下心来好好想想: 1)你对学习Java是否有兴趣? 2)你是否能静下心来坚持不懈地学习? 嗯,这...

    java自学之路(一)

    我只想说说我对学好Java的一点看法,希望对初学者有所帮助。

    Java_ Evolutionary Dead End

    这一点也得到了其他开发者的共鸣,如史蒂夫·叶格尔(Steve Yegge)曾对此问题发表过自己的看法。 #### 泛型的引入及其影响 在文章中,埃克尔提到了Java泛型的引入,并引用了乔什·布洛赫(Josh Bloch)的观点。...

    java学习指南 完整版

    学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。... 在这里我只想补充一点看法,很多人学习Java是... 本书也是一本学习使用Java 2的很好的参考书,还可以作为一些疑难问题的速查手册

    个人对hibernate的看法,应该会对大家有一

    这一点在部分内容中有所体现,即当进行`save`或`update`操作时,Hibernate会在事务提交时自动生成相应的SQL语句执行数据库操作。这种机制极大地简化了开发过程,提高了代码的可读性和维护性。 ### 对象持久化 - **...

    java面试题目\J2ee面试题目\面试十大必考题.doc

    8. **相关产业的发展看法** 展示你对行业的了解,可以提到最新的趋势、挑战和机遇,体现你的关注和洞察力。 9. **期望待遇** 做好薪资调查,根据市场标准和自身价值设定合理范围。表达时应自信但不过于强硬,可以...

    IT技术者日语面试资料

    - 了解面试者是否有过UNIX系统的开发经验,并且对于IBM的ASSC有何看法或认识。 - 回答示例:“我没有UNIX系统的软件开发经验。至于IBM的ASSC,因为我之前没有接触过这个概念,所以不太清楚它的具体内容。” 6. **...

    应届生面经之恒生电子面经

    最后,作者也表达了对当前就业市场的看法,指出求职的过程充满竞争,不同的人会有不同的求职理念和方法,但保持学习和不断进步是通向成功的关键。 总结来说,对于应届生而言,面试不仅是技术能力的考察,更是个人...

    如何做一个让Leader满意的测试员

    另外,最重要的一点,既然这个项目经理再怎么不好,不要在同事之间谈论,同事之间不要谈论同事工作,为人的好坏,最多针对工作谈工作,以免引起你以后很多不必要的麻烦。 2. 和Leader讲话说话三思 和同事关系再好...

    JMS学习笔记精心总结

    通过阅读《有关JMS的一点看法》、《Apache Geronimo的JMS实现:ActiveMQ》等文章,我们可以深入理解JMS的使用场景、优缺点以及最佳实践。同时,《JAVA基础:什么是JMS》和《JMS简介》等资料可以帮助我们系统地了解...

    2022年关于计算机求职信四篇.docx

    例如,如果求职者精通JAVA的Struts框架,并且岗位要求包含这一技能,那么直接指出这一点将极大地增加雇主的信心。 个人成就的展示也是求职信中不可或缺的一环。如能提供一些量化的成果,如开发的手机游戏下载量突破...

    阿里巴巴面试资料

    ### 阿里巴巴面试资料知识点总结 #### JAVA开发篇 **1....- 考察应聘者的沟通能力和表达能力。 - 应包含个人基本信息、教育背景、工作...每一点都围绕着面试中可能涉及的关键技术和概念展开,帮助应聘者更好地准备面试。

    最新程序员面试自我介绍.pdf,这是一份不错的文件

    你需要对公司和工作环境进行一定程度的了解,并在这个基础上发表你个人的看法。同时,你应表达出你愿意为了公司的发展和团队的目标付出努力,目标成为一个不仅技术过硬,而且在业务理解方面也独当一面的复合型人才。...

    ArticleRevSys:一个发布和评价科学文章评论的网站

    3. **评论功能** - 用户可以发表对文章的看法,进行深入讨论。 4. **评论评价** - 评论系统应包含评分和反馈机制,以便其他用户参考。 5. **搜索与过滤** - 用户可以按关键词、作者、评分等条件搜索和筛选文章和评论...

    个人博客系统-仅供学习,参考

    评论功能是博客系统中的另一重要组成部分,允许访客对文章发表看法。这可能涉及到AJAX技术,实现异步提交评论,提高用户体验。同时,为了防止恶意评论,可能还会包含一些安全措施,如验证码或者内容过滤。 系统的...

    知识梳理.doc

    8. **That’s very funny.** 当发现代码中的bug或意外行为时,开发者可能会这样说,表达对问题的幽默看法。 9. **The elephant lives in Africa and in Asia.** 在IT中,这可以解释一项技术或服务在不同地区的适用...

    Spring、SpringMVC和Mybatis框架整合包

    我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能;而且在大部分教学课堂中,也会把SSH作为最核心的教学内容。 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常...

    1牛郎织女——学习ppt课件

    - **结构分析**: 例如,“牛郎”的书写指导中提到“左边窄框内有一短横、竖提上有一点”,这样的指导有助于学生准确掌握生字的结构特征。 - **组词与造句**: 提供生字的常用组合方式,并通过造句让学生学会在实际...

    python学习课件-PPT.ppt

    它的诞生源于Guido对ABC语言的一些看法及其改进的想法。ABC语言虽然优美强大,但未能获得广泛采用,部分原因是由于其封闭性和局限性。Guido希望Python能够吸取ABC的优点并避免其缺点,使其成为一个开放且易于使用的...

    倾力奉献 不看后悔 IT学生解惑手册

    10. **关于积累的一点看法.pdf**: 持续学习和积累经验对于IT专业人士至关重要。这份文件可能强调了不断学习新技能、跟踪技术趋势、参与开源项目、积累实际项目经验的重要性。 综上所述,"IT学生解惑手册"旨在提供...

Global site tag (gtag.js) - Google Analytics