0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件开发新手是选择Java还是.NET?

如意 来源:读芯术微信公众号 作者:读芯术微信公众号 2020-08-17 16:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作为软件开发新手,为自己选择未来职业生涯中将使用的平台并不容易。掌握任何一种编程语言都会花费大量的时间和精力,而这些恰恰是你最不想浪费的。选错平台可能会需要改变知识面来胜任工作,这让人们倍感压力。

在此,我帮你将选择缩小到以下两个选项:Java或者.NET。这已经是一个巨大的进步了,这两种选项都算是成功。Java和.NET都很稳定,可以用于企业级别的开发,这意味着你可能会就职于一家拥有大量资源和机会的大公司。

先来看看就业市场!截至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里创建软件的Oracle JDK(Java开发工具)和Oracle OpenJDK也是如此。这也使得Java能够与Kotlin、Groovy、Scale等编程语言合作,这些语言作为补充学起来相对简单。正如刚才所指出的,就业市场充满来自世界各地的提供给Java开发人员的工作。

听起来很不错?且慢!Java还有一些缺点,包括:

授权混乱。你可能认为通过编写一个小的“hello world”程序就算开始了Java之路,这是错误的。在真正开始学习Java之前,你需要了解这个平台上的许可,否则你可能会在交付产品之前,必须先向Oracle交付几千美金的费用来获得许可。因此首先要仔细学学Oracle JDK是什么,与Oracle Open JDK有什么不同,以及这二者与社区驱动的AdoptOpenJDK有什么不同。

你还需要了解二进制代码许可证又是什么,以及GPLv2+CPE协议能给多少权限?一官方常见问题似乎解释了许可这一情况(一个在 Oracle’s site,另一个在Java.com上),但是看起来更混乱了。

除此之外,你可以很容易地找到一堆博客文章,Quora上的提问(比如“Java还是免费的吗?”),甚至是关于这个主题的视频。但问题是:你真的想应付这一切吗?

遗留代码。许多悠久的公司都用Java编写了一些东西,作为一个年轻而充满激情的Java学习者,你可能会从事一份使用过时代码的工作,而不是学习一些新的、杰出的技术。

高竞争。职位虽然多,但你的竞争对手更多。每个研究过全部榜单的人都会发现Java位列前茅,于是又有一千个新手选择了Java。

一个更有前景的选择:.NET Framework

另外一个免费的公开源代码的开发人员平台可以让你有更好的体验——.NET。以下是它可能更适合你的原因:

1.免费、开放、跨平台

如果是五六年前,上文提到的所有特点都会使Java成为一个更好的选择。因为.NET那时完全受控于微软,而且只在Windows上运行。然而在过去几年,情况彻底转变。现在的Java在Oracle的领导下变得更加封闭,而微软的做法正好相反。

.NET是一个不需要授权费用的开源性平台。他们宣称开发人员的自由是他们平台的核心价值观之一。从目前看来,微软确实在践行他们所宣扬的价值观。

.NET平台的最新版本——.NET Core——它兼容所有主要的操作系统:Windows、LinuxiOS。其中有一些基本的.NET工具可以即时使用,还有很多的用于构建和编辑应用程序的附加组件以及第三方工具。专门为.NET构建的多个库使开发过程更加舒适。

2.所有的应用类型

.NET框架(尤其是Core版本)允许开发几乎任何类型的应用程序,无论是企业级网络应用程序、桌面或手机软件、游戏项目,甚至物联网服务或AI解决方案。

随着WebAssembly技术和Blazorframework的出现,.NET甚至可以用于构建在浏览器中运行的客户端应用程序,这些网络应用程序的客户端和服务器端代码都是用C#编写的,因此无需使用JavaScript。

3.快速进步和定期更新

.NET框架在其二十年的历史之中一直在不断发展。在过去的四五年中,它的发展速度显著加快。自2016年.NET Core发布以来,几乎每年都会有一次重大的更新。

微软计划在2020年11月发布平台的大更新——.NET 5。它会吸收先前版本的优点,成为所有开发任务的统一平台。此外,在2019年年会上微软介绍了.NET平台的路线图,这让人们清楚地了解到更新的具体时间和内容。

4.优秀的性能

多年来,用Java或者.NET/C#创造的应用程序都有类似的性能。然而,微软和许多第三方贡献者在这方面的优化上做出了重大的投资,并在继续改进。例如ASP.NET Core Web框架允许你在一台服务器上每秒处理700万个请求。据TechEmpower测试,ASP.NET Core远远领先于任何Java开发的web框架。

另一个在.NET平台上可以实现的力证——例如,一个用不同语言编写的超高速网络驱动程序。用C#编写的驱动程序展示出与C和Rust几乎相同的性能水平,这一水平略高于Go语言,远远领先于包括Java在内的所有其他高级语言。

5.C#——现代和多用途

.NET最初的设计是为了支持多种编程语言,最广泛使用的编程语言是C#(英文发音为see sharp)和F#(它提供了一种更实用的方法)。

最受欢迎和喜爱的无疑是C#——一种通用的面向对象的编程语言。它简单易学,并且广泛应用于各种软件开发,无论是企业级的解决方案还是低级的物联网和游戏项目,它使得一些在Java中过于复杂的特性变得简单。

