由优劣语言之争引起的思考

由优劣语言之争引起的思考

#欲使其灭亡,必使其疯狂

         昨天上午由阿里云中间件公众号和架构师小秘圈公众号发布的一篇文章《天天敲代码会使人变聪明么》在.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技术将迎来一波巨大的社区红利,让我们期待2019年的到来。  

原文地址:https://www.cnblogs.com/xiyuanMore/p/10347346.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


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

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

相关文章

[LOJ #521]「LibreOJ β Round #3」绯色 IOI(抵达)(结论)

#521. 「LibreOJ β Round #3」绯色 IOI(抵达) description solution 因为点的庇护所不能为自身,题目背景在树上,有结论一定是两个相邻点互为庇护所 所以树一定要能两两完美匹配才有解 判断完有解后就是构造解了,…

微软是如何使用 C# 重写 C# 编译器并将其开源的

Roslyn 是 C# 和 Visual Basic.NET 开源编译器的代号。这篇文章将介绍它是如何从微软过去的十年至暗时刻走出来,成为开源跨平台的 C# 和 VB 公共语言引擎。我于 2005 年加入微软,也就是在.NET 2.0 发布之前,当时微软内部已经开始在讨论 Rosly…

P3332 [ZJOI2013]K大数查询(整体二分做法)

P3332 [ZJOI2013]K大数查询 题意: 题解: 利用整体二分来做,这个题和P3834 【模板】可持久化线段树 2的区别在于本题的修改是区间修改,所以将里面的树状数组改成线段树就行,区间修改区间查询 但是不知道为什么我调了一阵子也不对…

[APIO2020]交换城市(交互+kruskal重构树)

[APIO2020]交换城市 description solution 如果u,vu,vu,v存在于一条链上(只有两个点度数为111其余点度数为222)则无解,否则必有解 如图,不管是哪个点度数>2>2>2,都可以有解 以蓝色为例,第二个…

如何在ASP.NET Core程序启动时运行异步任务(1)

原文:Running async tasks on app startup in ASP.NET Core (Part 1)作者:Andrew Lock译者:Lamond Lu背景当我们做项目的时候,有时候希望自己的ASP.NET Core应用在启动前执行一些初始化逻辑。例如,你希望验证配置是否合…

扫描线讲解

参考文章: 线段树扫描线(有关扫描线的理解) 线段树扫描线(基本原理) 扫描线 第二个文章里面的图很生动: 我总结一下就是:将所给图形的横坐标全部记录,纵坐标记录为扫描线 然后对与…

梁迪:我为MVP骄傲,《微软最有价值专家奖励计划介绍》附专题视频

题记:有些事情,比 MVP 更加不朽,浩气长空,日月星汉,我们为 MVP 和那些心目中的“MVP”感到骄傲。微软 MVP 是一种追求,不必要去强求,但 MVP 必定是俱乐部发展的根基础。火车跑得快全凭车头带&am…

P3295 [SCOI2016]萌萌哒(DP+倍增)

P3295 [SCOI2016]萌萌哒 description solution 强制部分区间相同,很容易就想到了并查集,直接暴力并查集合并是O(n2)O(n^2)O(n2)的 只需要考虑那一个数据结构将其转化成O(nlog⁡n)O(n\log n)O(nlogn)的 树之类的就不考虑了,一段一段的区间…

【恭贺新春】2019年春节放假

2019年放假通知致全体微友: 2019年2月5日(正月初一)至2月8日(正月初四)春节放假,共4天,小编停止更新公众号信息。敬请相互转告。值此新春佳节到来之际,“dotNet跨平台”给大家拜个…

C - Insertion Sort Gym - 101955C

C - Insertion Sort Gym - 101955C 题意: t组数据,每组数据给你n,k,q,让你求存在多少合法的1~n排列 合法要求: 对排列的前k项进行排序,使得整个序列中最长的递增子序列长度为n-1 题解&#x…

华为云.NET Core支持情况调查

各大公有云都提供了开发者开发的SDK,今天我们来看看华为云对.NET Core的支持情况怎么样? .NET SDK地址 https://developer.huaweicloud.com/sdk#.NET华为云的.NET SDK相比其他语言少的可伶,而且这几个SDK还不支持.NET Core。SDK的支持实在太差…

[2021-07-19 内测NOIP] 操作(状压DP),异或(字典树),等级(线段树),矩阵(DP)

[2021-07-19 内测] NOIP操作descriptionsolutioncode异或descriptionsolutioncode等级descriptionsolutioncode矩阵descriptionsolutioncode操作 description 有n堆石子,每堆石子都有一定的数量,第i堆石子的数量用Ai表示。 任意两堆石子均可合并&…

.NET和Java之争

这几天连续有多篇文章诋毁.NET,这类文章我十几年前就看得多了,只不过十几年前是C和C之争,C和Java之争。我从来不理这类文章,因为这类口水战并没有什么实际意义。然而接连收到多位粉丝私聊说,主席,你应该写点…

线性代数一之矩阵转向量随机化求解——神奇的矩阵(BZOJ)+向量内积

向量随机化神奇的矩阵descriptionsolutioncode[NOI2013]向量内积descriptionsolutioncode矩阵既可以看成是一张数位表,也可以看成是若干个行向量或者若干个列向量的向量表神奇的矩阵 description solution 暴力做A∗BA*BA∗B会达到n3n^3n3的复杂度,难…

潘淳:国士无双《微软技术俱乐部(苏州)成立大会暨微软技术交流会介绍》附专题视频...

题记:凡我赶不上的,我就在未来等他,随时等待捕捉那个趋势的的到来。2019年立一个FLAG,加入一个成长性组织,一个能让我学习使我成长的平台。2019年你和我都将亲历这个组织的到来,一个属于苏州程序员自己的大…

ASP.NET Core中借助CSRedis实现安全高效的分布式锁

引言最近回头看了看开发的.NET Core 2.1项目的复盘总结,其中在多处用到Redis实现的分布式锁,虽然在OnResultExecuting方法中做了防止死锁的处理,但在某些场景下还是会发生死锁的问题,下面我只展示部分代码:问题&#x…

L Machining Disc Rotors

L Machining Disc Rotors 题意: 圆心为(0,0)半径为R的圆,现在被被n个互不相交的圆切割(圆心和半径会给出),保证这n个彼此之间不会交叉,保证n个圆中不会有某个包含整个大圆的情况。问切割后大圆剩余部分的直径(即两点…

线性代数二之矩阵加速DP——数学作业,Arc of Dream

矩阵加速数学作业descriptionsolutioncodeArc of Dreamdescriptionsolutioncode数学作业 description solution dpdpdp状态转移方程,dpidpi−1∗10lenii(modM)dp_{i}dp_{i-1}*10^{len_i}i\pmod Mdpi​dpi−1​∗10leni​i(modM) nnn巨大,分段矩阵加速 …

Shadow Properties之美(二)【Microsoft Entity Framework Core随笔】

接着上一篇Shadow Properties之美(一),我们来继续举一个有点啰嗦的栗子。先看简单需求:某HR系统,需要记录员工资料。需要记录的资料有:员工号(规则:分公司所在城市拼音首字母&#x…

线性代数三之状压DP的矩阵加速——Quad Tiling,Bus公交线路

状压与矩阵加速的藕断丝连Quad Tilingdescriptionsolutioncode[Hnoi2010]Bus 公交线路descriptionsolutioncodeQuad Tiling description solution 设dpi,S:dp_{i,S}:dpi,S​: iii列的状态为SSS的方案数&#xff0c;最后答案为dpn,(1<<4)−1dp_{n,(1<<4)-1}dpn,(…