编程时选用的程序设计语言,对软件的开发与维护的影响?

编程时选用的程序设计语言,对软件的开发与维护的影响?,第1张

CSDN 编者按“如果我们把人类文明想象成汽车的话,那么软件开发行业就相当于汽车的引擎,编程语言就像引擎的燃料。”作为一名开发者,需跟随技术潮流的发展来学习新技术。2020年,你有计划新学一门编程语言吗?

本文作者从一名架构师的角度,详细分析了7种现代编程语言的优点与功能,你对哪门语言最感兴趣呢?

作者 | Md Kamaruzzaman,软件架构师

译者 | 弯月,责编 | 伍杏玲

封图| CSDN 下载于视觉中国

出品 | CSDN(ID:CSDNnews)

以下为译文:

如果我们把人类文明想象成汽车的话,那么软件开发行业就相当于汽车的引擎,而编程语言就像引擎的燃料。作为一名开发者,今年你应该学习哪种编程语言呢?

学习一种新的编程语言无疑是时间、精力和智力上的巨大投资, 但是学习一种新的编程语言可以提升你的软件开发技术力,促进你的职业发展。

在这里,我将献上一份现代编程语言的列表,这些语言不仅有助于提高你的生产力,而且还可以促进你的职业发展,并让你成长为更优秀的开发人员。这份列表还涵盖了非常广泛的领域:系统编程、应用程序开发、Web开发、科学计算等。

什么是现代编程语言?

“现代编程语言”这个说法本身就很含糊。许多人认为Python和JavaScript等语言是现代编程语言,还认为Java是一种古老的编程语言。实际上,这几种语言大约在同一时间出现:1995年。

大多数主流编程语言是上个世纪开发的:七十年代(如C)、八十年代(如C ++)、九十年代(如Java、Python、JavaScript)。这些语言在设计上并没有考虑现代软件开发生态系统:多核CPU、GPU、快速的互联网、移动设备、容器和云等。尽管许多语言中的许多功能都已进行一些改进,如并发等,而且在不断调整自己以适应时代,但它们依然保留了向后兼容性,无法抛弃那些过时的旧功能。

在这方面,Python就做得很好(某种意义上也未必是好事),Python 2和Python 3两者之间有明确的分界线。很多语言常常会为解决同一个问题提供十余种的方法,同时又没有顾及到开发人员的感受。根据StackOverflow的开发人员调查,大多数旧时的主流编程语言在“最可怕的语言”排名都名列前茅:

如果非要在新旧编程语言之间划个界限的话,那么应该是2007年6月29日,也就是第一台iPhone发行的时候。在这之后,编程语言界发生了很大变化。因此,在本文的列表中,我只考虑2007年以后的编程语言。

为什么要学习新语言?

首先,现代编程语言充分利用现代计算机硬件(多核CPU、GPU、TPU)、移动设备、大量数据、高速互联网、容器和云的优势。大多数现代编程语言会关注开发人员的体验,比如:

简洁明了的代码(减少样板代码)

内置的并发支持

空指针安全

类型推断

简洁的功能集

降低学习难度

融合所有编程范例的最佳功能

本文列表的许多编程语言都带有革命性地变化,并将永久地改变软件行业。一些已成为主流编程语言,还有一些则有望取得突破。因此选择这些语言作为第二种编程语言是明智的做法。

Rust

一直以来,系统编程语言环境主要由靠近硬件的语言(如C、C ++等)主导。尽管它们可以完全控制程序和硬件,但是它们缺乏内存安全性。即使它们支持并发,使用C/C ++编写并发程序也很困难,因为没有并发安全性。还有一些流行的编程语言是解释性语言,例如Java、Python、Haskell。这些语言具备安全性,但需要庞大的运行时或虚拟机。由于它们的运行时间长,因此Java等语言不适合于系统编程。

许多人曾尝试将C/C ++的功能与Java、Haskell的安全性相结合。然而,Rust才是第一个成功实现了这一点的编程语言。

Graydon Hoare在业余项目中开发出了Rust,他的灵感来自研究编程语言Cyclone。Rust是开源的,由Mozilla与许多其他公司和社区一起领导这门语言的开发。Rust于2015年首次发布,并很快引起了社区的关注。

主要特征:

通过所有权和借用概念提供内存安全和并发安全。

内存安全和并发安全在编译时确保,即如果程序代码可以编译,那么内存既安全又没有数据竞争。这是Rust最吸引人的功能。

