经常听到园里.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 的发展壮大