由优劣语言之争引起的思考
#欲使其灭亡,必使其疯狂
昨天上午由阿里云中间件公众号和架构师小秘圈公众号发布的一篇文章《天天敲代码会使人变聪明么》在.net开发者中掀起了一阵巨浪,文章中提到的语言的先进与落后之争让基于.net开发者们义愤填膺,不少嫉恶如仇的开发者纷纷前往公众号去谴责作者的这种行为。
作为高级工程师和架构师圈子里有着出色影响力的优秀公众号,在公开场合发表这种充满意识形态的争议性文字,实属罕见,我觉得应该是小编未能注意到作者在正文的某个角落夹杂着的个人观点引起的疏漏。在读者在公众号后台留言之后,编辑很快就对内容进行了修改,于是很快原文就看不到这段令人不适的文字了。
互联网时代,任何意识形态之争或语言优劣之争,都只是图一时的口舌之快。优秀的开发语言也好,开发者也好,都应该拥有一颗博大的胸怀,时刻怀揣着用技术改变生活的梦想,用心去体会开发语言的妙处。我觉得,没有最优秀的开发语言,只有最适合的开发语言,就像有人喜欢吃甜椒,有人喜欢吃辣椒一般,没有必要因为自己的喜好,就讽刺别人的爱好。而只要是能解决问题的开发语言,都可以成为是开发优秀的语言。也从来没有什么优秀的语言能够使大脑聪明的道理,任何运用得当的开发语言或者技术,都会让精神愉悦。Java也好,.C#也罢,都是开发者们用来解决问题的工具。平和、包容、开放的心态,跳跃敏捷的思维方式,是我们解决问题的法宝。而那些抱着狭隘技术心态、自以为是的开发者,不过徒增笑柄而已。
#平台开发VS业务系统开发
在这个事情的背后,我觉得或许反应的是某些狭隘的平台开发者(或中间件)对于业务开发者的鄙视链。随着互联网的飞速发展和工作岗位职责的进一步细分,也让平台开发者与业务开发者之间的技术体系变得截然不同。尤其是近年来PaaS市场的风起云涌,更是让平台开发者成为时代的宠儿。最近看到有人分享的蚂蚁金服面试经,查看原文。在这篇文字中,我们可以看到,作为平台开发者所需要掌握的技术体系,无论是go语言,或者k8s这些,都需要非常深入的了解。 而平台开发者必须深刻领悟当今时代最先进技术的发展方向和技术的技术深度,才能应对平台建设过程中所带来的挑战。而这种挑战也同样引起了IT产业技术非常深远的变革,DevOps的盛行就是这个典型的案例。
而业务开发者也同样促进了行业的进步和时代的发展。与平台开发者相比,业务应用开发者的知识体系则相对不同,更侧重于将技术灵活的运用到实际产品的开发过程中。经常可以在博客园看到一些专家的分享,讨论技术中方方面面的细节。之前看到路过秋天的分享,查看原文,作者介绍了他招聘架构师过程中遇到的一些常见的现象,实际上值得所有高级.NET工程师关注。随着时代的变迁,优秀的开发者关注的重点,应该不仅仅只是在业务范围内,有时候对业务系统、技术的每个细节都应该了如指掌,形成的是一整套完善的知识体系。事实上,像路过秋天这样的顶尖开发者所拥有的技术层次让我这个十年经验的开发者一阵冷汗。在过去若干年的项目开发过程中,由于太过于在乎业务细节的实现,而忽略了对于技术本质的探索,导致了我的知识体系看起来广大,实际上不过是浮在水面上的薄冰,触之即碎、太阳一晒就一点不留。甚至不留情面的说,与真正浸淫其道的专家眼里,这种仅仅停留在皮毛表面的技术积累,不过是小学生水平。
坦率来说,对于.NET技术而言,从某种意义上来讲,面临的是最差的时代。由于.NET技术主要的应用场景是各类业务系统的开发过程,虽然.NET技术的开发成本和开发效率相较于其他平台来说有不错的优势,在前期能够让企业开发者以最快的速度完成系统的建设,但是在互联网飞速发展的时代,由于高昂的windows授权费用和深度与windows的高度绑定等众多原因,让这些应用只能局限于互联网企业的非线上系统之中,鲜有胆大的企业把他应用在互联网的系统中,在加上.NET开发者梯队构成的原因,最终让大量优秀的企业纷纷选择了Java。
头部玩家们的背离,跟随者们的抛弃,让.NET技术逐渐丧失了天时、地利、人和,终于与时代脱节。
.NET Core助力传统产业转型
即便如此,.NET作为一款优秀的语言体系,在面向B端的传统软件开发领域,有着广阔的市场拥趸,在传统产业的信息化系统中占比非常大的比重。例如,许多制造业巨头或者零售业巨头,其制造信息化系统或仓储物流管理系统往往会使用.NET构建。
作为旧时代IT企业的代表,微软实际上一直处于被误读的状态。微软一直以来对社区秉承着开放的理念。犹记得多少年前听雷军讲过,他认为最伟大的IT企业,非微软莫属。哪怕是昔日金山的wps软件曾经占据了中国的半壁*,让微软的office一度措手不及,微软也从来不会发起什么3Q大战,让用户二者择一。
而微软一直以来对开发者非常的亲和,除了微软之外,也几乎找不到其他公司能够把帮助文档写得像MSDN这么详细。而微软新任CEO纳德拉提出的“云为先”的战略以及.NET Core技术的诞生,我们可以看到微软放下了心理的包袱,以更加包容的心态来迎接本该属于他的成功。而当下传统产业的互联网转型,必将迎来.NET Core发展的新契机。 作为传统.NET技术开发者们,目前是入手.NET Core的时机了。2019年,.NET 社区以及.NET Core技术将迎来一波巨大红利,我们将看到各种不同类型的技术书籍和社区活动的爆发,相信开发者们将获得更大的便利。