麻省理工go语言麻省理工learningx

当前火热的区块链创业领域,也吸引国内高校的参与。从浙江大学获悉,浙大计算机学院和软件学院,将于今年秋季面向部分高年级本科生和研究生,设置一门名为《区块链与数字货币》的课程。据悉,这是国内首家开设此类课程的高校。

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

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

作者|MdKamaruzzaman,软件架构师

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

封图|CSDN下载于视觉中国

出品|CSDN(ID:CSDNnews)

以下为译文:

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

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

什么是现代编程语言?

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

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

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

为什么要学习新语言?

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

内置的并发支持

空指针安全

类型推断

简洁的功能集

降低学习难度

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

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

Rust

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

主要特征:

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

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

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

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

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

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

流行度:

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

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

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

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

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

主要用途:

系统编程

Serverless计算

商业应用

主要竞争对手:

C

C++

Go

Swift

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

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

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

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

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

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

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

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

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

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

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

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

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

云原生开发

Python

Java

Kotlin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

企业应用程序

TypeScript

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

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

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

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

另外,node.js的创建者RyanDahl已决定使用TypeScript来开发安全的Node.js替代品Deno。

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

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

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

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

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

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

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

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

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

Dart

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

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

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

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

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

Julia

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

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

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

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

原文链接:

【End】

Matlab

科学计算

高性能计算

数据科学

可视化

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

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

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

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

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

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

JavaScript

应用开发

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

iOS应用开发

客户端开发(通过WebAssembly)

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

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

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

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

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

WebUI开发

服务器端开发

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

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

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

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

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

Scala

区块链需要学的课程有:1.KhanAcademy;2.Udemy;3.Lynda;4.Coursera;5.PluralSight等。另外,学习区块链你还得知道区块链与编程语言的关系。学习区块链开发建议建立在Go语言和java基础上,而且Go语言的学习难度比Java略低。

KhanAcademy

如果你想重温一下你的比特币知识,或者从头开始学习加密货币,知识点讲解的很彻底,并且会让你在区块链的道路上走向正确的方向。您可以通过8个独立的步骤,从基本的概述到对加密哈希函数、数字签名、工作量证明和区块链安全性的解释。

2.Udemy

你不会因为参加2小时的在线课程而得到哈佛大学的教育。但实际上,作为一个区块链爱好者,Udemy可能更有用。根据你的技术水平,这里的每个人都有很多东西。

对于那些想了解区块链基本知识的人来说,有一个很好的课程叫做“区块链和比特币的基础”。在上面的课程中,你可以得到2小时的课程,可下载的资源,以及在你想要完成课程后,你可以随时访问课程的机会。

如果这能激励你继续上课,你也会得到证书。但最重要的是,你会对比特币的基本概念有一个深刻的了解。

3.Lynda

LinkedIn的Lynda提供了跨越所有级别的大量不同课程。

4.Coursera

Coursera的价格随着复杂性的不同而不同,尽管它们确实有一些免费的选择,鼓励你购买单独的补充课程材料。

课程由斯坦福、麻省理工学院和普林斯顿等大学的教授创建和教授,如果你想寻找优秀的导师,课程设置是个明智的选择。通过这些课程,你不会得到普林斯顿的证书,但是你会接触到一些学术界最聪明的人。

其中一个特别突出的课程是“比特币和加密技术”,该课程由普林斯顿大学的四位主要教授进行教授。这是一个为期11周的计划,涵盖密码学、比特币挖掘、规则、挖掘谜题,甚至还有一个关于altcoins的章节。此外,本课程还包括详细的讲课、练习、继续阅读和家庭作业。

5.PluralSight

PluralSight充满了新的技术课程,这些课程都是实际操作和具体的。例如,如果你想学习MySQL或Javascript等编程语言。

