从.NET和Java之争谈IT这个行业

一、有些事情难以回头

开篇我得表名自己的立场:.NET JAVA同时使用者,但更加偏爱.NET.原因很简单

1.NET语言更具开放性,从开源协议和规范可以看出;

2.语言更具优势严谨;

3.开发工具VS更具生产力;

然而

1.Java,C#的职位比率在4:1,虽然这不是什么问题,因为求职竞争的比例更大(JAVA中更多的刚培训出来的),

但话说回来,对于C#求职而言,会面临更加狭窄的企业选择空间.

2.Java同等职位,国内的待遇比.NET稍高;这里为.NET说声不平,.NET开源程度更好,架构体系更成熟逻辑更严谨,开发效率更高,服务器同样可以使用Linux

这些不对等的原因

1.历史原因

  JAVA早.NET5年出生,一开始就对各大平台(主要就Linux)提供技术支持,微软前两任CEO都固步自封以为WINDOWS可以始终独步天下

,压根就瞧不起Linux,因此.NET原本可以飞的实力(本来就可以跨平台、更好的语言特性)被微软给封杀了,尤其那个叫做鲍尔默夜郎自大.......

  因为JAVA在其出生的年代凭借其优势可谓天子骄子,因此吸引很多IT人员加入其阵营之中,这些人占领了各行各业的企业之中,慢慢这些JAVA从业者成为技术领导,在后来的十几年中,微软依旧固步自封,故此JAVA占领了绝大多数企业技术决策层.

2.Android的成功

  虽然JAVA越来越老,微软转向开源界、.NET开源、但使用JAVA作为应用语言的Android取的了智能设备领域的巨大成功,这无非给年老的JAVA打了一针强心剂,虽然C#可以同时支持Android/IOS开发,但因为上面的历史原因(JAVA占领了绝大多数企业技术决策层),依旧缓慢前行.

3.微软在手机系统中的失利

  不仅巨坑了诺基亚,而且手机系统这么多年一直在改.......... 而且不提供后向兼容.后果当然也算得上.NET阵营的失利.有了鲍尔默这样的CEO,你我还能怎样呢?

4.马太效应

  当你的对手占据了绝对优势之后,再努力你将付出天大的代价.

二、来至.NET阵营的哀伤

  很多.NET阵营的朋友都在感慨,如果上天在给一次机会........,但回头对他们来说真的很难.在这里对那些鄙视.NET的JAVA者们说一句:

不是因为你们人更优秀,而仅仅因为你爸是李刚.完成一个业务需求看做得又快又好就知道.

  如果你出生贫寒,你就要付出比别人更多艰辛才行.大自然的法则就一条:物竞天择,适者生存.

三、.NET自己的出路在哪里呢?

  1)Unity目前是一个很好技术方向,毕竟游戏从未在中国市场没落过.

  2)等待着甲骨文把JAVA给终结了,但甲骨文Android之争的结果,显示甲骨文对JAVA挣钱这件事情失去信心,

尤其是谷歌在Android上面的胜利.有理由相信甲骨文不会对JAVA做出更大的贡献.谷歌依然有被起诉的风险,从技术上显示谷歌会为了避开这对烂事,

会将JDK走向OPENJDK,或者其他技术(如果甲骨文最终取得胜利的话).

  3)等待微软WP的逆袭,眼下纳德拉的决策显示,手机系统市场赚不了钱,他只想做好系统,等待适当的契机,因此这个愿景再等一年看,但那时世界又是怎样的何人知道?

  4)等待着.NET Core占领B/S市场,这一天指日可待,开源+性能优势.

四、到底技术人员如何规划自己的一生

  前段时间看到高斯林爆料:高龄IT求职人员在硅谷遭到歧视.我想这个现象这中国必然更加普遍,

原因很简单:你是一个老技术达人,你的工资只能随着你的年龄趋向一个极限值,而你的精力随着年龄

越来越不如年轻人,要么你成为一个企业的技术领导,然后一直那么待下去.要么你自己创业,用你的技术

去打造一番自己的事业,不然你只能选择改行.

  昨天看了王垠的一篇文章,链接这里:http://www.yinwang.org/blog-cn/2016/10/25/argument

