每年软件行业都会有些变化。新的框架不断涌现,工具不断更新,而有些则逐渐被淘汰。
过去五年的技术转型对我们选择的软件开发技术栈产生了重大影响。
几个指标:
没有具体数据来支持这一说法,单纯宣称.NET增长下滑是没意义的。所以让我们来看看一下.NET 9发布后的一个月里,美国LinkedIn上发布的职位情况。
请注意,我并没有说.NET正在消亡,而是认为它正在失去人气。我认为它正在失去人气。
现在的搜索结果中,职位数量方面,.NET 只比 NodeJs 高出 36%(月度)到 38%(总时间)。整个 .NET 生态系统包括 WPF、WinForms、MVC、Razor、WebForms、Blazor、Maui、Xamarin 等。如果将整个 JS 和 Java 的采用情况与 .NET 进行比较,它们的采用率都比 .NET 高 3 倍。而在所有时间段内,JS 和 Java 的采用率甚至比 .NET 高出 3 倍以上。我对 .NET 的现状仍然乐观,但这也显示出 .NET 在需求方面的真实排名,以及它在各个领域的广泛应用。
小的指标包括第三方API SDK的支持。例如,Google官方提供的Google Firebase SDK现在支持Maui或Blazor。同样,Supabase(另一个类似于Firebase的替代品)也是如此。Mailgun这个邮件发送服务提供了Go、JS、PHP和Java的SDK,但没有C#的。换句话说,C#在客户端和服务器端都没有被优先支持。虽然这只是决定命运的一个很小的方面,但可能帮助我们注意到需求的变化。
这真的吗?
.NET 在发布 .NET 6 之后仍然在失去采用。尽管大家都没有公开谈论这种下降趋势,但迹象已经很明显。微软最近一直在积极推广该框架,推出 C# 基础认证、Blazor 培训教程等。尽管宣传“.NET 比 Node 快 11 倍”,趋势依旧指向 JS 和 Python。大多数招聘岗位都更倾向于 JS 和 Python。
这是我对为什么我们观察到下滑趋势的一些想法。
.NET 为什么出现下滑趋势不稳定:
(Note: The colon is added at the end to match the English punctuation, and ".NET" is kept as ".NET" as per the expert suggestion.)
在发表我的看法之前,我想先说明这些说法不适用于游戏开发领域。使用 .NET 进行游戏开发仍然很稳定,与 .NET 一起工作依然很舒心。
对于全栈开发来说,JS 更好:
今天,我们可以完全使用C#来构建前端和后端,得益于ASP.NET和Blazor,开发人员甚至可能根本不需要写任何一行JS代码。去年Stack Overflow的开发者调查显示,Blazor仅次于VueJS在开发者中最受欢迎。
然而,最关键的问题在于整个Blazor框架的完整性。例如:SSR在处理认证时表现不佳,Blazor WASM的热重载功能需要进行一些调整,当UI变得庞大时,你又需要保持怎样的性能意识,最后,还需在Blazor的应用大小和运行时速度之间做出权衡。
虽然 MS 已经意识到了这些问题,并将在 .NET 9 中解决它们,我对此还是充满希望。不过话说回来,要说服你的老板把 Blazor 当作前端框架的选择,仅仅因为它用 C# 这一点很难说服老板。目前的 JS 框架不仅非常稳定,而且拥有出色的开发工具和优异的性能,最重要的是它们拥有庞大的社区支持。
因此,拥有 Razor 或 WebForms 应用程序的公司对 Blazor 非常吸引,而其他公司则主要选择 JS 用于前端。
2. 人工智能和数据科学的崛起
虽然你可以使用.NET进行机器学习开发,但最好还是选择像Python这样的主流语言来在这个领域建立你的职业生涯。随着人工智能的兴起,越来越多的新开发者把Python作为他们的首选语言。大学现在开始提供数据科学本科课程;此外,不仅计算机科学或软件工程专业的学生,还有人工智能专业的学生都在学习Python,就像大家一样,他们也希望重用他们的技能,因此不论是还未毕业的学生还是已经毕业的毕业生,他们主要都在寻找Python相关的工作岗位。
3. MAUI 已经太晚进入移动开发了
MAUI非常适合希望用C#进行跨平台开发并采用MVVM设计模式的开发者。不过,今天只有Kotlin Android和.NET MAUI使用MVVM设计模式,而像Flutter、Swift和React Native这样的框架则使用MVU设计模式。为什么这一点很重要?因为大多数新开发者认为MVU比MVVM更容易上手。更别提ReactJS和VueJS本身也遵循MVU模式,这些开发者更倾向于转向基于MVU的跨平台框架。
另一个原因是 Flutter 目前是类型安全的和非 TS/JS 开发人员的首选框架。Dart 与 C# 和 Java 非常相似,因此易于上手。最后,Flutter 已经变得成熟、快速,并拥有强大的社区支持,因此是一个理想的移动开发框架。
现在说到Blazor Hybrid,它是基于MVU模式,但使用的是网页技术。我觉得这种模式潜力最大,需要更多的推广才能在市场上获得成功。
结论是:
提到 .NET 在哪些方面特别优秀可能会影响公正性,特别是其中最突出的 ASP.NET Core。使用 ASP.NET Core 编写 Web API 非常健壮、用户友好且快速。EF Core 则是点睛之笔,使得 SQL 数据库的体验比其他语言中的 ORM 更加直观自然。
尽管 .NET 在与其他后端技术如 Java、Python、Go 和 NodeJS 的竞争中具有竞争力,它的采用却不够稳固。
我自己也是个 .NET 开发者,我认为 .NET 很适合后端开发。希望这种摇摇欲坠的趋势能转向对 .NET 更有利的方向。
欢迎在评论里留下您的想法。
共同学习,写下你的评论
评论加载中...
作者其他优质文章