它还提供了Haskell中元编程的表现力。凭借不可变的数据结构和功能编程功能,Rust提供了功能并发和数据并发。

Rust的速度非常快,纯Rust的性能甚至优于纯C。

在没有运行时的情况下,Rust可以完全控制现代硬件(TPU、GPU、多核CPU)。

Rust具有LLVM支持。因此,Rust提供一流的与WebAssembly的互操作性,而且Web代码也非常快。

流行度:

自2015年首次亮相以来,Rust已被开发人员广泛接受,并在StackOverflow开发人员调查中连续四年(2016、2017、2018、2019)被评选为最受欢迎的语言:

根据GitHub Octoverse的调查,Rust是运行速度第二快的语言,仅次于Dart:

此外,根据编程语言流行度排名网站PyPl的数据,Rust排名第18位,并呈上升趋势:

对比Rust提供的功能集,我们就会明白为什么微软、亚马逊、Google等科技巨头相继宣布投资Rust作为一种长期的系统编程语言。

根据Google统计的趋势,在过去的5年中,Rust的热度每年都在增加。

主要用途:

系统编程

Serverless 计算

商业应用

主要竞争对手:

C

C++

Go

Swift

Go

在本世纪初,Google面临两个扩展问题:开发扩展和应用程序扩展。开发扩展问题指的是他们不能仅通过投入开发人员的方式来添加更多功能。应用程序扩展问题则指他们无法开发出一款能够扩展到Google级别的计算机集群的应用程序。

所以在2007年左右,Google创建了一种新的编程语言,用于解决这两个扩展问题。两位才华横溢的Google软件工程师Rob Pike(UTF-8)和Ken Thompson(UNIX OS)创建了一种新语言。

2012年,Google正式发布了第一版的Go编程语言。Go是一种系统编程语言,但与Rust不同,它还具有Runtime和垃圾收集器(几兆字节)。但是与Java或Python不同,这个Runtime包含了生成的代码。最后,Go生成了一个本地的二进制代码,可以在没有附加依赖项或运行时的情况下在计算机中运行。

主要特征:

Go具有一流的并发支持。Go不通过线程和锁提供“共享内存”并发性,因为编程难度太大。相反,它提供了基于CSP的消息传递并发性(基于Tony Hoare的论文)。Go使用“ Goroutine”(轻量级绿色线程)和“ Channel”进行消息传递。

Go最大的杀手级功能是:简单,它是最简单的系统编程语言。新手软件开发人员只需几天就可以编写高效的代码,就像Python一样。有些大规模的云原生项目(如Kubernetes、Docker)都是用Go编写的。

Go还内置了垃圾收集器,这意味着开发人员无需担心C/C++中的内存管理问题。

Google投入了大量资金打造Go。因此Go拥有大量的工具支持。新手Go开发人员拥有大量的工具生态系统。

一般,开发人员80%的时间都花在了维护现有代码上,用于编写新代码的时间只占20%。由于其简单性,Go在语言维护方面表现出色。如今,Go在业务应用程序中大量使用。

流行度:

Go一问世就受到了软件开发社区热烈的欢迎。2009年-2018年,Go一直在TIOBE编程语言排行榜上徘徊。Go的成功为Rust等新一代编程语言铺平了道路。

如今,Go已是主流编程语言。最近,Go团队宣布了有关“Go 2”的消息,这门编程语言的发展会更加稳固。

几乎在所有的流行编程语言排行榜中,Go的排名都很高,已超过许多现有的语言。自2019年12月以来,在TIOBE指数排名中,Go名列第15位:

根据StackOverFlow的调查,十大最受喜爱的编程语言中,Go也位列其中:

此外,根据GitHub的数据,Go也是十大发展最迅速的语言之一:

Google趋势显示,在过去的5年中,Go的热度每年都在增加。

主要用途:

系统编程

Serverless 计算

商业应用

云原生开发

主要竞争对手:

C

C++

Rust

Python

Java

Kotlin

Java 是企业软件开发领域无可争议的王者。近年来,Java受到了一些负面评论:过于冗长,大量样板代码,容易出现意外的复杂性。但是,关于Java虚拟机(JVM)的争论却很少。JVM是软件工程的杰作,经过了时间的考验,提供了硬核的runtime。

多年来,Scala等JVM语言一直在努力克服Java的缺点,想成为更好的Java,但他们都失败了。最终,这场提升Java的探索以Kotlin的诞生结束。Jet Brains(流行的IDE IntelliJ背后的公司)开发了Kotlin,它可以在JVM上运行,克服了Java的很多缺点,提供许多现代功能。

