Java|软件开发平台之争:NET VS Java,谁是更好的选择?

文章图片

文章图片

文章图片

文章图片

文章图片
全文共3370字 , 预计学习时长9分钟
作为软件开发新手 , 为自己选择未来职业生涯中将使用的平台并不容易 。 掌握任何一种编程语言都会花费大量的时间和精力 , 而这些恰恰是你最不想浪费的 。 选错平台可能会需要改变知识面来胜任工作 , 这让人们倍感压力 。
在此 , 我帮你将选择缩小到以下两个选项:Java或者.NET 。 这已经是一个巨大的进步了 , 这两种选项都算是成功 。 Java和.NET都很稳定 , 可以用于企业级别的开发 , 这意味着你可能会就职于一家拥有大量资源和机会的大公司 。
【Java|软件开发平台之争:NET VS Java,谁是更好的选择?】先来看看就业市场!截至2020年4月 , Monster.com列出了超过4.1万份“Java开发人员”的工作 , 以及8500份“.NET开发人员“的工作 。 Glassdoor显示 , Java开发人员(不论级别和位置)的平均工资约为7.9万美元 , ASP.NET/C#开发人员为7.65万美元 。
是不是要毫不犹豫选JAVA了?也不要太快下结论 , 还是要仔细思索一下这两种平台哪一个更适合你 , 哪一个与技术未来更为密切 。
老派的Java
Java创于1995年 , 是世界上最有名的技术之一 , 常在各类排行榜拔得头筹 , 这可能也是开发人员坚持使用它的主要原因 。
Java学起来相对简单 , 也有很多免费可用的培训资源 , 还有一个庞大的社群帮助新手完成学习过程 。 Java适用于几乎每个种类的项目:网络应用、手机应用、云计算等等 。
Java是一项免费的技术 , 在Java里创建软件的OracleJDK(Java开发工具)和OracleOpenJDK也是如此 。 这也使得Java能够与Kotlin、Groovy、Scale等编程语言合作 , 这些语言作为补充学起来相对简单 。 正如刚才所指出的 , 就业市场充满来自世界各地的提供给Java开发人员的工作 。
听起来很不错?且慢!Java还有一些缺点 , 包括:
·授权混乱 。 你可能认为通过编写一个小的“helloworld”程序就算开始了Java之路 , 这是错误的 。 在真正开始学习Java之前 , 你需要了解这个平台上的许可 , 否则你可能会在交付产品之前 , 必须先向Oracle交付几千美金的费用来获得许可 。 因此首先要仔细学学OracleJDK是什么 , 与OracleOpenJDK有什么不同 , 以及这二者与社区驱动的AdoptOpenJDK有什么不同 。
你还需要了解二进制代码许可证又是什么 , 以及GPLv2+CPE协议能给多少权限?一官方常见问题似乎解释了许可这一情况(一个在Oracle’ssite , 另一个在Java.com上) , 但是看起来更混乱了 。
除此之外 , 你可以很容易地找到一堆博客文章 , Quora上的提问(比如“Java还是免费的吗?”) , 甚至是关于这个主题的视频 。 但问题是:你真的想应付这一切吗?
·遗留代码 。 许多悠久的公司都用Java编写了一些东西 , 作为一个年轻而充满激情的Java学习者 , 你可能会从事一份使用过时代码的工作 , 而不是学习一些新的、杰出的技术 。
·高竞争 。 职位虽然多 , 但你的竞争对手更多 。 每个研究过全部榜单的人都会发现Java位列前茅 , 于是又有一千个新手选择了Java 。
一个更有前景的选择:.NETFramework
另外一个免费的公开源代码的开发人员平台可以让你有更好的体验——.NET 。 以下是它可能更适合你的原因:
1.免费、开放、跨平台
如果是五六年前 , 上文提到的所有特点都会使Java成为一个更好的选择 。 因为.NET那时完全受控于微软 , 而且只在Windows上运行 。 然而在过去几年 , 情况彻底转变 。 现在的Java在Oracle的领导下变得更加封闭 , 而微软的做法正好相反 。
.NET是一个不需要授权费用的开源性平台 。 他们宣称开发人员的自由是他们平台的核心价值观之一 。 从目前看来 , 微软确实在践行他们所宣扬的价值观 。
.NET平台的最新版本——.NETCore——它兼容所有主要的操作系统:Windows、Linux、iOS 。 其中有一些基本的.NET工具可以即时使用 , 还有很多的用于构建和编辑应用程序的附加组件以及第三方工具 。 专门为.NET构建的多个库使开发过程更加舒适 。
2.所有的应用类型
.NET框架(尤其是Core版本)允许开发几乎任何类型的应用程序 , 无论是企业级网络应用程序、桌面或手机软件、游戏项目 , 甚至物联网服务或AI解决方案 。
随着WebAssembly技术和Blazorframework的出现 , .NET甚至可以用于构建在浏览器中运行的客户端应用程序 , 这些网络应用程序的客户端和服务器端代码都是用C#编写的 , 因此无需使用JavaScript 。
3.快速进步和定期更新
.NET框架在其二十年的历史之中一直在不断发展 。 在过去的四五年中 , 它的发展速度显著加快 。 自2016年.NETCore发布以来 , 几乎每年都会有一次重大的更新 。
微软计划在2020年11月发布平台的大更新——.NET5 。 它会吸收先前版本的优点 , 成为所有开发任务的统一平台 。 此外 , 在2019年年会上微软介绍了.NET平台的路线图 , 这让人们清楚地了解到更新的具体时间和内容 。
4.优秀的性能
多年来 , 用Java或者.NET/C#创造的应用程序都有类似的性能 。 然而 , 微软和许多第三方贡献者在这方面的优化上做出了重大的投资 , 并在继续改进 。 例如ASP.NETCoreWeb框架允许你在一台服务器上每秒处理700万个请求 。 据TechEmpower测试 , ASP.NETCore远远领先于任何Java开发的web框架 。
另一个在.NET平台上可以实现的力证——例如 , 一个用不同语言编写的超高速网络驱动程序 。 用C#编写的驱动程序展示出与C和Rust几乎相同的性能水平 , 这一水平略高于Go语言 , 远远领先于包括Java在内的所有其他高级语言 。
5.C#——现代和多用途
.NET最初的设计是为了支持多种编程语言 , 最广泛使用的编程语言是C#(英文发音为seesharp)和F#(它提供了一种更实用的方法) 。
最受欢迎和喜爱的无疑是C#——一种通用的面向对象的编程语言 。 它简单易学 , 并且广泛应用于各种软件开发 , 无论是企业级的解决方案还是低级的物联网和游戏项目 , 它使得一些在Java中过于复杂的特性变得简单 。
尽管历史悠久 , 但C#与时俱进 。 C#中的一些特性 , 比如LINQ查询、lambda表达式、async/await异步操作都遥遥领先于其他编程语言 , Java多年来仍然缺少C#中的很多要素 。
.NET的不足
就像Java一样 , .NET在客户端的开发也存在诸多不足 , 你仍可将JavaScript看作最佳选择 。 在ML(机器学习)和NLP(自然语言处理)应用领域 , Python是第一选项 。
Java和.NET是两种可靠的企业级开发的选择 。 Java虽然现在在所有评级中都排名第一 , 但它在就业市场上的竞争非常激烈 , 相关更新缓慢 。
而.NET是一个开源的面向对象的平台 , 可用于开发各式各样的应用程序 , 并且它对未来有着清晰的规划 。 在2020年 , .NET5将会推出 , 这个更新会将以前版本最好的特性结合起来 。 这让学习变成一个结构优良、简单、现代的技术 , 更具吸引力 。
二者各有利弊 , 无论选择哪一个 , 都不失为一个明智的职业抉择 。
留言点赞关注
我们一起分享AI学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范
推荐阅读
- 恶意软件|30000台苹果电脑遭恶意软件入侵,包括最新的M1系列
- 北大青鸟中博软件学院|程序员职业晋升规划,按照这规划,我年薪达到40万
- 代购|网络新诈骗“代购”骗子多,交友软件或社交平台上不都是朋友
- 中年|深不可测 工业软件之谜
- 前线风暴|美国批准向阿联酋出售F-35,MQ-9B等数千种武器,最引人注目的是F-35A的软件包
- 增长|金山软件第三季度营收环比下滑2%,净利润同比增长1749%
- 软件工程|自动实现开发测试运维 飞算全自动软件工程平台发布
- 金山软件|净利润同比增长1749% 金山软件新季报的表现到底如何
- 研发|河北五大工程促集成电路软件产业高质量发展
- 科技口袋|剪映零基础入门第二篇:剪辑软件剪映的音频功能怎么样