THE END
1.tsinghuarobertying/learnX Star255 Code Issues Pull requests 清华大学网络学堂 App,以 React Native 构建。App for Tsinghua University Web Learning, developed with React Native. reduxandroidmacosiosapptypescriptreact-nativetsinghua-universitymac-catalyst https://github.com/topics/tsinghua-university
2.Spark? SynapseML ? LightGBM ONNX https://learn.microsoft.com/th-th/fabric/data-science/onnx-overview
3.知识永不过时.蒜瓣LearningApp(华为,苹果,小米,OPPO,Vivo手机蒜瓣learningapp 立即播放 打开App,流畅又高清100+个相关视频 更多-- -- 0:39 App 你觉得知识能改变命运吗? 蒜瓣Learning App (华为,苹果,小米,OPPO,Vivo手机应用商店均可下载) 每天学习一点 距离成功近一点! 1 -- 0:31 App 蒜瓣Learning App 终身学习的app (华为,苹果,小米,OPPO,Vivo手机应用商店均可https://m.bilibili.com/video/BV16s42137WJ/
4.免费易上手速度快(内含云盘下载地址)+免费GPU打开知乎App 在「我的页」右上角打开扫一扫 其他扫码方式:微信 下载知乎App 开通机构号 无障碍模式 验证码登录 密码登录 中国+86 获取短信验证码 获取语音验证码 登录/注册 其他方式登录 未注册手机验证后自动登录,注册即代表同意《知乎协议》《隐私保护指引》 扫码下载知乎 App 关闭二维码https://zhuanlan.zhihu.com/p/656552786
5.iLearningX相似应用下载iLearningX,一个专业的学习平台适用范围:全体用户,但保密的课程会设置权限适用机型:Android5.1.1以上新功能特性:1.全新的界面设计2.PC移动无缝衔接3.课程,视频,讨论一站式学习 更多 网友评论更多 下载豌豆荚,参与网友评论互动 暂无评论 应用下载排行榜 UC浏览器 109.3MB 查看 淘宝-天猫双11全球狂欢季 58.77MBhttps://m.wandoujia.com/apps/8077684
6.ilearningx客户端下载华为iLearningX最新版v1.8.6安卓版标签:ilearningx华为职业教育 用手机扫描下载 (5)差评(0) 简介 iLearningX软件是华为科技打造的一款企业培训app,能够从入职指引到老员工的技能提升中不断学习新的知识,只有不断学习才能在未来有更好的发展,可以全面了解华为的规划和资讯,欢迎你来下载。 http://www.pipikun.com/android/soft/10131.html
7.华为大学iLearningX电脑版v2.0.5最需网2023-10-30发布者:wx20230305205025大小:下载:6 文件大小: 软件介绍 华为大学iLearningX电脑版是一款华为内部学习软件。华为大学iLearningXpc版为了抗击疫情,培养员工的安全意识,平台特别开设了春风行动公益培训课程,员工可以观看直播。华为大学iLearningX适合华为内部员工使用,学习技能知识,课程种类多样,可以在线办公。 https://www.zuixu.com/down/432802.html
8.华为防疫复工公益课学习软件下载华为防疫复工公益课学习软件是一款最近华为为了应对返岗热潮推出的针对疫情期间返岗的健康教育课程,十分受用的一个课程,全面剖析了如何避免传染,需要的小伙伴赶紧来下载这款华为防疫复工公益课学习软件把~https://www.fxxz.com/azsoft/511571.html
9.理论考试平台考生考试流程指南(iLearningX)0914.pdf内容提供方:151***6546 大小:402.91 KB 字数:约小于1千字 发布时间:2023-03-02发布于湖北 浏览人气:285 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)华为1+X证书考试平台操作指南-理论考试平台考生考试流程指南(iLearningX)0914.pdf 关闭预览 想预览更多内容,点击https://max.book118.com/html/2023/0228/7132122150005045.shtm
10.华为数通网络自动化开发学习笔记数通自动化编程iLearningX huaweiiLearningX是面向华为公司外部员工、客户、合作伙伴和企业提供学习能力,支持慕课、微课、考试、面授和直播等多种学习场景的一站式学习平台。 https://talent.huaweiuniversity.com/1、什么是网络开放与可编程? 2、python编程语言有什么特点? https://blog.csdn.net/qq_20477309/article/details/121342597
11.eLearningXbyHanoAcademywith Top Educators and Industry Experts at eLearningX by Hano Academy Get Ready for a New Career and Promote Lifelong Learning Do you want to advance your career, improve your employment prospects or learn a new important skill? This platform promotes lifelong learning and helps you achieve youhttps://elearningx.org/
12.LearningXStudent()ontheAppStoreXinics Inc. Designed for iPad 4.7 ? 3.8K Ratings Free Screenshots iPad iPhone Description Xinics Extended Canvas LMS Platform - LearningX LearningX LMS? ? , , ? , https://apps.apple.com/cn/app/learningx-student-%ED%95%99%EC%8A%B5%EC%9E%90-%EC%9A%A9/id1428254462?l=en
13.EvolutionaryAlgorithmsviaMultitaskReinforcementLearningConfigX: Modular Configuration for Evolutionary Algorithms via Multitask Reinforcement Learning Hongshu Guo1*, Zeyuan Ma1*, Jiacheng Chen1, Yining Ma2, Zhiguang Cao3, Xinglin Zhang1, Yue-Jiao Gong1? 1South China University of Technology, 2Massachusetts Institute of Technology, 3Singapore http://arxiv.org/pdf/2412.07507v2
14.ilearningx网页本版账号登入不上进入电脑版iLearningx官网可以进入,但是点击登录注册后,网页一直加载,无法登入。https://developer.huawei.com/consumer/cn/forum/topic/0203720263204060236
15.Xlearning无界学习作为X Learning创始团队成员,从沉浸式学习项目的研发,交付,到为客户提供咨询诊断方案等,她始终保持着好奇和探索的精神。她带领团队,设计研发沉浸式学习20余种,载体涉及体育,艺术,音乐,搭建,科技等多个领域,通过交付800多场的沉浸式学习项目,服务超过200家世界知名企业客户,有来自医药,互联网,金融,制造业等领域的3万http://www.face2x.com/