他绝对是一个技术强人但在大型企业中(如微软)只是一个初入一个公司小角色,

如果一个人进入一家公司,不是去做CTO的,那么他只能作为一个新人,被所谓的上面的'领导'打压,王垠这样例子很多,

正如他说:他所谓的领导是为了争论而争论,不是为了把事情做到位,更不是为了让问题得到更好地解决.

最终王垠结尾如此写道:

我看见满载希望的列车,冲向悬崖的尽头,然而我却只能保全自己,因为我无法拯救愚昧。愚昧是无敌的。有个古人说得好,

理性和智慧从来就没有战胜过愚昧,只有等愚昧的人都死去,它们才有被人看见的希望……

  作为纯技术IT人员很多都遇到类似的问题,他们很优秀只是没有读懂人性,智商高的人,他们情商不一定高,或者往往吃亏就在这里

,因为他们是一群做事的人,而不是一群耍心机的人.如果这群忠厚理性的人,不直接隶属于老板的话,

其实会很容易被上面的领导打压,因为人性就是这样:有谁自己不是老板,会看好一个比自己厉害的

竞争对手?他们心中事情本身的对错,不愿事故圆滑.哪里有人,哪里就有这些勾心斗角.

物竞天择优胜劣汰 在人类这群特殊的生物中,武力、技艺早已不是决定胜负的标准了.

四、学会投资理财

  这里说的投资不仅仅是金钱上的投资,金钱的投资重要,自我的投资更重要:身体、知识/智慧、人脉.

五、不积跬步无以至千里

  这句话留给自己的,每一个人生旅程中都能够学到很多东西,或者说看明白一些东西,学会总结、反思

生命中所遇到的人事物,每天进步一点点就是很大的进步,我们之所以彷徨在于我们不知道我们是谁、要

往哪里去,或许我们真正需要得很简单.

六、谈谈创业

  有人说创业是一次探险;有人说创业是一场赌博,因为胜利者只有1/10;在我看来创业是一场知识与智慧的爆发,

利用自己所有的资源和智慧自定周密的计划为之奋斗.一生中最重要的是要明白自己想要的是什么,而不是随波逐流

,因为所追逐不一定是你真正需要的.

原文地址:http://www.cnblogs.com/humble/p/5952528.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

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

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

相关文章

权限管理系统2_权限表,权限模块表

CREATE TABLE sys_acl_module ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 权限模块id, name varchar(20) NOT NULL DEFAULT COMMENT 权限模块名称, parent_id int(11) NOT NULL DEFAULT 0 COMMENT 上级权限模块id, level varchar(200) NOT NULL DEFAULT COMMENT …

struts基本概念(2)

一、struts使用步骤:1.导包(基本)2.web.xml配置struts控制器 C3.页面开发 V4.处理类开发 M()5.配置struts.xml 6.部署运行二、struts访问session(servlet )1.解耦方式:ActionContext Map 2.耦合方式:ServletActionContextHttpSession 三…

vue2.0 $router和$route的区别

转载自 vue2.0 $router和$route的区别在vue2.0里页面参数是 this.$route.query或者 this.$route.params 接收router-link传的参数。 在路由跳转的时候除了用router-link标签以外需要在script标签在事件里面跳转,所以有个方法就是在script标签里面写this.$router.pu…

基于Bootstrap 3.x的免费高级管理控制面板主题:AdminLTE

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题。AdminLTE - 是一个完全响应式管理模板。基于Bootstrap3框架。高度可定制的,易于使用。适合从小型移动设备到大型台式机很多的屏幕分辨率。 在线预览: http://almsaeedstudio.com/preview/ AdminLTE 在…

Spring MVC开发环境搭建

现在springMVC是非常常用的框架,很多公司的内部都是使用这个框架 打开maven查询jar包的网址 mvnrepository.com 测试是否成功 war:只是运行 war expord: 运行且调试

