作者:邹溪源,长沙资深IT从业者,多年来从事.net企业级架构设计和软件开发,目前在长沙某互联网公司担任高级工程师。

https://www.cnblogs.com/xiyuanMore/p/10347346.html

昨天上午由阿里云中间件公众号和架构师小秘圈公众号发布的一篇文章《天天敲代码会使人变聪明么》在.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技术将迎来一波巨大红利,我们将看到各种不同类型的技术书籍和社区活动的爆发,相信开发者们将获得更大的便利。

架构师小秘圈

聚集20万架构师的小圈子

长按二维码 ▲

关注「架构师小秘圈」公众号

谢谢老板,点个好看↓

由优劣语言之争引起的思考相关推荐

  1. 尺有所短寸有所长-物尽其用-也谈语言之争

    首先钦佩编辑的睿智, 以及对用户心理的把握, 人气很旺嘛! 尺有所短寸有所长, 头脑清醒的人都应该懂得的道理. 其实本没有什么好争的. 程序语言, 库, 平台, 都无非是个用来实现特定目标的工具, 都 ...

  2. 大数据和python哪个好_大数据语言之争:Java和python哪个好?

    IT技术领域,编程语言不少,但是大家的目光,基本上都是盯着排名前几的热门语言的,近几年的热点,Java和Python之间也免不了一场争议.一个是IT行业常青树,一个是大数据带动热度快速上升的语言.那么 ...

  3. 从语言之争到年龄焦虑

    你有没有发现很少再有人讨论那个语言好,哪个语言更牛掰了?争论来争论去,没个结果,就像一场世纪之争. 人长大了,盐吃多了,总会长点记性的,争论那个好那个坏,就好比争论刀枪剑戟斧钺钩叉哪个好哪个坏.有两个 ...

  4. 我为什么反对语言之争?我的语言历险

      因为上一篇文章<误导程序员的喧嚣:评CSDN引导Java和Ruby之争>,引起了一些争论,我回了一些质疑,不过始终觉得没把问题讲清楚,因此再写一篇.   十几年前,我是从C++开始计算 ...

  5. 反对·支持·语言之争

    寸锐斋的一个blog: 我为什么反对语言之争?我的语言历险 话说了很多,例子举了这么两个: 1.某通信系统.用C++开发一个月,效果不好:用Foxpro三天,效果不错. 2.某桑拿管理系统.用C++开 ...

  6. C# 与 Java前景,一切不以应用场景为出发点的语言之争都是耍流氓。

    软件工程师分为两种:一种充分理解了计算机科学,从而有能力应对充满挑战的创造性工作:另一种仅仅凭着对一些高级工具的熟悉而勉强应付.而语言,只是一个沟通工具,不同的语言有不同的奇巧淫技,但比语言本身更重要 ...

  7. 字符串匹配的KMP算法和C语言代码,不需要思考就能理解

    KMP算法用于判断一个字符串是否包含另一个字符串,如果包含就返回脚标.其实KMP算法本身特别简单,我看了几篇本章都号称简单易懂,结果看得我云里雾里,直到我看到了阮一峰:字符串匹配的KMP算法,才真正看 ...

  8. 不是语言之争---Go vs Erlang

    因为 云巴 系统对高并发.低延迟的需求,我们对各个语言.平台做了很多的调研比较工作.这自然就包括致力于开发高并发应用的 Go 和 Erlang. 并发 Go 对高并发的支持通过 goroutine 实 ...

  9. Python 崛起、JavaScript 制霸 —— GitHub 2017 年度开源报告里的语言之争

    自 2008 年 GitHub 上线以来,现如今已有 2400万的开发者使用其共享代码并构建业务,为开源做了很大贡献.10 月 10 日 - 12 日,一年一度的 GitHub Universe 在旧 ...

最新文章

  1. 在 SQL Server 2K 中实现 大小写敏感的查询条件(WHERE ...),类似 Access(VB) 的 StrComp 函数...
  2. 人工智能大牛的新年启示:未来要看无监督学习、自然语言处理
  3. Github上的十大机器学习项目
  4. jsp java语法_javaweb-jsp语法
  5. 关于 VC 执行顺序
  6. Visual Studio “15”的第四个预览版发布
  7. Pandas数据排序——【按索引排序sort_index()方法、按值排序sort_value()方法】
  8. ExecutorService中submit和execute的区别转
  9. 电脑计算机软件硬盘不足,磁盘空间不足-电脑在运行程序的时候,总是要弹出磁盘空间不足,是什么原因造成磁盘? 爱问知识人...
  10. python跟java 效率_Python注重可读性和效率:与Java、PHP以及 C++语言对比谁受欢迎?...
  11. C#中的问号运算符简介
  12. Typora突然开始收费?开源免费的MarkText了解一下
  13. 【毕业设计源码】基于SSM的小程序任务调度管理信息系统设计与实现
  14. winxp计算机如何连接win7计算机,xp连接win7共享打印机的步骤,xp连接win7共享打印机教程...
  15. CTF 小白教程《从0到1:CTFer成长之路》SQL - 2 解题过程
  16. 如何使用Arcgis10.6在影像中画shp继而对影像做出裁剪
  17. PTA 计算谱半径 —— 简单题
  18. pwm波如何控制电机代码_【附代码】日本工程师带你easy电机矢量控制
  19. VS2010 C# WinForm学习视频
  20. 【Jmatpro 10.0】根据材料牌号输出应力-应变曲线

热门文章

  1. python log文件_Python logging基本使用
  2. UVA1025 城市里的间谍 A Spy in the Metro(2003 ICPC world final)(DAG上DP)
  3. 【2-SAT问题】解题报告:POJ 3678 Katu Puzzle(2-SAT问题的判定)
  4. UVA699 下落的树叶 The Falling Leaves(二叉树的递归遍历建树)
  5. hive定时清洗至mysql_hive,sqoop定时执行脚本举例
  6. linux端口找进程,Linux查看端口、进程情况及kill进程的方法
  7. go 指针变量和普通变量的转化_C语言 | 指向结构体变量的指针变量
  8. spark算子_Spark常用算子
  9. c++ primer 笔记[20190406]
  10. 消息中间件系列第2讲:如何进行消息队列选型?