从.NET看微软的焦虑

节日没事,就想聊聊微软的NET。

 

1.孩子静悄悄,必定在作妖

截止目前,微软的市值达到1.85万亿美元,按说,这样一个宙斯级的巨无霸应该过的非常舒坦,

但是,和微软市值成鲜明的反差,我们从.NET的发展感觉出微软的焦虑。这种焦虑来源于微软在多个垂直领域里的强烈竞争。特别是在移动领域。

所谓:孩子静悄悄,必定在作妖。当过妈妈的都知道,如果妈妈发现小孩子一直静悄悄,那可不是好事,因为那意味着孩子肯定又在“干坏事”了。

人与人国与国都是这样,越是强调什么就表示越不是什么。当你越是强调你和某人是好朋友,就表示你和某人已经有了裂痕。就像当中国越是强调“中美同向而行”时,就越表示当前中美不是同向而行。

同样的,用在.NET身上,我们能看的出,微软每天都在呼喊:来吧,来用我把,我非常好。

我每天升级,我从.NET升级到1.0,升级到2.0,升级到3.0,升级到4.0。。。一直升级一直更新一直扩展新功能,而且还开源。

我支持Windows,支持Linux,支持Mac,支持Android,支持各种设备。你要开发任何设备,我NET都支持,来吧,来用我吧。

但是,虽然这样,这似乎仍打不动开发者的“芳心”。

 

2.两大巨头都建立了自己的护城河

 几十年来,微软通过Windows一直垄断了桌面电脑操作系统,但是我们不得不承认,我们现在花在移动端上的时间越来越多,

微软错失移动互联网成为了不可弥补之遗憾,而两大巨头----谷歌和苹果都已经建立了自己的护城河。

 

2.1谷歌的Android与Kotlin

谷歌的Android主要采用Java开发,十多年来,谷歌逐步完善了Java在Android上开发的霸主地位,其指标性的标志是类库逐渐完善(见下图)。

这种生态完全可以媲美微软.NET类库在Windows上的开发作用。

再加上与Androi Studio的整合以及Google Mobile Service的绑定。

谷歌推出了一整套完美的解决方案。在这种情况下.NET要从谷歌虎口抢食,势必难度极大。

2.2 Kotin(还有Go语言)

你微软不是开源了.NET了吗?那谷歌也制作了Kotin语言,并提供强大的类库支持。

你微软NET开源,我Kotin也开源。 

你微软NET支持泛型,我Kotin也支持泛型

你微软NET支持多平台,我Kotin也支持多平台(android/windows/mac/linux都支持)。

你微软的Typescript可以转为Javascript,我Kotin也支持Kotin转为Javascript。。

从很多方面比较,Kotin的第一感觉就是阻击NET的势力扩张。

就像春晚,我可以不看但是你不能没有。同样,Kotin可以不好用但是绝不能没有。

梦想重要有的,万一Kotin火了呢?

 

 

2.3苹果的Object-C与Switf

和谷歌类似,苹果自己建立了一套基于Object-C的体系结构,

在这个封闭圈里,利用Object-C语言与XCode Studio开发环境,苹果自己打通了苹果手机,苹果电脑,苹果手表,苹果电视等的生态圈。

换句话说,在这个自己的生态圈里,苹果自己玩,大门一关,不让别人进来。

 

2.4 Swift语言

Swift 是苹果推出的编程语言,专门针对 OS X 和 iOS 的应用开发。Swift 在各个方面优于 Objective-C,也不会有那么多复杂的符号和表达式。同时,Swift 更加快速、便利、高效、安全。 
Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。 

总之,Swift也和NET类似:

Swift也是开源的,是跨平台的(windows/android/ios都可用),也支持各种现代编程(泛型、异步、网络编程等),

另外,养子不如亲生,作为苹果的亲儿子,毫无疑问,苹果以后还会继续扩充Swift的功能,充实其类库。

 

 

从上面可以看到,作为开源,跨平台的NET和Kotin,Swift竞争中,并没有十足的优势。

 

3.五大手机制造商的势力崛起

在PC时代,Windows一统天下,所有电脑制造商都要看Windows眼色行事,但是到了手机时代,风向变了,Android开源了,这使得手机制造商可以从底层修改源代码来为我所用。

就算是谷歌都无十足的把握来掌控整个Android系统。

如果做个比例,这犹如中国历史上的“春秋战国时代,周天子名义上是天子,但是其实握有实权的地方诸侯才是真正的霸主”。

而目前全球手机制造商基本上就五家:三星,苹果,华为,小米和Oppo(Vivo属于Oppo系统)。这5家犹如“战国五雄”,每个人都有自己的底盘。