Redola.Rpc 的一个小目标:20000 tps

Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标:20000 tps。 Concurrency level: 8 threadsComplete requests: 20000 Time taken for tests: 0.886 secondsTime per request: 0.044 ms (avg)Requests per second: 22573 [#/sec] (avg) Concurrency level: 8 thr…

vue 动态修改路由参数

转载自 vue 动态修改路由参数 import merge from webpack-merge;修改原有参数 this.$router.push({query:merge(this.$route.query,{maxPrice:630}) })新增一个参数: this.$router.push({query:merge(this.$route.query,{addParams:我是新增的一…

2016年寒假心得

对于上学的孩子来说每年都有寒假,可是一样的寒假总是不一样的玩法。自从高中毕业之后,很少动笔写文了,这次就好好的写一下吧!咱的文笔也不是很好,就写个最简单的流水状大家凑合的看看吧!!&#…

Vue.js 定义组件模板的七种方式

转载自 Vue.js 定义组件模板的七种方式在 Vue 中定义一个组件模板,至少有七种不同的方式(或许还有其它我不知道的方式): 字符串模板字面量x-template内联模板render 函数JSF单文件组件 在这篇文章中,我将通过示例介绍…

.Net Core上用于代替System.Drawing的类库

目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径。 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各种图片处理https://github.com/dotnet/corefx/issues/2020https://github.com/imazen/Gra…

16-1 Redis分布式缓存引入与保存缓存功能实现

16-1 Redis分布式缓存引入与保存缓存功能实现 现在功能已经完成了,但是我们还是要考虑一下性能问题,现在任何请求都是要到数据库中查询很多的数据,才能知道当前的用户是否有权限可以访问当前的url,当我们的请求量很大时&#xff…

oracle基本笔记整理

oracle,简单来说就是数据库,数据库 ,顾名思义,就是存放数据的容器!! 不知道oracle的我先科普一下吧~~~科普,科学普及简称科普,又称大众科学或者普及科学,是指利用各种传…

不同范数下的余弦定理_第06题 | 从源头追溯「余弦定理」amp; 文理科知识点的异同...

文、理科数学大部分知识点、甚至相关知识点的考查形式都是共同的,甚至往年理科题目过几年就会出现在文科试卷上,反之亦然;「射影定理」是「余弦定理」的直接来源,所以不算超纲知识点。先发福利:这里有6场「高考数学」系…

ASP.NET CORE 项目实战 ---图形验证码的实现

简介   很长时间没有来更新博客了,一是,最近有些忙,二是,Core也是一直在摸索中,其实已经完成了一个框架了,并且正在准备在生产环境中试用,但是很多东西也是出于自己理解的肤浅和技术的不断更新…

vue.js 接收url参数

转载自 vue.js 接收url参数1) 路由配置传参方式在配置路由时 例如 "/firewall/authorize/:uid/:uname/:token"页面url为 http://XXX.com/firewall/authorize/23/zhangman/232454 js 接收方式 this.$route.params.uid,2) ?传参方式例 http://XXX.com/firewall/auth…

在IDEA中将SpringBoot项目打包成jar包的方法 不要用 在上面有可以用的

在IDEA中将SpringBoot项目打包成jar包的方法 2018年03月07日 10:43:52 叶叶叶叶大爷 阅读数 71375 版权声明: https://blog.csdn.net/qq_37105358/article/details/79467401 SpringBoot项目无需依赖tomcat容器(内含)就可以发布,现在将打包步骤记录一下: 1. 打包前…

磁珠 符号_贴片磁珠功能_贴片磁珠应用

磁珠专用于抑制信号线、电源线上的高频噪声和尖峰干扰,还具有吸收静电脉冲的能力。磁珠是用来吸收超高频信号,像一些RF电路,PLL,振荡电路,含超高频存储器电路(DDRSDRAM,RAMBUS等)都需要在电源输入部分加磁珠…

跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题

问题 生成缩略图生成验证码生成二维码给图片加水印 外部引用 Node 不解释 https://nodejs.org/en/download/sharp 高性能缩略图 https://github.com/lovell/sharpqr-image 二维码 https://github.com/alexeyten/qr-imagecaptchagen 验证码 https://github.com/contra/ca…

Vue动态路由匹配

转载自 动态路由匹配我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件。例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染。那么,我们可以在 vue-router 的路由路径中使用…