尽管历史悠久,但C#与时俱进。C#中的一些特性,比如LINQ查询、lambda表达式、async/await异步操作都遥遥领先于其他编程语言,Java多年来仍然缺少C#中的很多要素。

.NET的不足

就像Java一样,.NET在客户端的开发也存在诸多不足,你仍可将JavaScript看作最佳选择。在ML(机器学习)和NLP(自然语言处理)应用领域,Python是第一选项。

Java和.NET是两种可靠的企业级开发的选择。Java虽然现在在所有评级中都排名第一,但它在就业市场上的竞争非常激烈,相关更新缓慢。

而.NET是一个开源的面向对象的平台,可用于开发各式各样的应用程序,并且它对未来有着清晰的规划。在2020年,.NET5 将会推出,这个更新会将以前版本最好的特性结合起来。这让学习变成一个结构优良、简单、现代的技术,更具吸引力。

二者各有利弊,无论选择哪一个,都不失为一个明智的职业抉择。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    20

    文章

    2997

    浏览量

    115671
  • 软件
    +关注

    关注

    69

    文章

    5297

    浏览量

    90874
  • net
    net
    +关注

    关注

    0

    文章

    127

    浏览量

    56982
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下部分: 1 、编程语言 熟练掌握C(C++)语言,这是
    发表于 11-28 07:48

    融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件

    *附件:ai study.zip*附件:融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件.pdf 基于开源鸿蒙编写的ai辅助学习软件
    发表于 11-12 15:38

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化的软件开发
    的头像 发表于 10-27 16:45 722次阅读

    十大北京软件开发公司推荐:有哪些优点和缺点

    十大北京软件开发公司推荐:有哪些优点和缺点
    的头像 发表于 10-04 09:44 1126次阅读
    十大北京<b class='flag-5'>软件开发</b>公司推荐:有哪些优点和缺点

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司
    的头像 发表于 09-30 09:16 2448次阅读
    2025北京<b class='flag-5'>软件开发</b>公司推荐汇总:盘点10家优秀<b class='flag-5'>软件</b>定制<b class='flag-5'>开发</b>公司

    知识分享 | 敏捷方法在基于模型的软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型的开发(MBD)具有诸多优势。将敏捷原
    的头像 发表于 07-16 16:52 1051次阅读
    知识分享 | 敏捷方法在基于模型的<b class='flag-5'>软件开发</b>项目中的应用

    主流机器视觉软件开发平台介绍及对比?

    机器视觉作为工业自动化的核心技术,其软件开发平台的选择直接影响项目的开发效率、成本及最终性能。本文将对比当前主流的视觉开发平台,包括LabVIEW、VisionPro、Halcon
    的头像 发表于 07-14 09:44 1722次阅读
    主流机器视觉<b class='flag-5'>软件开发</b>平台介绍及对比?

    嵌入式软件开发常用的软件有哪些?

    对于初学嵌入式的朋友们,会想要了解嵌入式软件开发常用的软件有些,有什么用。那么看以下常用的软件介绍。 1.Visual Studio Code 简称VSCode:它是一款由微软开发且跨
    发表于 07-03 17:06

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 1596次阅读
    基于瑞萨64位MPU RZ/G2L进行32位应用<b class='flag-5'>软件开发</b>

    找电机控制软件开发兼职

    软件开发兼职人员,我现在有一个永磁无刷电机控制,220V,需要有相关经验的人来开发,兼职费用可以议谈,产品是增压泵相关产品,有兴趣给我留言,谢谢
    发表于 05-07 17:43

    CICTCD在汽车软件开发中的革命性作用#持续集成与测试 #CICD持续集成与交付

    软件开发
    北汇信息POLELINK
    发布于 :2025年04月17日 15:36:09

    IAR发布云端平台,助力现代嵌入式软件开发团队

    该平台为嵌入式软件开发人员提供前所未有的自由度与灵活性,助力开发团队在工具选择和日常工作流中实现更高效的协作与创新。
    的头像 发表于 03-12 11:56 603次阅读

    我国软件开发者数量突破940万

    2024开放原子开发者大会20到21日在武汉举办。工业和信息化部负责人透露,我国软件开发者数量突破940万。 开源就是开放软件的源代码,在遵守许可协议的前提下,任何人都可以使用、修改甚至再发布源代码
    的头像 发表于 12-24 13:52 714次阅读

    最新Simplicity SDK软件开发工具包发布

    最新的SimplicitySDK软件开发工具包已经发布!此次更新针对SiliconLabs(芯科科技)第二代无线开发平台带来了包括蓝牙6.0的信道探测(Channel Sounding
    的头像 发表于 12-24 09:47 1465次阅读

    我国软件开发者数量超过940万

    在近日举办的开放原子开发者大会上,工业和信息化部负责人传来了一则令人振奋的消息:我国软件开发者数量已经突破940万大关。这一数据不仅彰显了我国在软件开发领域的雄厚实力,也预示着我国在全球软件开
    的头像 发表于 12-23 11:08 906次阅读