全文共3370字,预计学习时长9分钟

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

在此,我帮你将选择缩小到以下两个选项: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是一项免费的技术,在Java里创建软件的Oracle JDK(Java开发工具)和Oracle OpenJDK也是如此。这也使得Java能够与Kotlin、Groovy、Scale等编程语言合作,这些语言作为补充学起来相对简单。正如刚才所指出的,就业市场充满来自世界各地的提供给Java开发人员的工作。

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

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

图源:freevactor

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

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

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

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

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

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

图源: https://devblogs.microsoft.com/dotnet/introducing-net-5

1.免费、开放、跨平台

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

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

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

2.所有的应用类型

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

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

图源:https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet

3.快速进步和定期更新

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

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

图源:https://devblogs.microsoft.com/dotnet/introducing-net-5/

4.优秀的性能

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

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

图源:unsplash

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 将会推出,这个更新会将以前版本最好的特性结合起来。这让学习变成一个结构优良、简单、现代的技术,更具吸引力。

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

一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

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

  1. 全Java网管软件开发平台SugarNMS

    一. SugarNMS平台介绍 智和网管软件开发平台(SugarNMS Platform)是北京智和信通技术有限公司专为期望快速搭建可靠网管软件的企业而准备,开发平台充分利用智和网管软件已有的软件功能 ...

  2. DSDP -- 设备软件开发平台

    [size=medium] Eclispe 的设备软件开发平台是一个开源协作软件开发项目,致力于提供一个可扩展的,基于标准的平台,由美国风河系统公司(Wind River System)于 2005 ...

  3. 企业应用软件开发平台|软件开发平台有那些?

    企业应用软件开发平台|软件开发平台有那些? 一.关于企业应用软件 企业应用软件是指可以在系统软件之外的所有应用软件,为满足企业应用需求而提供的软件. 企业应用软件它不单单是软件,更是根据企业管理的理论 ...

  4. 华为云软件开发平台(DevCloud)流水线式部署Vue项目,并且通过域名访问

    一.准备环境 1.1.华为弹性云服务器(ECS)或者云耀云服务器(HECS) 1.2.软件开发平台(DevCloud) 1.3.容器镜像服务(SWR) 1.4.云解析服务(SWR) 二.软件开发平台( ...

  5. ubuntu14.04如何在线安装eclipse以及C/C++开发组件,搭建软件开发平台

    在ubuntu14.04操作系统中进行C/C++软件开发,需要安装eclipse以及CDT等各种组件,下载安装包一一安装,之后再进行各种配置可能比较麻烦,在这里推荐一种在线安装方式,安装配置较为方便. ...

  6. HiSDP —— 高效的C++软件开发平台

    目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的. 缘由 当决定采用C++编程语言去开发一个软件时,紧 ...

  7. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 文章汇总及学习指南...

    一.AgileEAS.NET平台简介 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场 ...

  8. 软件开发平台流辰信息如何为客户分忧解难?

    在数字化信息越来越丰富的今天,作为软件开发平台服务商,流辰信息如何为客户提质增产.降本增效?又凭什么为客户分忧解难,创造更大的价值? 一.以产品研发及创新为动力,夯实发展根基 俗语云:真金不怕火炼.是 ...

  9. 选择软件开发平台,“快速开发”是关键

    一.快速开发平台 传统代码级开发成本越来越高,软件的功能升级跟不上市场的变化,客户的满意度越来越低.造这方面的原因是多方面,最重要是人力成本大幅上升和企业对软件的要求越来越高,通用的软件产品已无法满足 ...

最新文章

  1. 360全景html插件,jquery实现360度全景展示特效插件
  2. 皮一皮:有钱人的品味实在不懂...
  3. 漫谈企业级SaaS的多租户设计
  4. 网络协议之:加密传输中的NPN和ALPN
  5. java. 端序_c代码测试本机处理器的端序
  6. 如何编写高性能的C#代码(四)字符串的另类骚操作
  7. firefox input file宽度失效
  8. .NET 实现并行的几种方式(二)
  9. ASP.NET教程5
  10. Unity3d中BlinnPhong光照模型注解
  11. iframe之间操作记录
  12. Android4.4 Sensor APP--HAL代码流程
  13. Linux宝塔禁止国外ip访问服务器,屏蔽国外ip访问网站代码(亲测有效)
  14. 化学实用计算机技能,实用化学化工计算机软件基础
  15. 连接局域网打印机用计算机名,如何连接局域网内共享的打印机
  16. 利用Google快讯和GoogleReader收集信息
  17. 找出成绩全及格的学生(python)实现
  18. crontab 每天凌晨12点定时器_清运队长每天凌晨3点转运垃圾,因为垃圾分类工作时间大大减少了...
  19. 2022年,软件测试还能学吗?别学了,软件测试岗位饱和了...
  20. 应用生成 rubygem Xing

热门文章

  1. Facebook成为美国四大电视台争夺观众阵地
  2. open cv平面对象检测及翘曲图像校正-基于FLANN的特征检测和透视变换
  3. 【Mysql系列】MySQL创建数据库、CURD的操作
  4. Android 报错Android - Performing stop of activity that is not resumed
  5. Unity Ugui 详解 Content Size Fitter 和 Horizontal Layout Group 的使用
  6. 查询电话联系人(包括sim卡)
  7. 英国高技术型人才流失严重 达到50年之最
  8. Altium Designer怎样秒敷铜?
  9. winForm c#导出Excel
  10. 微信分享功能不可用+不能产生回调