该学Java或.NET?

  自从.NET问世以来,程序员都很关心的一个问题是「该学Java或.NET」。我也在挣扎,该「该继续Java的研究,或者该开始准备培养.NET的知识」。

  当然,最好是能两者兼顾,但是每个人的时间都很有限,想要兼顾两者,其实不太容易。投入在.NET的时间越多,所能花费在Java的时间自然就少了,反之亦然。在信息爆炸的时代,重要的不是信息的取得,而是信息的抉择。信息太多,时间太少,如果不能慎选适合的技术,只会平白浪费许多时间,斫丧自己的竞争力。

  由于我喜新厌旧的个性使然,过去这两年半,我着实花了不少时间在.NET上,对于.NET的认识越来越深,也修正了对于.NET原先的一些误解,渐渐的认同.NET的许多技术理念。姑且不论我们对于微软是褒是贬,单纯就技术本身来看,.NET的确是很卓越的。

  我并不是唯一一个这样想的人。以「Thinking in Java」等技术书籍广受欢迎的Bruce Eckel也是如此。他原本认为C#和.NET只是Java的模仿者,并无新意,但是在深入了解之后,才发现C#和.NET其实是改良版的Java,不管在各方面,都有比Java更突出之处。当我看到Bruce Eckel说出这样的话,我感觉他说出了我的心声。

  下面,我试图从许多不同的角度,简单地比较Java和.NET。

  从技术的观点

  通常新的技术会比旧技术更好,因为新技术可以从旧技术学到优点,且新技术可以摒除旧技术的缺点。NET比Java诞生的时间晚了六年,许多方面都比Java先进,当然是无庸置疑。

  我的意思并不是Java这六年停滞不前,事实上,Java一直在进步中,只是有许多缝缝补补、修修改改的地方。例如,XML是在这六年之间出现的技术,所以.NET对于XML的整合可以说是天衣无缝,但Java是后来才把XML整合进来,且整合的程度比不上.NET。

  从历史的观点

  以史为镜,可以知兴替。如果你了解近二十年的软件产业发展史,你会发现微软挫败的机会很小,即使是在头几场战役失败,也会在整场战争中获胜。换句话说,.NET挫败的机会不大。在Office软件大战中,WordPerfect、Ami Pro、Lotus 123如今安在?在操作系统大战中,OS/2也已经销声匿迹。在浏览器大战中,Navigator如今只整剩下小小的疆土。你一定可以举出更多这样的例子。

  从市调的观点

  分析机构如Meta Group和IDC皆预测,在Windows Server 2003推出之后,未来几年市占率会大幅提高。我认为,在longhorn推出之后(2006年?),PC更是会全面.NET化。由于「精通」.NET知识可能需要费时两三年以上,技术人员应该尽量提早学习.NET以为因应。

  三年前(2000年)学习.NET恐怕有点太早,三年后(2006年)学习.NET恐怕有点太晚,而现在学习.NET正是时候,不会太早,也不会太晚。学会之后,可以立刻投入市场对于.NET技术的人力需求。

  从行销的观点

  任何人都不能否定微软行销功力的厉害。平面的行销,包括在电子时报、IT Home等信息媒体,甚至连商业周刊等非信息媒体,都看得到相关的广告。动态的行销,包括PDC、TechEd.、修练讲座、产品发表会…等活动,直接走入人群,接触客户。电子的行销,包括MSDN中英文网站、微软TechNet Flash新闻信…等,提供技术新知。

  另外,还有多得拿不完的教学光盘,读不完的线上文件,看不完的Microsoft Press出版品…。我发现,微软的作法和另一家公司的作法大相径庭。微软给我们一堆技术信息,要什么有什么,但另一家公司却常常把信息当成「传家宝」,舍不得释放出来给大众,连透过内部管道都还不见得拿得到,「好象很不希望有人学习他们正大力推广的技术」。

  从销售指针的观点

  关于某个城市的消费者物价指数,麦香堡指针(BigMac Index)是一个很有名也很简易的评估指针。我也发明了一个类似的指针,称为天珑指针(TenLong Index),可以用来评估IT技术的热门程度。天珑书局是台湾最大的IT图书门市,它的技术书籍销售量,对于判断技术的热门程度,有一定程度的参考价值。

  2002年全年和2003年上半年,天珑书局在.NET书籍的销售量都不高,但是在2003年下半年之后,.NET书籍已经有相当不错的表现,这意味着最近准备采用.NET技术的公司已经增加了。

  我记得在Java推广初期,由于大家对于Java认知不够,所以对于Java有许多FUD存在。现在微软在推广.NET上,也遭遇到许多FUD,这是微软目前必须极力消除的障碍。如果你对于.NET也存有这些FUD,你不妨尝试着去破除这些FUD,就如同七八年前破除Java的FUD一样。你将会发现,就目前来说,.NET是一个非常有潜力的技术,值得投入。

转载于:https://www.cnblogs.com/dnuace/archive/2006/01/18/319843.html

