经常听到园里.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未来发展趋势的浅层判断的更多相关文章

  1. java数组对象的浅层复制与深层复制

    实际上,java中数组对象的浅层复制只是复制了对象的引用(参考),而深层复制的才是对象所代表的值.

  2. struts2.1笔记01:MVC框架思想浅层理解

      1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...

  3. .net中String是引用类型还是值类型 以及 C#深层拷贝浅层拷贝

    http://www.cnblogs.com/yank/archive/2011/10/24/2204145.html http://www.cnblogs.com/zwq194/archive/20 ...

  4. Java中的Clone机制(浅层复制)

    浅层复制代码: import java.util.*; class Int{ private int i; public Int(int ii){i = ii;} public void increm ...

  5. java中浅层克隆和深层克隆

    1.浅复制与深复制概念 浅复制(浅克隆)     被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象 ...

  6. 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]是第 ...

  7. MLDS笔记:浅层结构 vs 深层结构

    深度学习出现之前,机器学习方面的开发者通常需要仔细地设计特征.设计算法,且他们在理论上常能够得知这样设计的实际表现如何: 深度学习出现后,开发者常先尝试实验,有时候实验结果常与直觉相矛盾,实验后再找出 ...

  8. js的深层克隆和浅层克隆代码和理解

    <script> //判断是不是原始值 //判断是数组还是对象 //建立相应的数组或对象 var obj={ name:'辣鸡', sex:'male', card:['laobi','f ...

  9. tensorFlow(四)浅层神经网络

    tensorFlow见基础 实验 MNIST数据集介绍 MNIST是一个手写阿拉伯数字的数据集. 其中包含有60000个已经标注了的训练集,还有10000个用于测试的测试集. 本次实验的任务就是通过手 ...

随机推荐

  1. 基于DP的LCS(最长公共子序列)问题

    最长公共子序列,即给出两个序列,给出最长的公共序列,例如: 序列1 understand 序列2 underground 最长公共序列undernd,长度为7 一般这类问题很适合使用动态规划,其动态规 ...

  2. 想做微信小程序第三方代理,各位觉得一键生成平台能赚到钱吗?

    这几年生意不景气,这是很多人的共识.从2009年开始,各种专家就判断"明年经济是最差的一年."然后,这个明年,一直"明"到了2018年,到最后,我们发现,经济就 ...

  3. Spring @Conditional注解的使用

    Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置. 下面来介绍如何使用Condition 首先写一个类 ...

  4. 【转】数据库事务ACID以及事务隔离

      本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...

  5. PAT1017:Queueing at Bank

    1017. Queueing at Bank (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Supp ...

  6. grub rescue 主引导修复

    使用windows 和 ubuntu 双系统的人,很有可能碰到重装某一个系统,或者另外添加分区,导致系统重启出现 : GRUB loading error:unknow filesystem grub ...

  7. SSM-MyBatis-01:IDEA的安装,永久注册和简单的MyBatis用例

    一,IDEA的安装和永久注册 1.安装: 那到安装包,下一步,选路径,上面可以选操作系统64/32位,下面是程序的默认打开方式,可以不必勾选,也可以全选 路径一定不包含中文,重点 2.永久注册: 将此 ...

  8. spring.resources

    @EnableWebMvcNormally you would add @EnableWebMvc for a Spring MVC app, but Spring Boot adds it auto ...

  9. Django 的数据库查询

    class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def _ ...

  10. Oracle12c中功能及性能新特点之with子句的增强

    1. 设置创建测试表.DROP TABLE test PURGE; CREATE TABLE test ASSELECT 1 AS idFROM   dualCONNECT BY level < ...