与Scala不同的是,Kotlin比Java更简单,还可在JVM中提供与Go或Python开发人员同等的生产力。

Google宣布Kotlin是一流的Android应用开发语言,因此Kotlin在社区中的接受度得到了大幅提高。自2017年以来,同样受欢迎的Java Enterprise框架Spring也开始支持Kotlin。我曾尝试结合Kotlin与Reactive Spring使用,体验非常棒。

主要特征:

Kotlin的主要卖点在于其语言设计。我总是将Kotlin视为JVM上的Go/Python,因为它简洁明了的代码。因此,Kotlin的生产力很高。

与许多其他现代语言一样,Kotlin提供了Null指针、安全性、类型推断等功能。

由于Kotlin也运行在JVM中,因此现有Java库庞大的生态系统都可供使用。

Kotlin是一流的Android应用开发语言,并且已经超过Java,成为开发Android应用的首选。

Kotlin得到了JetBrains和Open Source的支持,因此具有出色的工具支持。

Kotlin有两个有趣的项目:Kotlin Native(将Kotlin编译为原生代码)和kotlinjs(Kotlin到JavaScript)。如果成功,则可以在JVM外部使用Kotlin。

Kotlin还提供了一种简单的方式来编写DSL(域特定语言)。

流行度:

自2015年首次发布以来,Kotlin的知名度不断飙升。根据Stack Overflow,Kotlin是2019年第四大最受欢迎的编程语言:

Kotlin还是增长最快的编程语言之一,排名第四:

在流行编程语言排名网站PyPl的排名中,Kotlin名列第十二名,并具有较高的上升趋势:

自从Google宣布Kotlin是一流的Android应用开发语言以来,Kotlin的流行趋势出现了大幅上涨,如下所示:

主要用途:

企业应用程序

主要竞争对手:

TypeScript

JavaScript是一门优秀的编程语言,在2015年之前,JavaScript有很多缺点。著名的软件工程师Douglas Crockford写了一本书名为《JavaScript: The Good Parts》,暗示了JavaScript有很糟的部分。无模块化,还有“回调地狱”,因此开发人员都不喜欢维护特别大的JavaScript项目。

Google甚至还开发了一个平台,可将Java代码反编译为JavaScript代码(GWT)。许多公司和个人都曾尝试开发更好的JavaScript,例如CoffeeScript、Flow、ClojureScript。最终,微软的TypeScript取得了成功。

微软的一队工程师在著名的Anders Hejlsberg的带领下,创建了JavaScript的静态类型、模块化超集——TypeScript。

TypeScript可以编译为JavaScript。于2014年首次发布后,TypeScript很快引起了社区的关注。Google当时还计划开发JavaScript的静态类型超集。Google对TypeScript青睐有加,以至于他们没有开发新的语言,而是选择与微软合作改进TypeScript。

Google选择TypeScript作为其SPA框架Angular 2+的主要编程语言。此外,流行的SPA框架React也提供对TypeScript的支持。另一个流行的JavaScript框架Vuejs也宣布将使用TypeScript开发新的Vuejs 3:

另外,nodejs的创建者Ryan Dahl已决定使用TypeScript来开发安全的Nodejs替代品Deno。

主要特征:

流行度:

开发人员喜欢TypeScript的优雅语言设计。在StackOverFlow最受欢迎的语言类别的调查中,TypeScript与Python并列第二名:

根据GitHub的排名,TypeScript是增长最快的编程语言之一,排名第五:

从GitHub的贡献度来看,TypeScript排名第七,打进了前十:

Google的趋势表明,在过去的几年中,TypeScript的热度越来越高:

主要用途:

主要竞争对手:

Swift

当初乔布斯拒绝在iOS中支持Java(和JVM),他认为Java不再是主流编程语言。如今我们发现乔布斯当初的估计是错的,虽然iOS仍然不支持Java。苹果选择了Objective-C作为iOS中的首选编程语言。Objective-C是一门很难掌握的语言,它不支持现代编程语言所要求的高生产力。

后来,苹果的Chris Lattner和其他人开发了一种多范例、通用的、编译编程语言——Swift,来替代Objective-C。Swift的第一个稳定版本于2014年发布。Swift还支持LLVM编译器工具链(也由Chris Lattner开发)。Swift与Objective-C代码库具有出色的互操作性,并且已确立为iOS应用开发中的主要编程语言。

主要特征:

流行度:

