Java与。Net的世纪之争:C#在TIOBE排行中接近Java,Java面临威胁?

发表时间: 2023-12-04 10:30

去年12月Java跌落TIOBE排行榜前三,令许多开发人员大跌眼镜。于是各大社区,发出“Java 已死?”,“Java 正在最后的谢幕”的悲鸣。从11月份榜单来看,Java 相较于 C++ 市场份额,相差已经超过2%,与 .NET 也相差不过1% 。这值得让人深思,但是今天我们换个角度去看Java 和 .Net 这场“世纪之争”。

“世纪之争”——跨世纪的羁绊

为什么说这是一场世纪之争呢,我整理了一张早期Java与.Net 的早期发展史,应用软件开发的方向与“时代背景”:

"Oak" 是 Java 编程语言的最早的名字,它在 1991 年,由 Sun 公司的工程师 詹姆斯·高斯林(James Gosling ,后被尊称为Java之父)和他的团队开发的一种新的编程语言。Oak最初是为嵌入式系统的消费电子产品(例如数字电视、机顶盒等)而设计的。

从1991年World Wide Web 的提出;93年第一款图形化网络浏览器的发布问世;再到95年Window 95系统发布,它内置了 TCP/IP 协议。全球电商巨头亚马逊也在94年成立,这象征着互联网浪潮正在悄然兴起,或许詹姆斯·高斯林和他的团队嗅到了 Oak 在互联网应用的前景,于是改造了 Oak 。于1995年5月,Oak 正式改名为 Java 问世。

在当时,微软的主要业务和精力并未放在开发语言和开发生态的建设上,它却在另外一个赛道,如火如荼的进行着疯狂收割:

请收下我的膝盖吧,不得不说俺们村东头王大婶家的母猪,都没有这么高产~

上面说法到此为止。“倘若我拿出这个,阁下又该如何应对呢?”

的确,Java 在桌面应用开发领域相较于 .NET 生态曾经显得相对不那么出彩。尤其是在 Visual Basic 时代,Java 的可视化开发环境相对较弱,Swing 框架的出现并没有改变这一状况。相较于 .NET 提供的可视化设计器和规范化的桌面应用开发经验,Java 在这方面显得有些力不从心。 在桌面应用开发上,Java 生态长期缺乏一个统一的标准和直观的可视化设计器,这使得使用 Java 进行桌面应用开发相对繁琐。

这开发经历应该谁体验谁明白,不过也是一个宝贵的开发经验,可以在简历里留下浓墨重彩的一笔~

胜时者昌,得势必胜

命运的齿轮,从来都会眷顾看得清大势者。

互联网的兴起是那个时代的大势,这场数字革命的齿轮烙印出人们新的生活和工作方式。同时20世纪末正是迈入信息时代,企业需求高效、可靠、跨平台的应用来满足日益复杂的业务需求。正是在这个背景下,Java作为一门强大而灵活的编程语言迅速崭露头角,成为企业级应用的不二选择。

同时期的微软正在靠贩卖PC系统的Key,赚的盆满钚满,成就了当时的世界首富。

在一次采访中,有人问比尔·盖茨,如果他在地上看到100美元,他会捡起来吗?比尔·盖茨的回答是否定的,他说他在地上看到100美元的时候,不会去捡,因为对于他来说,时间更宝贵,他可以花更多时间去做更有意义的事情。请收下我的膝盖~

微软的商业帝国,在那个时期的确是及其完美,看似是坚不可摧。最终走向了一个偏离企业、偏离开发者的邪路,似乎没有什么是通过收费解决不了的。

在过去,企业在选择和采用操作系统、软件和其他技术工具时,需要考虑与其相关的成本核算。在微软的生态系统中,许多软件和服务都是商业性质的,并且需要企业支付高昂的许可费用。这些费用可能包括操作系统许可、Office套件、数据库软件(SQL SERVER)、服务器(Windows Server)许可等。

所以,我们再看看另外几条线上的战况。

