[转]该学Java或.NET?-程序员宅基地

技术标签: c#  java  操作系统  

该学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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30784141/article/details/95800501

智能推荐

DeepFM升级版XDeepFM模型_xdeepfm模型简介-程序员宅基地

文章浏览阅读789次,点赞3次,收藏5次。本文参考自 推荐系统遇上深度学习(二十二)--DeepFM升级版XDeepFM模型强势来袭!,在学习原文的基础上加入一些个人的理解和整理。1、引言对于预测性的系统来说,特征工程起到了至关重要的作用。特征工程中,挖掘交叉特征是至关重要的。交叉特征指的是两个或多个原始特征之间的交叉组合。例如,在新闻推荐场景中,一个三阶交叉特征为AND(user_organization=msra,item_c..._xdeepfm模型简介

R语言gganimate动态图_r语言做动态图-程序员宅基地

文章浏览阅读5.7k次,点赞2次,收藏21次。library(gapminder)library(dplyr)library(gganimate)gapminder %>% ggplot(aes(x = gdpPercap, y = lifeExp, size = pop, color = continent)) + geom_point() + scale_x_log10() + transition_m..._r语言做动态图

UE4 鼠标控制actor旋转_ue4鼠标控制物体旋转移动-程序员宅基地

文章浏览阅读6.5k次,点赞3次,收藏25次。物体Tick事件转动,初始不动则Rotate 都为0,关卡蓝图里边鼠标左键事件,鼠标点击和释放的位置做减法 并设置目标的Rotate属性,Clamp做速度控制.不知道其他有没有好的办法,项目需要没找到相关案例 临时写的..._ue4鼠标控制物体旋转移动

Android 应用开发基础总结_android开发-程序员宅基地

文章浏览阅读833次。Android Studio:Android Studio 是目前最流行的 Android 开发工具,掌握 Android Studio 的功能、配置、使用方法等,有助于提高开发效率、降低开发成本。Java 编程语言:Java 是 Android 应用开发的基础编程语言,需要掌握 Java 中的基础语法、数据类型、运算符、条件语句、循环语句、数组等基础知识。布局和控件:Android 应用的布局和控件是应用程序的基础,掌握 Android 布局文件、控件的种类、属性和样式等方面,是应用开发的必要基础。_android开发

2024年Android社招面试题,百度、阿里、滴滴、新浪的面试心经总结-程序员宅基地

文章浏览阅读984次,点赞30次,收藏14次。最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有高级架构技术进阶脑图、Android开发面试专题资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

C++在实时系统中的应用和优化策略是什么?-程序员宅基地

文章浏览阅读883次,点赞17次,收藏17次。然而,需要注意的是,优化并非一蹴而就的过程,需要开发者根据具体的应用场景和需求进行持续的探索和实践。这些引擎能够实时处理复杂的图形数据,实现高质量的渲染效果,为游戏、虚拟现实(VR)和增强现实(AR)等应用提供强大的支持。因此,对于C++开发者来说,保持对新技术的关注和学习,不断提升自己的技能水平,是应对未来挑战的关键。(3)内存对齐:合理的内存对齐可以提高数据的访问速度,减少CPU的寻址时间。实时系统对内存的使用有着严格的要求,因此内存管理优化是C++在实时系统中应用的关键环节。

随便推点

【PHM】PHM算法与智能分析技术——数据处理与特征提取方法1_时域特征提取_phm建模方法论之 数据特征提取-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏107次。PHM算法与智能分析技术——数据处理与特征提取方法1数据预处理目标数据预处理常用方法本系列来自于北京天泽智云科技有限公司的PHM算法与智能分析技术公开课,内容非常有助于研究者对PHM的理解和学习,因此整理为文字版,方便阅读和笔记。公开课视频地址本堂课的主要介绍数据处理的宏观的目标,就是要降低工业场景中建模的3B问题,然后介绍一些常见的数据处理的方法,包括工矿分割数据清洗,针对运动数据的..._时域特征提取_phm建模方法论之 数据特征提取

2021-01-28_sudo apt-get install bc tree-程序员宅基地

文章浏览阅读51次。树莓派高阶课程3:Linux内核源码目录树扫盲分析,配置Linux内核适合树莓派相关操作及内核编译,移植一,Linux内核源码目录树扫盲分析:1 sudo apt-get install treetree //查看目录树大约1.3w个C文件:1100w行代码Linux是开源,免费,Linux开源社区工作者共同维护Linux是一个开源的,支持多架构多平台代码,可移植性非常高但是Linux内核编译出来一般就几M ----4M因为支持多平台多架构,所以编译之前要配置,配置成适合的目标平台来用平台:A_sudo apt-get install bc tree

LWJGL显示一 显示_lwqlog-程序员宅基地

文章浏览阅读1.2k次。LWJGL基础1(显示)介绍LWJGL库使用它自己的轻量级本地窗口(显示),并有其自己的输入系统。 这提供了一种创建快速,小范围内,可借鉴,可实现低延迟的输入现代游戏的一个坚实的基础。LWJGL显示类 Display 是 LWJGL中最重要的一个类。 它创建和控制本地窗口上呈现所有图形内容。显示Display 类有3种方法是应该知道的,即:create(_lwqlog

python数组越界_python数组越界-程序员宅基地

文章浏览阅读1.8k次。Numpy入门标题中的英文首字母大写比较规范,但在python实际使用中均为小写。2018年7月23日笔记0. 学习内容:Python科学计算库:Numpy需要掌握的知识:1.Numpy简介;2.Numpy程序包;3.简单的Numpy程序;4.为什么使用Numpy;5.Numpy是什么;6.Numpy...文章潇洒坤2018-07-26943浏览量Python基础变量类型——List浅析Pytho..._pytorch数组越界

USB Audio Class (UAC) 分析_snd_usb_audio_create-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏35次。本文记录USB Audio Class 驱动分析过程。_snd_usb_audio_create

冒泡排序总结_冒泡排序实验总结-程序员宅基地

文章浏览阅读2k次。冒泡排序总结算法思想:图片演示代码冒泡排序常规版:冒泡排序优化第一版冒泡排序优化第二版算法思想:冒泡排序是一种交换排序。交换排序就是通过元素按照要求进行两两比较,判断是否符合要求,假如不符合要求就将两个元素交换位置来达到排序的目的。冒泡排序名字的由来就是因为在交换过程中,类似水冒泡,小(大)的元素经过不断的比较交换由水底慢慢的浮到水的顶端。冒泡排序的思想就是利用的比较交换,利用循环将第 i 小或者大的元素归位,归位操作利用的是对 n 个元素中相邻的两个进行比较,如果顺序正确就不交换,如果顺序错误就_冒泡排序实验总结

推荐文章

热门文章

相关标签