开发人员对Swift的喜爱不亚于许多其他现代编程语言。根据StackOverflow的调查,Swift在最受欢迎的编程语言中排名第六:

2019年,在TIOBE的编程语言排名中,Swift的排名上升到了第10名。鉴于这种编程语言只有5年的历史,可以说是成绩斐然:

Google的趋势表明,在过去的几年中,Swift的热度出现了激增:

主要用途:

主要竞争对手:

Dart

Dart是Google出品的第二大编程语言。Google是Web和Android领域的巨头,因此Google在Web和应用领域开发自己的编程语言也不足为奇。在丹麦软件工程师Lars Bak(领导Chrome的 JavaScript V8引擎开发)的带领下,Google于2013年发布了Dart。

Dart是一种通用编程语言,支持“强类型”和“面向对象”编程。Dart也可以转编译为JavaScript,凡是JavaScript可以运行的任何地方(例如Web、移动、服务器)几乎都可以运行 Dart。

主要特征:

流行度:

根据GitHub Octoverse数据显示,Dart是2019年增长最快的编程语言,去年它的流行度增长了五倍:

根据TIOBE指数显示,Dart排名第23,仅用了4年时间就超过了很多其他的现代编程语言:

根据StackOverflow的调查,Dart在最受欢迎的编程语言中排名第12:

受Flutter的影响,Google的趋势表明,在过去的两年中,Dart的热度急剧上升:

主要用途:

主要竞争对手:

Julia

本文提及的大多数编程语言都是由大型公司开发的,但Julia是个例外。科技计算领域通常都会使用动态语言,例如Python、Matlab。虽然这些语言提供易于使用的语法,但不适用于大规模的科技计算。他们需要使用C/C ++库执行CPU密集型任务,因此这就产生了著名的“两种语言”的问题,因为他们需要粘合代码来绑定两种语言。由于编写的代码需要在两种语言之间来回切换,因此总是会损失部分性能。

为了解决这个问题,麻省理工学院的一队研究人员计划从头开始创建一种新的语言,这种语言既可以利用现代硬件的优势,而且还结合其他语言的优势。于是,Julia诞生了。

Julia是一种动态的高级编程语言,提供一流的并发、并行和分布式计算支持。Julia的第一个稳定版本于2018年发布,并很快受到社区和行业的关注。Julia可用于科学计算、人工智能和许多其他领域,而且还可以解决“两种语言”的问题。

主要特征:

流行度:

Julia在许多领域主要与Python竞争。由于Python是最流行的编程语言之一,因此Julia想晋升主流还需要几年的时间。

虽然Julia非常新(只有一岁),但仍在TIOBE指数中排到第43名:

Google趋势显示,在过去的一年中,Julia的热度在稳步增长:

但是考虑到Julia的功能集,以及NSF、DARPA、NASA、因特尔等公司的推动,相信Julia取得突破的进展只是时间的问题。

主要用途:

主要竞争对手:

原文链接:https://towardsdatasciencecom/top-7-modern-programming-language-to-learn-now-156863bd1eec

本文为 CSDN 翻译,转载请注明来源出处。

End

Python

Matlab

科学计算

高性能计算

数据科学

可视化

与Rust一样,Julia的主要特征在于语言的设计。这种语言在不牺牲性能的情况下,将高性能和科学计算中现有编程语言的一些功能结合在一起。就目前的情况来看,Julia出色地完成了这项任务。

Julia是一种动态编程语言,支持类型系统但类型不是必须的。因此,Julia这种编程语言很容易学习,生产力很高。

Julia的核心是多调度编程范例。

Julia内部支持并发、并行和分布式计算。

Julia为I/O密集型任务提供异步I/O。

Julia的运行速度非常快,可用于需要数百万个线程的科学计算。

JavaScript

TypeScript

应用开发

UI开发

与Go一样,Dart也非常注重开发人员的工作效率。由于Dart简洁的语法,以及高效的生产力,受到开发人员的喜爱。

Dart还提供“强类型”和“面向对象”编程。

Dart是少数同时支持JIT编译(运行时编译)和AOT编译(创建时编译)的编程语言之一。因此,Dart可以针对JavaScript运行时(V8引擎),并且Dart可以编译为快速的原生代码(AOT编译)。

跨平台原生应用程序开发平台Flutter选择了Dart作为开发iOS和Android应用的编程语言。从那以后,Dart的流行度越来越高。

与Goog的Go编程语言一样,Dart也具有出色的工具支持和庞大的Flutter生态系统。Flutter的日益普及也会推动Dart的采用率升高。