因为手机和PC最大的不同是:他是私人的,而且是其它设备的中心。

想象一下:你除了用自己的手机玩游戏,购物办公等通用的操作,还有更重要的IoT。

你可以用手机控制电视,洗衣机,空调,电冰箱等。在这个万物互联的时代,手机是核心。

也正是如此,这五家巨头都在打造自己的生态系统。

以小米为例,你要用小米手机吗?你买了小米手机,那你可以用小米电视,小米洗衣机,小米路由器,小米空调。。。。

所以,手机制造商决定开发人员的要求。

不管是小米,华为,Oppo还是三星,清一色的,后端核心都是Java(外加部分C/C++,特别是华为多用C++)。前端可以用多种语言,包括JS。

而就算是华为推出的鸿蒙系统,也主要以Java+C++为主。 这让微软的.NET有力无处使。

 

 

 

 

4.机器学习领域,Python异军突起

 大数据、人工智能AI、机器学习ML等领域,近几年成为热门行业,在这里,Python异军突起。微软虽然推出了Machine Learning(NET.ML),但是毫无疑问

Python才是主流。特别是AI的领军人物谷歌的tensorflow和百度的paddlepaddle都使用Python作为教程。

用过Python的人都知道,Python最大特点:简单,强大。

大数据最大的特点就是2个:(1).数据量大 (2).对数学要求高

而Python通过第三方库,例如python numpy库,做了大量扩展,对于 实数、复数、矩阵、微积分、统计函数、复变函数等都提供了大量库。

在这里,使用压倒一切。你不用给我说类,说继承,说封装。那不是工科所关注的,他们关注的是结果。

例如,我给你一个数学公式,f(x)=a^2+bx+c 你给我画出他的曲线图来。

如果是.NETer,怎么办?你要让我用System.Drawing类,先自己定义Point类,设置颜色SetColor(),再划线Drawing(),对了,用完了对象要Dispose()?工科生要吐血了。

这种复杂的工作,在Python里,例如使用plotly作为工科数学计算,几行代码就可以搞定。

换句话说,NET在新兴领域受到考验。

 

5.自动驾驶领域也与微软/NET无缘

车载操作系统将是手机之后另外一个需要关注的特点。 在国内,华为发布打造具备确定性低时延能力的实时车控操作系统,中兴也发布了车载系统,还有百度的阿波罗Apollo,苹果推出了CarPlay车载系统,

谷歌推出了Android Automotive,以及三星、微软等都推出汽车操作系统。但是最终可能只有三家胜出:

1.百度的Apollo  2.苹果的CarPlay 以及谷歌的 Android Automotive。

车载操作系统进一步延伸就是无人驾驶。这对操作安全性要求极高,另外还要打通汽车制造的上下游产业,没几家公司能玩得起。

苹果是自己的生态圈,谷歌有Android作为加持,而百度Apollo不是最好的,但是百度的优势是中国有全球最大的汽车消费国,可以提供海量数据。

因为无人驾驶,需要太多传感器、视觉技术知识,需要大量数据积累,这是百度的优势。

而在开发方面,Apollo使用的是Java与C++。

 

 

6.游戏行业最赚钱的是腾讯

除了上面说的,据国外报道,目前游戏行业,最赚钱的游戏公司是腾讯。其次是索尼和苹果,微软排在第四。

 

 

 

7.微软失去对浏览器的控制权

微软浏览器Internet Explore已经过时,Edge也已经采用Chrome内核。虽然浏览器不赚钱,但是却是一个企业实力的标志。

我们常说:一流的企业卖标准,二流的企业卖品牌,三流的企业卖产品,四流的企业卖苦力;

微软失去对浏览器的控制权,这会让很多行业标准不再由微软决定。例如WebAssembly怎么执行依据不是微软说的算,所以他推出了

ASP.NET Core Blazor尽可能掌握主动权。 但是从本质上说,现在的微软Edge浏览器和我们现在用的QQ浏览器,360浏览器已经是同等水平。

 

 

 

8.微软在云服务和办公Office365上具有优势

上面说了为了面临的竞争者,但是微软在传统的Windows+Office具有绝对优势外,

特别是在云服务和Office365也具有绝对的主导权,份额也在不停的增加。

但是,尽管如此,这不足以支持微软帝国全部的业务,毕竟,云租用亚马逊云才是老大,而Office365也并不是不可替代。

 

由于在移动互联网面临的调整,这或许才是微软焦虑的原因,

这体现在NET上,就是不停的扩张NET的功能,希望吸引更多开发者。

