对.NET Core未来发展趋势的浅层判断
经常听到园里.NET开发人员在抱怨生态不如JAVA,想要转JAVA,所谓打不过你,我就加入你!杜兰特的思维方式固然是获取总冠军的一种方式,但是我们要关起门来问自己有没有杜兰特的实力。
用开发生态来类比NBA不是特别恰当,因为NBA只有一个总冠军,但是开发生态一枝独放不是春,百花齐放春满园。我个人觉得做.NET生态的一员,完全没有必要自卑,而是应该感到荣幸,随着你认知的不断深入,你完全可以拥抱其他生态,自成一家。如果你实在觉得JAVA或者.NET不能满足你的需要,你也可以考虑GO或者Python。你转来转去,付出巨大的代价,最后薪资不见得每个月会增加多少,可能在你转化的过程中,你还损失了不少。
存在即是合理,我试着从自己的有限经验来对.NET Core未来做一个武断:我觉得.NET Core对其他生态不会构成什么威胁,.NET Core会给人家多个一个选择,所以新人和新公司的大部分,旧人和旧公司的小部分会被吸粉,但是大的方面不会有什么变化。不会像人说的那么好,也不会差到哪里去。但是.NET Core会因为微软这个巨人的重新崛起,而名声鹊起。
历史底盘
从就业面来看,.NET主要集中在中小企业(私企),部分外企,部分国企,特别是传统做OA,MES,CMS,WMS,ERP等企业有很多的用户,由于微软的先行者优势,这类企业占比非常高,应该说是金字塔的底端,而且目前PC端还是Windows的天下。另外因为微软本身就是从2B起家的,而且在2B特别是Office和Windows这块依然是一个巨大的平台,这么大的一个平台大到你无法想象,所以围绕平台的生态自然不会消失,资源和营养也不会低下。
从巨头的体量上来说,如果说微软,亚马逊,Google,Facebook是马刺,勇士,湖人,顿凯尔特人等传统豪门,BAT则更像是游离在豪门外的火箭,雷霆,快船,猛龙,步行者等一众边缘球队,虽然总冠军也有,但是整体实力跟豪门差距巨大。而BAT之外的虾兵蟹将等企业其实都不是绝对的安全,你去也好不去也好,你都不是一个足够你依靠的大树。
如果说易经是群经之首,那么老子,孔子,墨子,庄子莫不受其影响和恩泽。就像是C是C++,JAVA,GO,C#等一切语言的鼻祖,微软对谷歌,亚马逊,BAT的影响也十分深远。很多大牛从微软亚洲研究院出来的,你可以从李开复,陆奇,张亚勤等代表人物身上看到微软的影子。
开源生态
微软内部技术兼容并包,早已不是局限在语言和平台的矛盾,随着.NET Core拥抱开源和微软收购GitHub,微软不断在向开源纵深发展,而且有些地方更加的彻底。如此一来,大伙多了一种选择,好比在淘宝可以开店,在京东也行,甚至小程序都可以做微商,为什么要吊死在淘宝这棵树上。所以,.NET生态必然会稳中求进,虽然对其他的生态没有什么威胁。但是,别忘了,云可是一个比语言,比生态,比Window比Office更加庞大的生态。如果说语言和语言相关的生态是一个湖泊,那么云服务和相关的云计算,云技术,AI等内容,云生态就是一个大海。
开源只是开始,更重要的是思想的转变。也就是说你不管用的什么语言什么平台,请你到我的云平台来,到Azue来,我都像大海一样海纳百川,就品牌和国际化程度来看,阿里云和微软显然还有一些差距,或者说总体上还是弱一些。从这种开放程度来看,微软从2000多亿美金到8000多亿美金,背后释放的能力还是十分巨大的,必然会网罗一份拥趸和粉丝。
我们再看一下下面这段话:“.Net Core 开源后取得了更加快速的发展,目前越活跃用户高达400万人,每月新增开发者45万,在 GitHub 上的月度增长达到15%。目前有来自超过3,700家企业的1.9万开发者在为 .NET Core 做贡献,.NET 基金会管理着超过60个项目。.NET Core 为开发者提供了跨平台、云原生应用的理想开发平台,特别是即将发布的 .NET Core 3,能够全面支持从网页到云端、桌面、物联网、人工智能的全方位的跨平台部署。在大会现场,微软演示了 Windows 桌面在 .NET Core 3.0上运行的情况,充分展现了将其用于未来开发环境的无限可能。“——潘正磊在上海的Tech Summit 2018 大会上的原话(引自张队长的链接)。
所以我的判断是,如果你觉得没有精力和年龄去转JAVA,那也不用紧张,因为你的地盘还是稳中有进的。只是你别停止学习跨平台和开源等新技术,因为开源意味着生态的更加多元和多样,而你怎么可能躺着就把钱赚了?而且你学习的新东西,转到JAVA生态下可能付出的时间和精力是双倍甚至三倍的。如果技术不是你的全部,你还有身体和孩子和创业,那么为什么不把时间花在更加重要的地方去,比如去学习经济学和文学?如果你希望进入微软工作,那么.NET Core平台也是需要了解。