Objective-C

Rust

Go

iOS应用开发

系统编程

客户端开发(通过WebAssembly)

Swift的杀手级功能之一是其语言设计。语言本身很简单,语法简洁,比Objective-C更高效。

Swift还提供了现代程序语言的功能:null安全。此外,它还提供了语法糖来避免“厄运金字塔”。

作为一种编译语言,Swift和C++一样快。

Swift支持LLVM编译器工具链。因此,我们可以在服务器端编程,甚至浏览器编程(使用WebAssembly)中使用Swift。

Swift提供了自动引用计数(ARC)支持,可抑制内存管理的不善。

JavaScript

Dart

Web UI开发

服务器端开发

与Go或Kotlin同样,TypeScript的主要特征也是语言设计。TypeScript凭借其简洁明快的代码,成为了目前最优雅的编程语言之一。就开发人员的生产力而言,它与JVM或Go/Python上的Kotlin并驾齐驱。TypeScript是生产力最高的JavaScript超集。

TypeScript是JavaScript的强类型超集,特别适合大型项目,而且可以称为“可扩展的JavaScript”。

单页应用程序框架的“三巨头”(Angular、React、Vuejs)为TypeScript提供了出色的支持。在Angular中,TypeScript是首选的编程语言。在React和Vuejs中,TypeScript越来越受欢迎。

最大的两家技术巨头:微软和Google正在合作开发由活跃的开源社区支持的TypeScript。因此,TypeScript拥有最好的工具支持。

由于TypeScript是JavaScript的超集,因此凡是可以运行JavaScript的任何地方都可以运行TypeScript,包括浏览器、服务器、移动设备、物联网设备和云。

Java

Scala

Python

Go

很多语言,像C、Java、Python和JavaScript在几十年来一直持续支配着他们的各自的领域。另一方面,也要看到近期流行的需求语言,像Swift、Google Go 和 Rust。

怎样选择学习哪一种编程语言,其答案取决于学习之后用它来做什么。许多人的选择标准仅仅是“学习一门语言最大的需求就是能找到一份高收入的工作”。但这个标准并非人人都适用,还有很多其它的方面要考虑。例如,在大学里使用Python这门语言给学生讲授编程,其主要原因在于Python功能强大,学生们能够很容易地掌握编程概念。对于初学编程的人来说,使用Python是一个不错的选择;对于想从事移动程序开发的人来说,学习Swift、C#、Java和JavaScript是很好的选择;对于web开发来说,在CSS、HTML、JavaScript这样的前端技术支持下,使用PHP、Java、Python和Ruby on Rails是第一选择。

如果要完成像访问关系数据库这样的更加具体化的任务,可以学习SQL编程语言。SQL语言并非是用来开发应用程序的,而是用来支持应用程序和数据库之间的连接。更何况,很多数据驱动应用都在广泛地使用SQL,如今,对SQL的需求已经超越了对许多工作表的需求。

如果你对硬件编程感兴趣,想要开发嵌入式系统、操作系统、通信设备或者复杂的游戏引擎等,那么选择的语言依然是C/C++(主要是C)。

1JavaScript——多用途编程语言

时至今日,对JavaScript的需求依然巨大,招聘网站上充斥着有关JavaScript及其相关技术的招聘信息。JavaScript由Brendan Eich设计,运行在Netscape浏览器中。那时,他或许做梦也没有想到JavaScript会有如此超乎寻常的发展。

JavaScript是WWW的默认语言,并且几乎每个web浏览器都支持JavaScript,它已经成为了web前端开发的世界标准。随着Nodejs的发展,JavaScript的应用领域又扩展到了服务器端开发,如今和java、Net、PHP、Ruby on Rails以及其它的服务器端技术展开了竞争。

JavaScript除了应用于前端和服务器端开发外,它也快速地发展成为移动应用开发的选择。开发者可以使用许多流行的JavaScript框架来构建混合移动应用程序,比如ionic、kendo UI和Sencha touch等。

后来,随着React native框架的兴起(由Facebook提出),JavaScript又出现在了Android和iOS原生应用开发领域。

JavaScript无处不在!然而,JavaScript本身不会让你拥有最高薪酬的开发工作,你还需要学习基于JavaScript的技术、框架和库(比如Nodejs、React、React Native、ionic、jQuery、D3js和Kendo UI等等)。相关技术的选择完全取决于你要从事的工作。

