这个世界,自古是用户驱动资本,资本驱动变革,变革造就生态。
遥想当年,DOS 程序员疯狂的鄙视拖鼠标操作计算机的行为,仿佛可视化操作, 那就是在离间了程序猿与机器之间关系,所有的程序员都在以了解多少中断指令为荣,觉得这就是未来的密码,但是后来都知道,可视化的 Window 系统风靡世界,老百姓没人愿意麻烦,选择了它,然后程序猿不得不改行,学习 Window 下的编程,改为背诵 Window 下消息类型。
是原来的 DOS 技术栈不好吗? 我觉得 TC2.0 也很好用,但是没有用,一个技术栈、或者叫生态,必须有承载的抓手才行,很遗憾,可视化的操作系统革了第一代 DOS 技术栈的命,或者说底层技术和用户选择革了第一代 DOS 技术栈的命, 以此为代表的 Tourb 系列,很优秀的情况下,不知不觉就没人用了,这一点,很像科达。
Window 操作系统的横空出世,引来了 PC 时代, 单机游戏,家庭影音,工程计算等等, PC 时代的需求,造就了 PC 时代的单机程序的形态,以此 VB、VC、VF、Delphi 大显身手,拼单机性能优化,开发简洁度,以一个程序论英雄,关键是,用户关心和喜欢这些,那个时代,如果魔兽争霸启动要个 1 分钟,那肯定就没有后面魔兽世界什么事情了。那些技术,就是那时候的生态,现在不用了,不是这些技术过时了,而是承载这些应用层的用户模式过时了,换句话说,过时的是 PC 的时代,而不是这些技术,其实有一些底层技术,当年的研究成果目前依旧为大佬所用,只是普通应用层开发人员不用而已。
Html 诞生于 1990 年,Java 诞生于 1994 年,为什么这些语言在开始的 10 年间不温不火,用得人也少,那是因为它们是为下一代而生,虽然具有前瞻性,但是决定他们地位的底层时代还没有来。当时很多用的人,也是抱着尝鲜的态度去用,用完就一顿惬意吐槽,与 C/C++相比性能太差,啥也不是云云, 现在看,群众的眼睛,也未必是雪亮的。
时间一晃到了 2007,智能手机横空出世...
老百姓告别了大哥大,突然发现这个东西可以,我喜欢,比电脑高级、方便,还显档次,于是不懂技术的老百姓们再一次决定的 IT 技术的新时代,即互联网时代的到来!
互联网时代的两大特征:
一、前端设备多样化、版本碎片化 ;
二、交互业务复杂化、服务端业务承载巨量化;
这两个特征引发的新诉求,直接把曾经在 PC 上横得一撇的技术栈(VB、VC、Delphi 们)打懵了。
面对客户端: 那些一个个貌似能精确到指令级调优的静态编译程序,一下子要编译好几个版本,甚至好十几个版本才行,而且部署还经常因为系统环境缺斤少两而报错,然后用户一顿骂,什么破玩儿。
面对服务端:之前在互联、通讯,承载巨量数据处理、集群化关联上,由于不是重点,并没有相应的研究。
然后大家就懂了,你很优秀,但是我们不需要你了,那个时代的英雄们,该落幕了。
反观 Java 和 Html,这两位小兄弟,由于一开始就跨平台的设计,而且本身就为通讯载体的设计,在互联网时代,诸多优点立马显现,于是,咸鱼翻身,青铜变成了王者,那时候还没有人把 Java 捧上天,更没有人对 Html/JS 盲目崇拜,但是大佬们都开始研究,研究它们怎么更好的落地为互联网时代,好用的解决方案,于是新的生态开始形成...
微软这次似乎有些后知后觉,虽然比尔盖茨最后也看到了未来,90 年代末开始疯狂挖人,但是直到 2002 年,才出了.Net 1.0 第一个版本,关键是它面向这个时代的底层用途,Java 已经实现。
竞品之间,如果大致相同,那就不是降维打击,不是降维打击,那就拼细节!
PK1: 面向 PC,.Net 完胜 Java。 (但是无关紧要,因为 PC 时代要没了)
PK2: 跨平台, .Net 惨败 Java。 (大家都是.Net 跨平台是罪过,其实不是,那时候 Window 平台在网络服务器上的表现太差才是罪过,收费 + 不稳定,谁用?)
PK3: 面向移动端,.Net 完败 Java (特指,2002-2016 这个时代)
PK4: 有以上三点,往下还重要吗......
于是,大的环境理所当然趋向于 Java, 很多人开始学 Java, 属于 Java 的王者时代终于来临。
于是在中国, 一个很神奇的逻辑开始生产,Java 强,是因为学 Java 的人多,Java 的生态好, Java 可以搬抄的解决方案多.....
但是技术领域,话语权永远在底层技术上,单纯的应用层生态上,再怎么优化、丰富,也是量变,不是质变。
底层技术造就新的用户形态,引发底层革命,同时就会毫不留情的革了应用层技术的命,不管你愿意还是不愿意都是如此; 而不幸的是,Java 和 C# 以及后面的 Python、GO 都只是应用层语言,其实本身在面对时代的降维打击时,都没有话语权。
2008 年,云概念开始产生,而后人工智能, 2020 年疫情暴发,又引发了虚拟化的热潮, 目前,元宇宙的概念如火如荼,这说明,这个躁动的世界,又开始要变了。
未来,肯定是一个高度人工智能化的云世界!
为什么这么说呢?
第一、百姓们不喜欢聪明的机器吗? 答案肯定是热烈欢迎。
第二、百姓们不喜欢更加真实的虚幻体验吗? 答案肯定是非常喜欢,甚至沉迷不拔。
第三、靠目前的框架,每个公司自己实现人工智能应用现实吗 ? 答案肯定是不现实,未来只能调用智能云供应商的云接口。
第四、人工智能支撑起的未来物联网世界,你不向往吗? 答案是打死我都不信,我反正是很向往。
于是乎,你会发现,未来写程序,慢慢开始倾向于调用云接口实现功能, 然后慢慢甚至开始调用云界面、云功能、云系统...
你可能会问,大佬们为什么这么愿意发展云? 兄弟们,云可是按次数、按时长收费的,你的用户量一上来,这么盆满钵满,而且还有竞争门槛的事情,谁不愿意干,资本为何不愿意砸钱?
所以,我们现在看到了国内外大佬们在云领域、人工智能领域的疯狂厮杀,而且现在感觉好像没我们太多的事,那只是因为他们地位还不稳,基础还不牢,所以还不敢露獠牙太早。
回归主题,真正的未来世界来到时,我们需要什么样的语言?
答案肯定是与智能化云时代契合的语言, 然后回头再看,面对未来时代,Java、C#,Html5 现在所有的跨平台优势,还重要吗? 我想未必,因为这些优势会沦为曾经的 C/C++ 静态编译的性能优势一样, 很棒,但是不重要。
2010 年, 微软开始搞 Azure 云平台, 2016 年,微软开始搞.Net Core ,跨全平台, 然后貌似一下子愿意牺牲版权、放弃只对 Window 加持,然后好像突然变得开源、包容、免费了,而且还不遗余力优化性能,一个版本一个版本持续更新,目前都更新到.Net 6,然后立马又搞.Net 7, 为什么?
有人说那是微软为了抗衡 Java, 占领开发市场。
这么说,对,也不对,表像上是对的,但是实际上,现在这种环境下,不计成本对抗 Java,有什么好处, 赔本赚吆喝?
而且,有没有发现,在.Net Core 包括新的.Net 5, .Net 6 ...的版本中,微软对云开发支持的比重在快速增加,高调宣传, 在开发工具层面,微软甚至是要抱着赔本也要打造好的决心,甚至在移动客户端,.Net 也开始几乎全平台支持,甚至包含 IOS 这种封闭的系统,微软都不放过, 而在服务端,.Net Core 性能的持续优化,框架打造有目共睹,不断提升...
显然,近几年画风突变的.Net 战略是有深层次原因的, 这是微软在为未来的云时代、元宇宙时代做铺垫,现在与 Java PK 胜败与否,微软甚至都不是十分在意,关键是打好基础,立足未来
。
人工智能的云时代到来, 现在所谓的服务端,将沦为云时代的接口调用客户端, 现在基于网页的 2D 客户端,很有可能被基于虚拟现实的新的 3D 浏览器代替!
所以前后端又一次面临新的革命,在那个时代,众云云集,虚幻与现实交错, 现在的 Html5 和 Java 沉淀的厚厚的生态还重要吗? 只能再套用一次台词:对,很优秀,但是不重要
。
于是,C# 与 Java 又一次站在了同一起跑线,而这次,甚至 C#还占了些先机,Html 可能最惨,因为它所依赖的 2D 浏览器生态在 3D 化世界可能都会被边缘化,没有了土壤,Html 可能被彻底革命掉。
而这一次比拼,细节发生了根本变化:
细节 1: 跨平台 C# 平 Java
细节 2: 简洁高效 C# 胜 Java
细节 3: 云生态 C# 胜 Java (.Net Core 内置 对 云支持)
细节 4: 3D 层生态 C# 胜 Java (C#低迷时代,就是靠 Unity 3D 的开发,支撑起了一篇)
相比之下,优势如此明显, 未来,持续性的战略加持,国外大佬们重新实践,全新的元宇宙生态,便会悄然崛起,而当这一生态传导到咱们这边,有可能你会惊奇的发现,呃,这一次的王者,竟然是 C#了。
当然,万事万物都在发展,每种技术也都会自我革新,还是那句话,至于最后谁是所谓的王者,其实还是得看谁承载的技术底层,更贴近用户,更引领未来!
语言好坏,与语言有关。
语言成败,与语言无关!
本文来自转载
原文作者:邪恶的二进制
原文标题:大胆推测:未来的王者,或属于 C#
原文链接:https://zhuanlan.zhihu.com/p/499713602