.NET和Java之争

这几天连续有多篇文章诋毁.NET,这类文章我十几年前就看得多了,只不过十几年前是C和C++之争,C++和Java之争。我从来不理这类文章,因为这类口水战并没有什么实际意义。

 

然而接连收到多位粉丝私聊说,主席,你应该写点什么反击了。我才醒悟过来,为了自己,我可以不用理会这些文章,但是为了社区,我必须写点东西。

 

首先,必须声明一点,我在《广州.NET微软技术俱乐部与其他技术群的区别》说得很清楚,“本群坚决禁止讨论“JAVA和.NET哪个好”、“NET有没有前途”等问题,请把讨论这些问题的时间用来研究如何提高自身.NET技术水平上。”

所以,这篇文章将会是唯一一次也是最后一次讨论.NET和Java之争。

 

然后,这篇文章的阅读对象是有上进心、好学但是又在迷茫中的.NET粉丝。

这些粉丝的心态我懂,我读书的时候,身边很多人跟我讲,读书没有用,读书并不能赚大钱,很多赚大钱的人都是小学毕业。

那时候我的心态就和这些粉丝心态是一样的。

幸亏后来家族里的长辈点醒我,他只说了四点:

  1. 福布斯500富豪榜里面,绝大部分都是大学毕业,所以读书无用论这种论点根本经不起推敲。纯粹是这些人为自己辩护找的借口。

  2. 即使是小学未毕业的爱迪生,和因为贫穷只读了三年书的林肯,大家尊敬他们并不是因为他们读书少,而是因为他们的成就和贡献,并且他们都很尊敬文化人,所以读书无用论是本末倒置。

  3. 建立了党和国家财政体系(包括长征和解放军后勤、建立商务部和广交会)的叶季壮将军,就是个文化人,新中国暂时还没有哪个小学文化的富豪创造的财富比他创造的财富多,所以读书无用论和读书不能致富就是扯淡。

  4. 读书无用论是使用小学课文《田忌赛马》里的手法,用小学毕业里的上等马去和大学毕业里的下等马去比,那当然是小学毕业里的上等马胜出啦,正确的比法应该是用小学毕业里的上等马去和大学毕业里的上等马去比。我当时已经是高中文化了,怎么还会中这种这么低级的招数呢?

因此我走出了迷茫,最终考上了大学。十年之后,当我在硅谷上空开飞机的时候,我才发现当年相信读书无用论的同学们不但没开过飞机,甚至连汽车都没有开过(当然现在又过了十年,中国经济发展起来了,绝大部分同学都开上汽车了)。

 

所以这些迷茫中的.NET粉丝的心态我很懂,不就是当年读书无用论的翻版嘛。