说到学习JavaScript,它是一种动态编程语言,并且非常容易入门。熟悉了JavaScript基础知识之后,你就可以很容易地学习相关的技术,比如 jQuery、Nodejs、Angular或React。

2Python——最好的编程语言

Python是另一种编程语言,目前世界各地的开发者正在使用它进行快速应用程序开发。Python是一种模块化的、易于学习的、面向对象以及注重可读性的高级语言。

Python广泛地应用于教育领域、web与internet开发、科学与数值计算以及大数据、机器学习算法开发。

Python的深度和广度使得它成为教育和研究领域的首选语言,世界各地的学生正使用Python来学习编程和构建研究项目。如今很多进行计算机编程的学生把Python作为他们学习的第一门语言。

Python已经广泛地用于web和internet开发,并且有许多流行的框架,比如Django、Pyramid、Flask和Bottle。Django CMS和Plone是两种广泛使用的基于Python的内容管理系统,许多流行网站和web应用程序都在使用它们。

最近,由于对大数据分析和机器学习算法的需求急速增长,对Python的需求也在快速增长。用Python编写的许多开源库能够实现数据科学广泛使用的一些核心的机器学习算法。R是统计与数据科学领域广泛使用的另一种语言,但是学习曲线比较陡峭。

库方面,一些流行的Python库例如用于数学、工程和科学领域的scipy、用于库建模和数据分析领域的“pandas”,以及其它一些有用的库,比如iPython、kivy、pyqt和pyside。

3Java——大众化的编程语言

Java是大众化的编程语言,它也是一种永葆青春的语言,多年来一直是各个招聘板块的宠儿。Java于1990年由 Sun Microsystems公司发布,后来被Oracle公司收购,Java的哲学理念是“编写一次,到处运行”。

Java广泛地应用于web开发、企业软件开发和Android app开发。随着对运行在Android平台上的移动app的需求不断增长,对java的应用也达到一个新高度,这也是为什么全球范围内对java的需求依然第一的原因。

Java是高级的面向对象的编程语言,学习起来比C++更容易,但是程序的性能要比C或C++差一些。因此,一般不用java构建核心引擎、操作系统或嵌入式系统开发。

4SQL——结构化查询语言

SQL结构化查询语言是一种能被数据库理解的语言。SQL是由IBM工程师于1970年开发的,用来创建、更新和检索“System R”这个数据库管理系统中的数据。从那时起,SQL已经走过了很长的路,时至今日,它仍然是市场最需要的一种技能。

近年来,使用非SQL数据库来处理大数据的这种需求给SQL蒙上了阴影,但持续的时间不会太长。不久人们就会认识到SQL提供的大数据分析方法更好,它是一种更具有扩展性、可验证性和经得起时间检验的技术。

SQL语言用以辅助进行数据驱动网站、web应用程序、桌面应用程序以及移动应用程序的开发。SQL在任何应用领域都有应用。从学习的角度看,SQL比较容易掌握,并且由于有很高的市场需求,你可以仅仅通过SQL就能找到第一份工作。

然而,要找到一份高薪酬工作,还需要拥有设计、管理和维护多种数据库,比如Oracle、MySQL、PostgreSQL、IBM DB2和Microsoft SQL Server等的经验。

5C#——排名第一的微软技术

C#是最通用的语言之一,它使得编程像Java语言一样简单。C#是类型安全的、面向对象的编程语言,运行在NET框架运行时环境中。C#代码被编译成符合CLI规范的IL语言(中间语言)。

C#语言正迅速成为构建微软家族各种应用的首选,你可以用来构建客户端—服务器应用程序、数据库应用程序、web服务、移动应用程序、游戏等等。

C#在游戏开发中也有很好的应用(高级的但并非是硬核心),顶级游戏引擎Unity 3D就把C#作为支持的语言之一,除此外只有JavaScript语言被支持。C#还是许多交叉平台应用程序构建工具(如Xamarin)所采用的编码语言。你可以使用Xamarin产品套件构建交叉平台移动应用程序。

尽管汇编语言是首选的游戏引擎开发工具,要进行硬核心终端游戏开发,仍然可以使用C或C++,Rust语言也可以应用在该领域。

6C/C++——古老而金贵的编程语言

有人说C++很古老,但却一致被认为依然金贵。当涉及更注重性能的硬核心系统编程时,C/C++ 仍然是首选的编程语言。C比C++更接近硬件,并且能提供更好的性能。