服务器系统(剑指 Windows NT/Windows Serber):

  • 1991年: Linus Torvalds发布了Linux内核的第一个版本,这标志着Linux项目的开始。
  • 1992年: 发布了Linux内核的1.0版本,使其更具实用性和稳定性。
  • 1993年: 形成了第一个真正的Linux发行版,即Slackware,由Patrick Volkerding创建。此外,Debian项目也开始。
  • 1994年: Linux 1.0内核正式发布,此时Linux已经在开源社区中引起了广泛关注。
  • 1995年: Red Hat成立,推出了Red Hat Linux发行版,奠定了企业对Linux的支持和采用基础。
  • 1996年: 发布了Linux 2.0内核版本,引入了对Symmetric Multi-Processing(SMP)的支持,使Linux能够在多处理器系统上运行。
  • 1998年: 诞生了KDE桌面环境,提供了更友好的图形用户界面(GUI)。
  • 1999年: GNOME桌面环境的首个版本发布,为Linux提供了另一个流行的GUI选择。

这一时期,Linux逐渐从一种由爱好者和志愿者推动的操作系统演变为一个具有广泛支持和采用的系统。企业对Linux的认可增加,使其在服务器领域取得了显著成功。同时,Linux社区的发展也为其后续的快速成长和在不同领域的广泛应用奠定了基础。

尤其是到了20世纪末,21世纪初,Linux 尤其是在服务器和企业领域。虽然在桌面市场上,微软Windows仍然占据主导地位,但Linux在服务器和高性能计算领域获得了很大的成功。

妥妥的偷塔成功啊,开源改变世界!这的确就是是蝴蝶效应,在移动互联时代类UNIX操作系统的确给微软上了沉重的一课。

数据库(剑指 SQL SERVER):

  • 1995 年: Michael Widenius 和 David Axmark 创立 MySQL AB 公司,正式开始 MySQL 数据库管理系统的开发。
  • 1995 年: MySQL 1.0 版本发布,标志着 MySQL 的首次正式发布。在这个时期,MySQL 主要是为个人和小型组织提供的轻量级数据库解决方案。
  • 1996 年: MySQL 3.19 版本引入了一些重要的特性,包括支持多表联接(JOIN)和子查询。这些功能使 MySQL 在处理复杂数据结构时更为强大。
  • 1997 年: MySQL 3.22 版本发布,引入了 InnoDB 存储引擎,提供了事务支持,这对于处理事务性数据是非常重要的。
  • 1998 年: MySQL 3.23 版本发布,引入了新的查询优化器和更多的性能改进,使 MySQL 在性能方面更为出色。
  • 1999 年: MySQL 3.23.19 版本支持索引和查询性能的改进,增强了数据库的性能和可用性。
  • 2000 年: MySQL 3.23.37 版本发布,继续改进性能和稳定性。MySQL 3.23 系列成为当时最为流行的 MySQL 版本之一。
  • 2001 年: MySQL AB 公司发布 MySQL 4.0 版本,引入了更多的功能,包括存储过程和触发器等。
  • 2003 年: MySQL 4.1 版本发布,引入了支持子查询的改进语法、UTF-8 字符集和更多的性能优化。
  • 2005 年: MySQL 5.0 版本发布,带来了重要的变化,包括存储过程、触发器、视图、游标等功能的完善,以及 InnoDB 存储引擎的更多特性。

这就为早期的 Java 打下了基础,其跨平台特性使得开发人员可以一次编写,多平台运行,极大地提高了开发效率。其强大的面向对象特性和丰富的生态系统,使得Java成为构建大型、复杂、可维护企业级应用的理想工具。互联网企业、金融机构、电商平台等各行各业都广泛开始采用Java来支持其关键业务。

写在本章最后:

这场“世纪羁绊”的确Java完胜,与其说是 Java 的胜利,不如说是开源生态的胜利!开源的帝国坚不可摧,精心构造的城墙不看一击。

感兴趣的请关注、点赞、分享,进行三连,你的鼓励是我写作的动力。