所以诋毁.NET的文章我不关心,我只关心我们这些会被这些文章坑害的粉丝们。我也说几点吧:

  1. 我2003年就开始用Java里的J2ME做出一个西门子M55手机程序。目前我同时使用Java、.NET(C#)、Python、Typescript四种语言和技术。所以我并没有说Java不好,我只是认为.NET也不差。

  2. 这些诋毁.NET文章的作者,并没有做过什么实际上的贡献(比如参与开源项目或者写技术文章),和鼓吹读书无用论的是同一类人,纯粹是这些人为自己辩护找的借口。

  3. 这些诋毁.NET文章的手法,是使用小学课文《田忌赛马》里的手法,用Java里的上等马去和.NET里的下等马去比,那当然是Java胜出啦,嗯,这些人好像并不知道.NET Core这匹.NET体系里的上等马吧。绝大部分粉丝的文化程度都比小学文化高多了,怎么还会中这种这么低级的招数呢?

  4. 目前流行的网游,比如王者荣耀,是使用.NET平台,这说明了.NET并不差。

  5. 最近我在整理叶季壮将军的史料过程中,发现在OCR这一块,Java就比不上.NET。在github搜OCR,按照Most Stars排序,你会发现第一页有两个C#的OCR库,而没有Java的OCR库。

  6. 当然在某些领域,Java是比.NET强,比如工作流这一块,我自己目前就是用Java的Activiti, 但是Java是可以和.NET共存的啊,特别是在微服务的年代,早就已经是语言无关了。多种语言和框架都可以共存。

  7. 这些诋毁.NET文章没有举出任何一个.NET不好的实例,而我在前面就举了三个实例,真的是造谣张张嘴,辟谣跑断腿啊。

 

最后单独说一下大家最关心的问题,就是Java程序员工资比.NET程序员高。

这种手法比小学课文《田忌赛马》里的手法高明点,然而很容易识破啊。

这种手法的另一个例子是:我和中国前五个富人的财富一平均,我也是亿万富翁。

See! 这种手法很清晰了吧,“Java程序员工资比.NET程序员高”没有任何意义,重点是“你做Java程序员工资会不会比做.NET程序员工资高”,这才有讨论的意义。

我的经验告诉我:

  1. .NET转Java是需要付出成本的,如果你不会.NET里的IOC、设计模式、DDD、TDD、BDD,那么你转Java,你一样还是需要付出海量的时间去学会这些东西。

  2. 只学会一种语言而不学它的框架和库是什么都干不了的。光学Java是没有生产力的,你至少要学习SSM三大框架,做点有规模的项目还要学Spring Security, Activiti, Drools等等。这都是要花不少时间的,同样的时间用来学好.NET Core提高生产力岂非更好?

  3. 你付出成本转成Java之后,收益不一定比原来.NET的高。因为除了公司内部转Java保证了你的工资待遇外,换一个公司求职你就变成了一个0年工作经验的Java新手,这在一些非算法取胜的公司里是很吃亏的,最终工资未必比你原来.NET的薪水高,毕竟你在.NET是按有经验的工资去付的。目前能够成功从.NET转JAVA的成功案例大部分都是公司内部转,保证了你的工资待遇。

  4. .NET Core正在崛起,微软重回市值第一,你花了时间转Java之后会不会错过这个时机呢?

  5. 不管你是用Java还是用.NET,只要能把事情做好了,就能拿高工资,如果老板不肯给你高工资,那你就换一家公司。

  6. 要通过把事情做好来拿到高工资,你很可能需要同时使用.NET和Java, 比如现在的我,工作流用Java,前端用TypeScript,数据采集和分析用Python,其他用C#/.NET Core.

  7. 如果抱着.NET垃圾的想法,那么当项目需要使用OCR、网游或者其他.NET擅长领域的时候,你因为不喜欢.NET而不去用.NET,从而没有把事情做好,那你可能会被降工资。

 这个世界上,大概率是做实事的人会等到尊重,比如王安电脑的王安,当年排名全球第5富(目前还没有其他亚洲人能做到这点),美国人并没有因为他是华人而鄙视和打压他,反而很尊重他,被选为全美最杰出的12位移民之一,接受了里根总统颁发的“总统自由奖章”。王安卖电脑就没有打什么民族牌、爱国牌。所以还是少点空谈,多干点实事吧。

 

写这篇文章总计花费58分钟,这个时间比我做".NET俱乐部联盟官网"里一个PBI和写“ABP大型项目实战(1) - 目录”这篇技术文章耗时还多。所以这篇文章将会是唯一一次也是最后一次讨论.NET和Java之争,有多余的空闲时间还是用来做点实事吧。

 

我依旧坚持群规:“本群坚决禁止讨论“JAVA和.NET哪个好”、“NET有没有前途”等问题,请把讨论这些问题的时间用来研究如何提高自身.NET技术水平上。谁先挑起这个话题被警告三次后就请出群,目前已经有多位人士被请出群了,请合作,谢谢。”

原文地址:https://www.cnblogs.com/adalovelacer/p/dotnet-vs-java.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P8329-[ZJOI2022]树【容斥,dp】

正题 题目链接:https://www.luogu.com.cn/problem/P8329 题目大意 有两棵nnn个点的有根树。 第一棵根为111,第iii个点的父亲在[1,i−1][1,i-1][1,i−1]中。第二棵根为nnn,第iii个点的父亲在[i1,n][i1,n][i1,n]中。每个点都恰好在一棵树中作为叶子。 …

线性代数一之矩阵转向量随机化求解——神奇的矩阵(BZOJ)+向量内积

向量随机化神奇的矩阵descriptionsolutioncode[NOI2013]向量内积descriptionsolutioncode矩阵既可以看成是一张数位表,也可以看成是若干个行向量或者若干个列向量的向量表神奇的矩阵 description solution 暴力做A∗BA*BA∗B会达到n3n^3n3的复杂度,难…

G - Best ACMer Solves the Hardest Problem Gym - 101955G

G - Best ACMer Solves the Hardest Problem Gym - 101955G 题意: 我们需要建立一个数据库以支持实时查询和修改。这个数据库中的记录是点坐标 (x,y) 和其权值 w。查询与修改操作可以表示为 1 x y w,在 (x,y) 处插入一个新的点,我们保证在…

模板:Link Cut Tree(LCT)

文章目录前言解析原理rotate(x)splay(x)access(x)findroot(x)makeroot(x)split(x,y)link(x,y)cut(x,y)pushdown(x)完整代码所谓Link Cut Tree,就是林可卡特发明的tree (逃) 前言 终于走到了这一天… 其实感觉没有预想的那么难(单…

P6803-[CEOI2020]星际迷航【博弈论,dp,矩阵乘法】

正题 题目链接:https://www.luogu.com.cn/problem/P6803 题目大意 给出一棵nnn个点的树,把它复制出D1D1D1层,编号为[0,D][0,D][0,D],然后每一层随机一个点向下一层随机一个点连边。 然后从第000层的111号点出发,两个人轮流操作…

潘淳:国士无双《微软技术俱乐部(苏州)成立大会暨微软技术交流会介绍》附专题视频...

题记:凡我赶不上的,我就在未来等他,随时等待捕捉那个趋势的的到来。2019年立一个FLAG,加入一个成长性组织,一个能让我学习使我成长的平台。2019年你和我都将亲历这个组织的到来,一个属于苏州程序员自己的大…

ASP.NET Core中借助CSRedis实现安全高效的分布式锁

引言最近回头看了看开发的.NET Core 2.1项目的复盘总结,其中在多处用到Redis实现的分布式锁,虽然在OnResultExecuting方法中做了防止死锁的处理,但在某些场景下还是会发生死锁的问题,下面我只展示部分代码:问题&#x…

L Machining Disc Rotors

L Machining Disc Rotors 题意: 圆心为(0,0)半径为R的圆,现在被被n个互不相交的圆切割(圆心和半径会给出),保证这n个彼此之间不会交叉,保证n个圆中不会有某个包含整个大圆的情况。问切割后大圆剩余部分的直径(即两点…

线性代数二之矩阵加速DP——数学作业,Arc of Dream

矩阵加速数学作业descriptionsolutioncodeArc of Dreamdescriptionsolutioncode数学作业 description solution dpdpdp状态转移方程,dpidpi−1∗10lenii(modM)dp_{i}dp_{i-1}*10^{len_i}i\pmod Mdpi​dpi−1​∗10leni​i(modM) nnn巨大,分段矩阵加速 …

pjudge#21655-[PR #5]双向奔赴【状压dp】

正题 题目链接:http://pjudge.ac/contest/951/problem/21655 题目大意 给出一张nnn个点的简单无向图,每条边的两个方向具有不同权值。求一个权值和最小的定向方案使得整张图强连通。 1≤n≤18,−1≤ai,j≤1061\leq n\leq 18,-1\leq a_{i,j}\leq 10^61≤n≤18,−1≤…

YBTOJ洛谷P2387: 魔法森林(LCT)

解析 LCT从板子到算法的入门题吧 有一些不知道的很实用的技巧 把边按a排序从小到大加入边 那么我们只需要维护当前1-n路径上的b的最小值即可 如果这条边两端点本来不连通,就直接link 否则找到路径上b最大的一条边,断掉,再加入当前边&#x…

Shadow Properties之美(二)【Microsoft Entity Framework Core随笔】

接着上一篇Shadow Properties之美(一),我们来继续举一个有点啰嗦的栗子。先看简单需求:某HR系统,需要记录员工资料。需要记录的资料有:员工号(规则:分公司所在城市拼音首字母&#x…

K - Let the Flames Begin

K - Let the Flames Begin 题意: n个人围成一个环,编号分别是1~n,从第一个人开始报数,报道k的人被移除,然后下一个人从1重新报,一直这样进行。问第m给被移除的人报数是多少? 一共T组数据&…

CF1276F-Asterisk Substrings【SAM,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/CF1276F 题目大意 给出一个长度为nnn的字符串SSS,现在依次进行如下操作 取出SSS的一个子串TTT。将TTT中的一个字符替换成∗*∗号(也可以不替换) 求最后有多少种不同的TTT。 解题思路 发…

线性代数三之状压DP的矩阵加速——Quad Tiling,Bus公交线路

状压与矩阵加速的藕断丝连Quad Tilingdescriptionsolutioncode[Hnoi2010]Bus 公交线路descriptionsolutioncodeQuad Tiling description solution 设dpi,S:dp_{i,S}:dpi,S​: iii列的状态为SSS的方案数&#xff0c;最后答案为dpn,(1<<4)−1dp_{n,(1<<4)-1}dpn,(…

codeforces:812(div2):总结

前言 比较水的一场比赛 E题几乎是一本通原题而我还是不会做qwq A - Sagheer and Crossroads 有一个十字路口&#xff0c;给出四个路口的车是否可以左转/右转/直行&#xff0c;并且给出每个路口的行人是否可以通过&#xff0c;求是否出现车和人冲突的情况 阅读理解题&#xff…

如何在ASP.NET Core程序启动时运行异步任务(2)

原文&#xff1a;Running async tasks on app startup in ASP.NET Core (Part 2)作者&#xff1a;Andrew Lock译者&#xff1a;Lamond Lu在我的上一篇博客中&#xff0c;我介绍了如何在ASP.NET Core应用程序启动时运行一些一次性异步任务。本篇博客将继续讨论上一篇的内容&…

Gym 102798A Golden Spirit

VJ链接 题意&#xff1a; 河的两岸各有n个人&#xff0c;中间有个桥&#xff0c;过桥时间为t&#xff0c;所有人过桥后要休息x时间&#xff0c;你每次可以带一个人过桥&#xff08;每次最多只能带一个人&#xff09;&#xff0c;问将所有人带到对岸并带回来&#xff0c;最短需…

P8347-「Wdoi-6」另一侧的月【博弈论,结论】

正题 题目链接:https://www.luogu.com.cn/problem/P8347 题目大意 给出一棵树&#xff0c;两个人轮流操作。 操作者可以选择一个点删除&#xff0c;然后选择一个剩下的连通块&#xff0c;删除其他连通块。 操作完成后只剩下一个点的人失败&#xff0c;求是否先手必败。 1≤…

线性代数四之动态DP(广义矩阵加速)——Can you answer these queries III,保卫王国

动态DP——广义矩阵加速SP1716 GSS3 - Can you answer these queries IIIdescriptionsolutioncode[NOIP2018 提高组] 保卫王国descriptionsolutioncode动态DP能矩阵加速要满足外层操作符对内层操作符具有分配率加法对于乘法就具有分配率(ab)*ca*cb*c SP1716 GSS3 - Can you a…