*最后,微软仍然是巨无霸,就市值来说,微软市值基本上等于“阿里+腾讯+百度”三者和。

 

 

 

 

 

附:我对NET的一些看法

上面介绍了,或许微软的焦虑,导致微软不断扩充NET的功能。但是,不断膨胀的NET又让人望而却步。这就产生了矛盾:NET越来越强大但讨论的人越来越少。

我本身是非常喜欢NET的,但是事实上,就算是NET大本营的博客园,关于NET Core的讨论也是越来越少(除了一些重量级的人员),一枝独秀不是春,百花齐放春满园

那么问题出现在哪里?个人感觉有一下几点:

(1)用过Java的人都知道,Java分为三个版本 Java SE(标准版),Java EE(企业版)和Java ME(微型版),Java的定位非常简单:初学者学习SE,入门后就会写Form程序,

进阶后使用EE编写JSP Servlet 制作网站。最后ME开发嵌入式开发,比较清晰。

但是NET的就很难说清楚了,例如 NET Framework, .NET Compact, ASP.NET,   .NET Core,  ASP.NET Core,  NET5.0 都有啥区别,或者说目的是什么?

相信很多外行人不清楚,就算内行的有时候都有点迷惑。

 

 

(2)我一直认为技术是分级的,当你VB能战胜C++就算因为简单。而现在NET Core感觉走进了死胡同。 当年WebForm虽然受到很多人耻笑,特别是ViewState臃肿,但是

WebForm提出的Page_Init, Page_Load, Button_Click的事件驱动模型编程,使用起来确实很简单。在Java里也有类似的 init(), service() destroy()声明周期模型,使用起来很简单。

但是 Asp.Net Core使用IOC和DI,服务注册等,IOC全称是Inversion of Control翻译成中文叫控制反转(感觉很拗口)进行周期控制,DI 全称是DependencyInjection翻译成中文叫依赖注入,

有问题就进行服务注册Service Add,在加上匿名委托等。 相信不少初学者,看到这些名词估计就会吓的后退。

 

(3)更新技术太快。例如Java经典的SDK7 2011年发布,到现在还在用。也许是焦虑的原因,NET 基本上每过几个月就发布一个新版本。而且,整体感觉微软的技术越来越复杂。

例如前端时间要做一个Office365开发,下载了一个SDK,结果发现,整个文件非常大,非常复杂。层层调用,层层配置。 

每次.NET Core发布,最大的感觉是除了Core新增了不少功能,就是速度。Net Core2.0比Core1.0快。 Core3.0比Core2.0快,Core4.0比Core3.0快,Core5.0比Core4.0快。

换句话说,每一次发布都打脸上一个版本,这让老用户情何以堪。

NET虽然有点坎坷,但是TypeScript却是成功的,真是有心栽花花不开,无心插柳柳成荫,

 

 

 