许多开发者转向Java,是因为和C++(&C)相比,使用Java更便于开发,而且在很多情况下性能可以通过对硬件部分进行更多的投资而抵消。但并非总是如此,比如对于嵌入式系统,你就只需要管理最少的硬件组件。

C和C++仍然属于高级编程语言吗?

C/C++拥有最好的编译器、开发环境、库和核心开发部件,还拥有一个在未来也不可能被替换的巨大的生态系统。现有的生态系统和高性能应用程序的需要,使得对C/C++的需求一直很高,而且C/C++开发人员的工资档次也比较高。

7Swift——第一个工业质量级的系统编程语言

Swift是相对较新的语言,并且正快速地流行起来。Swift是完全用于Apple的开发语言,例如iOS应用程序、OS X应用程序、watchOS应用程序和tvOS应用程序。Swift引入了C和Objective-c的优点,并且能和cocoa以及cocoa touch框架很好地协同工作。

Apple拥有自己的巨大生态系统,毫无疑问,Swift将成为在未来几年中引领其发展的语言。如果你想进入Apple生态系统,Swift正是要学习的语言。

Swift学起来很容易,用起来很有趣,究其原因在于它引入了严格类型语言(如C、Java、C++)的所有特性,而使用起来和任何脚本语言(如 Ruby或Python)一样容易和有趣。你可以通过Swift playgrounds尝试使用Swift,并且可以马上看到结果,无需担忧程序的编译和运行。

Apple声称Swift是第一个工业质量级的系统编程语言,它提供了类似脚本的语法,能使开发变得绝对轻松。

8PHP——基础的编程语言

许多人认为PHP不是程序设计的未来,但PHP巨大的生态系统使得在未来几年里全世界需要大量的开发人员对其提供支持。排名前三的内容管理系统——WordPress、Drupal和Joomla都是使用PHP构建的,而且迄今大概有80%的网站运行在PHP之上。所以,它是巨大的!

PHP是容易学习的语言,它可以作为你进入编程世界的入门语言。PHP属于就业市场中炙手可热的语言,你可以找到大量的需要PHP技能的工作机会。PHP开发者的薪资水平和Java、C++、Python或Swift开发者相比,通常偏低。

PHP生态系统包括上述顶尖的内容管理系统(如WordPress、Drupal和Joomla等 )和PHP框架(如Laravel、Symfony、Yii和FuelPHP等)。这些内容管理系统和框架能使开发者在几天内就构建出可以投入使用的网站和web应用程序。

近年来随着 Nodejs、Django和Ruby on Rails的出现,PHP蒙上了一层阴影,但是PHP正在改进,更新的版本完全可以和新兴的语言与技术展开竞争。

9Ruby——适合学习的编程语言

Ruby是另外一种开源的、面向对象的、通用的编程语言,这是一种简单的、有助于快速应用开发的语言。Ruby最有名的框架是Rails(Ruby on Rails),这主要被用来web开发。

它在服务器端开发是很有用的,有很多公司都使用它,如:Bloomberg、Airbnb、Shopify、Hulu和Slideshare等等,且被用在一个或多个项目之中。

Ruby是用来学习的最好的编程语言吗?

Ruby常常被用来与Python的可读性进行比较,它提供类英语的语法,这让 Ruby 成为一个完美的候选者,最适合作为第一个编程语言来学习。

10Rust——发展迅速的新一代编程语言

Rust是后起之秀,并且承诺要成为新一代的热门技术。它快速地成为硬核心开发人员所痴迷的技术,并且以非常快的速度发展着。Rust语言还在发展之中,还是一门新语言,因此,Rust的就业市场尚未形成,传播的深度与广度还不够。

Rust语言由Mozilla公司于2010年开发,它是Graydon Hoare所负责的一个研究项目。而现在开发者社区喜爱它并负责对其维护,他们决心将Rust推向一个新的高度。

Rust是一种低级的系统编程语言,其目标是提供高性能、安全性和并发性,它是一个不错的C/C++的替代语言。过去,C开发人员努力使用Rust编写操作系统、数据库、嵌入式程序、内核以及各种系统程序。

Rust是一种现代语言,它拥有高级语言的灵活性和C这样的低级语言才有的高性能以及对硬件的可控性。

11其他

下面是另外的一些很受欢迎的编程语言,它们和排名靠前的那些语言进行着激烈的竞争。

GO——Go是谷歌公司推出的一款相对较新的语言,对于web服务器开发、网络开发以及命令行程序开发来说,它是又一个比较优秀的选择。