全家桶
微软家也有SPRING一样的全家桶式的东西。比如.NET战略里面的相关技术栈,就是你用了.NET技术栈,你几乎什么都可以做,先不说做到的程度,至少桌面WinForm开发全家桶/Web开发全家桶/移动跨平台(Xamarin全家桶)/云服务(.NET Core微服务全家桶)等东西他都能给你一个选择。从这次.NET Core对IOT的支持来看,微软的IOT全家桶也已经出来了,这个好处必然也是吸粉的一部分。因为放眼JAVA,PHP,C,C++,GO都没有看到一个像.NET一样这么的全能的人。.NET就像是一个表现很全面的三好学生,各方面都很均衡,但是不见得毕业后能做一个特长生。
另外说一下,SPRING等杀手级的框架外,其实JAVA开源的东西很多是野路子,没有微软专业,给你一步到位,所以对微软的东西叫产品,对开源的东西只能叫项目,因为坑太多了。现在微软的开放是以带头大哥加社区方式在助推,JAVA则是以BAT和社区等力量在助推,在开发的程度和产品的质量来看,微软可以更加高效的集中力量办大事,.NET使用者还是能感觉到明显的性能和效率和生产力。比如泛型,委托,隐式类型推导,异步编程,多线程并发编程,函数式编程,Lambda表达式等语法糖,微软推出的速度就像国家造路建桥一样有自身垄断的优势。我有个感觉垄断加开源会所向披靡,只有垄断等于是闭关锁国,只有开源质量和效率都没能保证,只有两者强力的组合才是王道。

总结
最后我想说尽管.NET Core做了一件JAVA看来很落伍的事情,但是也没有必要嘲笑,因为微软在下一盘更大的棋子,而开源跨平台只是顺便的一件事,未来的AI和云服务布局才是王者的必争之地。所以,原来写JAVA继续在写JAVA,写Python或者C,C++的一样跟没事一样,在耕耘着自己的一亩三分地。写C#的一样可以坦然以对。
关于.NET Core新平台未来发展文章:
- .NET Core: .NET of Future or Future of .NET?
- What Is The Future Of .NET Core?
- .NET Core:新的快速开发平台
- 知乎上的讨论帖子.Net core现在可以做什么?未来发展有前景吗?
- 探讨.NET Core的未来
- .NET Core跨平台
- 等待与希望,.NET Core 的发展壮大
对.NET Core未来发展趋势的浅层判断的更多相关文章
- java数组对象的浅层复制与深层复制
实际上,java中数组对象的浅层复制只是复制了对象的引用(参考),而深层复制的才是对象所代表的值.
- struts2.1笔记01:MVC框架思想浅层理解
1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...
- .net中String是引用类型还是值类型 以及 C#深层拷贝浅层拷贝
http://www.cnblogs.com/yank/archive/2011/10/24/2204145.html http://www.cnblogs.com/zwq194/archive/20 ...
- Java中的Clone机制(浅层复制)
浅层复制代码: import java.util.*; class Int{ private int i; public Int(int ii){i = ii;} public void increm ...
- java中浅层克隆和深层克隆
1.浅复制与深复制概念 浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象 ...
- deeplearning.ai 神经网络和深度学习 week3 浅层神经网络 听课笔记
1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...
- MLDS笔记:浅层结构 vs 深层结构
深度学习出现之前,机器学习方面的开发者通常需要仔细地设计特征.设计算法,且他们在理论上常能够得知这样设计的实际表现如何: 深度学习出现后,开发者常先尝试实验,有时候实验结果常与直觉相矛盾,实验后再找出 ...
- js的深层克隆和浅层克隆代码和理解
<script> //判断是不是原始值 //判断是数组还是对象 //建立相应的数组或对象 var obj={ name:'辣鸡', sex:'male', card:['laobi','f ...
- tensorFlow(四)浅层神经网络
tensorFlow见基础 实验 MNIST数据集介绍 MNIST是一个手写阿拉伯数字的数据集. 其中包含有60000个已经标注了的训练集,还有10000个用于测试的测试集. 本次实验的任务就是通过手 ...
随机推荐
- 实现MyArrayList类深入理解ArrayList
ArrayList简介 ArrayList是一个动态数组,Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处. MyArray ...
- DataTime显示格式【转】
随心所欲的DateTime显示格式 任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到 ...
- 设计模式的征途—13.代理(Proxy)模式
所谓代购,简单说来就是找人帮忙购买所需要的商品.代购分为两种类型,一种是因为在当地买不到某件商品,又或者是因为当地这件商品的价格比其他地区的贵,因此托人在其他地区甚至国外购买该商品,然后通过快递发货或 ...
- Python_文本操作
#向文本文件中写入内容 s='Hello world\n文本文件的读取方法\n文本文件的写入方法\n' f=open('sample1.txt','a+') #打开文件 f.write(s) #写入文 ...
- Python_字符串简单加密解密
def crypt(source,key): from itertools import cycle result='' temp=cycle(key) for ch in source: resul ...
- 注解@EnableDiscoveryClient,@EnableEurekaClient的区别
SpringCLoud中的"Discovery Service"有多种实现,比如:eureka, consul, zookeeper. 1,@EnableDiscoveryClie ...
- SSM-SpringMVC-17:SpringMVC中深度剖析HandlerAdapter处理器适配器底层
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先放一张图 很熟悉啊,之前就看过,我们之前已经把handlerMapping剖了个底朝天,顺着上次的进度,继 ...
- 跨域问题实践总结! 上(JSONP/document.domain/window.name)
1. JSONP 首先要介绍的跨域方法必然是 JSONP. 现在你想要获取其他网站上的 JavaScript 脚本,你非常高兴的使用 XMLHttpRequest 对象来获取.但是浏览器一点儿也不配合 ...
- c# 编程语言tag
['JavaScript','Objective-C','C++','C#','Basic','PHP','Python','Perl', 'Transact-SQL','ruby','CSS3',' ...
- 跟我学ASP.NET MVC之七:SportsStrore一个完整的购物车
摘要: SportsStore应用程序进展很顺利,但是我不能销售产品直到设计了一个购物车.在这篇文章里,我就将创建一个购物车. 在目录下的每个产品旁边添加一个添加到购物车按钮.点击这个按钮将显示客户到 ...