[转]该学Java或.NET?相关推荐

  1. 模具和java哪个好_93年,本科毕业一年(模具专业),想学Java转行怎么样?

    谢邀. 行. 首先,楼主本科学历,可以认为学习能力是足够的 其次,刚毕业一年,职业生涯是最具弹性的阶段,完全可以有更多的可能. 楼主既然有了明确的转行Java开发,那应该是对Java的行情有过了解的吧 ...

  2. JAVE EE 企业级开发之从零开始学JAVA【51CTO技术论坛】

    http://bbs.51cto.com JAVE EE 企业级开发之从零开始学JAVA         从零开始学JAVA?YES!本刊内容全部为午饭redking整理.撰写,所涉及内容均为原创,非 ...

  3. [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)

    MIS信息管理系统实战开发之使用MySQL实现保存 开发背景 ID.姓名.年龄为公共信息,而学生有成绩,工人有工资 定义一个抽象类Person(ID.姓名.年龄),学生是其子类,有成绩,工人是其子类有 ...

  4. 学java培训开发需要多少钱

    学java培训开发需要多少钱?这个问题对于想要学习java技术的小伙伴们来说是非常重要的,如今市面上的java培训机构非常多,收费标准都是多少呢?那么来看看下面的详细介绍吧. 学java培训开发需要多 ...

  5. 零基础学java培训怎么选择学校

    java技术在互联网行业的快速发展,引起了很多人的关注,大家都想通过学习java技术来加入到这个行业,那么零基础学java培训怎么选择学校呢?如今市面上的java培训机构这么多,下面小编就来为大家详细 ...

  6. 学java是不是必须要参加java培训班?

    学java是不是必须要参加java培训班?java技术对于零基础的同学来说学习起来是比较困难的,所以对于这个问题,小编的回答是当然要参加java培训班进行系统学习,下面来看看到底有没有必要报班学习? ...

  7. 学Java技术,这些问题要避免

    参加java培训学习java技术不是一朝一夕就能学会的事情,在学习的过程中还要注意学习方式,有一些错误是要避免的,下面我们就为大家详细的介绍一下学java技术要避免哪些问题? Java培训分享:学Ja ...

  8. 零基础学Java需要做哪些准备

    想要成为一名合格的java工程师,那么好好学习java技术是非常重要的,对于零基础同学们来说,大家比较关注的就是"零基础学Java需要做哪些准备"这个问题,下面小编就来为大家做下详 ...

  9. 零基础学Java大数据难不难

    java大数据如今在企业中用到的次数是非常多的,很多人都比较看好java技术,那么零基础学Java大数据难不难?想要学习java技术说难不难,说简单也不是很简单,来看看下面的详细介绍就知道了. 零基础 ...

  10. 零基础学Java程序有什么好的建议

    ​ java技术的快速发展,引起了很多人的关注,尤其是一些零基础人群,都想通过学习java技术来改善自己的职业,那么零基础学Java程序有什么好的建议呢?来看看下面的详细介绍. ​ 零基础学Java程 ...

最新文章

  1. vue3+TypeScript封装echarts5组件
  2. JS之前台参数提交到后台,双引号转义为解决办法
  3. java 报表_2020 最新流行的Java Web报表工具比对
  4. 梅耶尔何时离开雅虎?答案将很快揭晓
  5. gis怎么提取水系_ArcGIS提取水系并进行生态敏感性分析
  6. 十天学会php之第八天
  7. 谷歌(google)、百度、必应d等高级搜索指令使用
  8. google_trans_new库:谷歌翻译库Googletrans的替代品
  9. QGIS转换shp/img文件坐标系(wgs84/gcj02/bd09)
  10. mysql根据班级排序语文成绩_mysql 成绩排序
  11. 通过云效 CI/CD 实现微服务全链路灰度
  12. 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!
  13. 表观转录组学-m6A简介
  14. idc数据中心托管服务器需要注意的事项有哪些
  15. 实现敌人(怪物)的简单AI(自动巡逻、看到玩家攻击玩家、玩家离开恢复自动巡逻)
  16. 暴雪在洛杉矶建了自己的电竞馆,守望先锋锦标赛下个月就会在这里举行
  17. Day_04 Vue学习
  18. linux run fsck,unexpected inconsistency;RUN fsck MANUALLY 解决方案
  19. Android动态壁纸 Live Wallpaper(WallpaperService.Engine)
  20. 世界级软件开发大师Martin Fowler这三本书经典书你都读过哪一本?

热门文章

  1. LeetCode 1755. 最接近目标值的子序列和(状态枚举 + 双指针)
  2. LeetCode 251. 展开二维向量
  3. LeetCode 362. 敲击计数器(map)
  4. LeetCode 450. 删除二叉搜索树中的节点
  5. LeetCode 144. 二叉树的前序遍历(前序遍历)
  6. ajax和rxjs,javascript – RxJS 5 Observable和Angular2 http:调用ajax一次,保存结果,随后的ajax调用使用缓存结果...
  7. ios html高度自适应,iOS UILabel高度自适应终结篇
  8. springboot设置运行内存_Docker 如何运行多个 Springboot?
  9. 无内鬼,来点ICML/ACL审稿人笑话
  10. 论文浅尝 - ACL2020 | 用于链接预测的开放知识图谱嵌入