R——当要进行数据分析和统计软件开发时,你可以选择R语言。随着大数据和机器学习的兴起,R得以不断发展并和Python和Matlab展开了激烈竞争。

Perl——最古老的语言之一,但它正越来越受欢迎并显示出伟大复苏的迹象。DevOps是新生事物, Perl正发展成为用于DevOps的深受欢迎的语言,它或许会成为像Python语言那样的下一个重要语言。

VisualBasic Net——微软公司推出的一种面向对象编程语言,对于开发Net程序以及web程序和XML web服务这样的专业领域程序来说,这是一个很好的选择。

Haskell——统治着函数式编程的世界。和面向对象编程相比,函数式编程具有完全不同的哲学理念。函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。

web前端是指网站的前端开发,相对于后端而言,主要是给用户呈现网站等界面。

web前端属于IT行业中热门的岗位,相比较于其他的IT技术来说,是比较简单的。前端主要负责实现网站或者APP页面,涉及的代码量比后端开发小,但薪资和发展都不差,课程是目前前沿的前端技能叫web全栈工程师。

web全栈工程师50课程包括:

①计算机基础以及PS基础

②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)

③移动开发

④前端高级开发(ECMAScript6、Veujs框架开发、webpack、前端页面优化、React框架开发、AngularJS 20框架开发等)

⑤小程序开发

⑥全栈开发(MySQL数据库、Python编程语言、Django框架等)

⑦就业拓展(网站SEO与前端安全技术)

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

app开发需要有那些技术,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用户可以根据自己的需求选择不同的App开发。

开发不同类型的App需要用到哪些技术?

Web App:iOS/Android的内置浏览器是基于webkit内核的,所以在开发webApp时,多数使用html或html5、CSS3、JavaScript技术做UI布局,使其在网站页面上实现传统的C/S架构软件功能,服务端技术用java、php、ASP。现在也有很多一键生成webApp的平台,如百度siteApp/移动开发平台APICloud,APICloud平台提供基于腾讯x5浏览器引擎生成webApp,因为移动端的超级流量入口微信/手机qq等用的也是腾讯x5内置浏览器,所以用腾讯x5浏览器生成的App在移动页面展示时适配于微信的浏览体验,这样可以帮助webApp引流。

Native App:

开发Native App需要根据运行的手机系统采用不同的开发语言,开发Android App需要的开发语言是java,还需要熟悉Android环境和机制。主要知识点如下:

1 开发环境,Android Studio、eclipse如何搭建Android开发环境可以去百度。

2 数据结构,App的某些功能涉及到做算法,所以要有一定的数学基础

3 Android SDK,会API接口开发,包括自行开发API的能力和调用第三发API的经验。

4 熟悉tcp、IP,socket等网络协议

5 如果涉及到服务器,你还需要了解webservice相关知识和相应的开发语言,常用有PHP、JSP、ASPNet

6 除了这些功能基础,App开发还涉及到UI设计、框架、性能优化、调试适配等。

Objective-C是开发苹果系统App的主流编程语言,开发者一般用苹果公司的iOS SDK搭建开发环境,iOS SDK是开发iOS应用程序中不可少的软件开发包,提供了从创建程序,到编译、调试、运行、测试等多种开发过程中需要等工具。学习iOS开发可以去看苹果官方文档,这是最权威的ios教程。

Hybrid App:混合开发中主流的是以web为主体型的开发,即以网页语言编写,穿插Native功能的hybrid App开发类型,网页语言主要有html5、CSS3、JavaScript。Web主体型的App用户体验好坏,取决于底层中间件的交互与跨平台的能力。国内外有很多优秀的开发工具,如国外的AppmAkr、Appmobi,国内的APICloud,APICloud的底层引擎用Deep Engine,使用半翻译式原理,将运行中的web翻译成Native API,并且支持扩展API,开发时可调用用原生语言开发的功能模块,以此达到媲美原生App的用户体验,同时节省开发时间。

对企业来说,可以根据自己的需求选择不同的开发类型和开发工具,就目前来看,Hybrid App已经成为移动APP的开发的趋势,一方面Hybrid App开发时不采用或者大多数不采用原生语言,却能拥有原生应用的特点,另一方面是随着web技术的发展,Hybrid App技术已经成熟,很多大型App淘宝、微信、等都属于这种开发模式,Hybrid App给企业移动APP的开发、维护、更新都带来了很高的便捷性,从成本投入到用户体验考虑,Hybrid App都是首选。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 编程时选用的程序设计语言,对软件的开发与维护的影响?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情