原文地址:https://www.cnblogs.com/mqingqing123/p/14399767.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘贴.待开发的功能:1.支持自动生成约束2.开发设置页面3.做一个浏览器插件,支持不需要下载整个工程,可即时操作当前蓝湖浏览页面4.支持Flutter语言模板生成5.支持更多平台,如Sketch等6.支持用户自定义语言模板
现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。目前我们在计算机上进行音频播放都需要依赖于音频文件。那么音频文件如何生成的呢?音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,我们人耳所能听到的声音频率范围为(20Hz~20KHz),因此音频文件格式的最大带宽是20KHZ。根据奈奎斯特的理论,音频文件的采样率一般在40~50KHZ之间。奈奎斯特采样定律,又称香农采样定律。...............
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿遍又亿遍,久久不能离开!看着小仙紫姐姐的蹦迪视频,除了一键三连还能做什么?突发奇想,能不能把舞蹈视频转成代码舞呢?说干就干,今天就手把手教大家如何把跳舞视频转成代码舞,跟着仙女姐姐一起蹦起来~视频来源:【紫颜】见过仙女蹦迪吗 【千盏】一、核心功能设计总体来说,我们需要分为以下几步完成:从B站上把小姐姐的视频下载下来对视频进行截取GIF,把截取的GIF通过ASCII Animator进行ASCII字符转换把转换的字符gif根据每
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至2022年4月底。我已经将这篇博客的内容写为论文,上传至arxiv:https://arxiv.org/pdf/2204.10160.pdf欢迎大家指出我论文中的问题,特别是语法与用词问题在github上,我也上传了完整的项目:https://github.com/Whiffe/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset关于自定义ava数据集,也是后台
因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来:视频在这里:本期内容对应B站的开源视频因为涉及的知识点比较多,视频内容比较长。如果你觉得看视频浪费时间,可以直接阅读源码:goframe v2版本集成gtokengoframe v1版本集成gtokengoframe v2版本集成jwtgoframe v2版本session登录官方调用示例文档jwt和sess
【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)
用Android Studio的VideoView组件实现简单的本地视频播放器。本文将讲解如何使用Android视频播放器VideoView组件来播放本地视频和网络视频,实现起来还是比较简单的。VideoView组件的作用与ImageView类似,只是ImageView用于显示图片,VideoView用于播放视频。...
采用MATLAB对正弦信号,语音信号进行生成、采样和内插恢复,利用MATLAB工具箱对混杂噪声的音频信号进行滤波
随着移动互联网、云端存储等技术的快速发展,包含丰富信息的音频数据呈现几何级速率增长。这些海量数据在为人工分析带来困难的同时,也为音频认知、创新学习研究提供了数据基础。在本节中,我们通过构建生成模型来生成音频序列文件,从而进一步加深对序列数据处理问题的了解。
基于yolov5+deepsort+slowfast算法的视频实时行为检测。1. yolov5实现目标检测,确定目标坐标 2. deepsort实现目标跟踪,持续标注目标坐标 3. slowfast实现动作识别,并给出置信率 4. 用框持续框住目标,并将动作类别以及置信度显示在框上
数字电子钟设计本文主要完成数字电子钟的以下功能1、计时功能(24小时)2、秒表功能(一个按键实现开始暂停,另一个按键实现清零功能)3、闹钟功能(设置闹钟以及到时响10秒)4、校时功能5、其他功能(清零、加速、星期、八位数码管显示等)前排提示:前面几篇文章介绍过的内容就不详细介绍了,可以看我专栏的前几篇文章。PS.工程文件放在最后面总体设计本次设计主要是在前一篇文章 数字电子钟基本功能的实现 的基础上改编而成的,主要结构不变,分频器将50MHz分为较低的频率备用;dig_select
1.进入官网下载OBS stdioOpen Broadcaster Software | OBS (obsproject.com)2.下载一个插件,拓展OBS的虚拟摄像头功能链接:OBS 虚拟摄像头插件.zip_免费高速下载|百度网盘-分享无限制 (baidu.com)提取码:6656--来自百度网盘超级会员V1的分享**注意**该插件必须下载但OBS的根目录(应该是自动匹配了的)3.打开OBS,选中虚拟摄像头选择启用在底部添加一段视频录制选择下面,进行录制.
Meta公司在9月29日首次推出一款人工智能系统模型:Make-A-Video,可以从给定的文字提示生成短视频。基于**文本到图像生成技术的最新进展**,该技术旨在实现文本到视频的生成,可以仅用几个单词或几行文本生成异想天开、独一无二的视频,将无限的想象力带入生活
音频信号叠加噪声及滤波一、前言二、信号分析及加噪三、滤波去噪四、总结一、前言之前一直对硬件上的内容比较关注,但是可能是因为硬件方面的东西可能真的是比较杂,而且需要渗透的东西太多了,所以学习进展比较缓慢。因为也很少有单纯的硬件学习研究,总是会伴随着各种理论需要硬件做支撑,所以还是想要慢慢接触理论学习。但是之前总找不到切入点,不知道从哪里开始,就一直拖着。最近稍微接触了一点信号处理,就用这个当作切入点,开始接触理论学习。二、信号分析及加噪信号处理选用了matlab做工具,选了一个最简单的语音信号处理方
腾讯云 TRTC 实时音视频服务体验,从认识 TRTC 到 TRTC 的开发实践,Demo 演示& IM 服务搭建。
音乐音频分类技术能够基于音乐内容为音乐添加类别标签,在音乐资源的高效组织、检索和推荐等相关方面的研究和应用具有重要意义。传统的音乐分类方法大量使用了人工设计的声学特征,特征的设计需要音乐领域的知识,不同分类任务的特征往往并不通用。深度学习的出现给更好地解决音乐分类问题提供了新的思路,本文对基于深度学习的音乐音频分类方法进行了研究。首先将音乐的音频信号转换成声谱作为统一表示,避免了手工选取特征存在的问题,然后基于一维卷积构建了一种音乐分类模型。
C++知识精讲16 | 井字棋游戏(配资源+视频)【赋源码,双人对战】
本文主要讲解如何在Java中,使用FFmpeg进行视频的帧读取,并最终合并成Gif动态图。
在本篇博文中,我们谈及了 Swift 中 some、any 关键字以及主关联类型(primary associated types)的前世今生,并由浅及深用简明的示例向大家讲解了它们之间的奥秘玄机。