年终盘点Rust生态版图星辰大海(上篇)Rust的出现并不是要你去用它重写一切,而是希望你可以用它创造新的未

在完成本篇报告之后,我得出一个观点:Rust的出现并不是要你去用它重写一切,而是希望你可以用它创造新的未来。当然这只是我个人观点,不代表任何人任何机构和公司。如果您有不同观点,欢迎探讨。

WechoosetouseRust,notbecauseitiseasy,butbecauseitishard,becausethatgoalwillservetoorganizeandmeasurethebestofourenergiesandskills,becausethatchallengeisonethatwearewillingtoaccept,oneweareunwillingtopostpone,andonewhichweintendtowin,andtheothers,too.

我们选择Rust,不是因为它容易,而是因为它难。这会有助于我们去组织和衡量将精力和技能投入到一个最佳目标。当我们接受这份挑战之后,就代表这份挑战是我们愿意接受的,且愿意马上投入的,并且必须打赢的挑战。其他挑战也当如此。

本次报告的所有内容都来自于互联网公开信息,如有错误或不宜在本报告中提及的内容,请及时告知。

本次报告包含以下内容:

版次这个翻译来自于书籍出版术语。比如《Rust编程之道》第一版、第二版等。

版次(edition)的引入主要是为了Rust能在发展过程中方便地引入一些不向后兼容的特性,而不会影响之前的代码。比如Rust2018edition中没有async/await关键字,但是在2021editon中引入了async/await关键字,这样就避免破坏旧代码中letasync=1;这样的写法。版次和语义化版本是正交的概念。

Rust发布的每个版次都有其核心主题意义:

RustEdition现在已经确定了,每三年发布一个版次。这就意味着Rust每三年都会围绕一个引领Rust发展的主题。

2024Edition:主题也许是「广泛应用」。

2021年2月9号,Rust基金会宣布成立。华为、AWS、Google、微软、Mozilla、Facebook等科技行业领军巨头加入Rust基金会,成为白金成员,以致力于在全球范围内推广和发展Rust语言。

最近Rust基金会又推选在非营利组织有十五年经验的Rebecca称为了基金会的执行董事(ED)和CEO。相信在Rust基金会的领导下,Rust会有广泛的应用前景。

我们可以通过这些指标来评判一下Rust的成熟度。

如果拿植物的成长阶段(「播种-发芽-开花-结果」)来类比的话,Rust的成熟度应该属于「开花」阶段。

Rust语言作为一门新生语言,虽然目前倍受欢迎,但是面临的挑战还很多。

挑战主要来自两个方面:

关于领域的选择,我们在下一节「Rust在各个领域中的应用状态和趋势」中探讨。先来看看Rust语言自身还有哪些特性需要进化才能顺利完成2024Edition的阶段目标。

比较了四种浏览器架构,以及近十年来浏览器中内存安全问题依然是主流。但是观察Firefox通过Oxidation项目(Rust)替换了12%的组件。自2015年以来,Firefox的内存安全漏洞数量出现了小幅但稳定的下降,其中,渲染器的内存安全漏洞明显下降。

可以说经过六年的应用,Rust语言的内存安全保障终于看到了初步的效果。该论文建议浏览器供应商遵循这一最佳实践,并逐步将他们的浏览器转向内存安全的语言。

Rust语言必须解决以下问题才能顺利往前发展:

上面罗列的只是Rust待完善问题的一部分工作而已,还有很多内容没有列出来。Rust语言还在不断进化中。

今年Rust开源组织发生了Rust语言审核团队(modteam)集体离职的事件,引起国内外技术社区广泛讨论。

要管理一个规模超过大多数公司,却由志愿者组成的开源项目是很困难的。他们有很多工作要做,但他们相信RustProject会因此变得更加强大。虽然这些问题很严重,需要谨慎地得出积极的结论,但他们相信这不会对Rust语言及其核心工具、文档和支持进行改进的能力产生负面影响。

对于关心Rust的中文社区的朋友和技术媒体而言,我觉得没必要过度解读。因为我们不了解美国社会以及处于该社会下人们所关心和敏感的问题是什么,真正想去理解也是比较困难的,因为有文化差异。我们只知道,这是一个超过大多数公司人员规模且都是志愿者组成的开源组织所要面临和解决的问题,问题一旦经过解决,那么这个社区将得到进化,会更加强大。所以没必要担心什么Rust会被负面影响。

但此时,我又想起2020年Rust1.44版本发布时,官方博客说过这么一句话:「techisandalwayswillbepolitical」。

对于美国文化不太了解的我,之前还对审核团队存在的重要性嗤之以鼻,现在感觉审核团队的存在对于Rust这样深处文化政治复杂的美国是多么重要。我终于理解Rust官方团队所说这件事的背景相当复杂的原因了。

真心希望Rust社区少一些政治、种族等非技术言论和矛盾。Rust语言是全球的,不是某个国家的。真心希望Rust团队能处理好这件事。对此,我们能做些什么呢?也许只能祈祷世界和平。

接下来,我们来盘点一下2021年Rust在各个领域中应用的状态和可能的趋势是什么。

先从操作系统来看起。

从2020年6月,Rust进入Linux就开始成为一个话题。Linux创建者Linus在当时的开源峰会和嵌入式Linux会议上谈到了为开源内核寻找未来维护者的问题。

在今年(2021)的开源峰会上,Linus说道:“我认为C语言是一种伟大的语言,对我来说,C语言确实是一种在相当低的水平上控制硬件的方法。因此,当我看到C语言代码时,我可以非常接近地猜测编译器的工作。它是如此接近硬件,以至于你可以用它来做任何事情。但是,C语言微妙的类型交互并不总是合乎逻辑的,对几乎所有人来说都是陷阱。它们很容易被忽视,而在内核中,这并不总是一件好事。Rust语言是我看到的第一种看起来像是真的可以解决问题的语言。人们现在已经谈论Rust在内核中的应用很久了,但它还没有完成,可能在明年,我们会开始看到一些首次用Rust编写的无畏的模块,也许会被整合到主线内核中。”

Linus认为Linux之所以如此长青,其中一个重要的基石就是乐趣(Fun),并且乐趣也是他一直追求的东西。当人们讨论使用Rust编写一些Linux内核模块的可能性时,乐趣就出现了。

在刚过去的2021年9月的LinuxPlumbers大会上,再一次讨论了Rust进入Linux内核的进展。

这次大会的结论是:

我对这部分视频内容做了一个简要总结:

2021.12.6早上发出了更新的补丁,介绍了在内核中处理Rust的初始支持和基础设施。

这次更新的内容包括:

从现在开始,Rustforlinux团队将开始定期提交补丁,每两周左右。

除了来自Arm、Google和Microsoft的支持外,这次该团队又收到一封来自红帽的信:红帽对Rust用于内核的工作也非常感兴趣(ThereisinterestinusingRustforkernelworkthatRedHatisconsidering)。

综合上面我们了解到的这些信息,2022年,我们很可能会看到Linux内核中的实验性Rust编程语言支持成为主流。如果这次实验成功,那么就意味着Rust正式从C语言手里拿到了时代的交接棒。

Redox的发起者虽然在System76工作,但实际上Redox这个项目并未得到System76的赞助。我曾经以为Redox属于System76的商业开源项目,但最近才发现,Redox的花费都是来自于社区赞助。Redox的主要开支基本都是用于RedoxOSSummerofCode,招募一些学生,为其完善功能。

现代OS中不同进程会共享很多状态,这会导致statespill的问题,比如,如果Android系统服务失败,“整个用户空间框架”就会崩溃,影响所有应用程序,甚至影响那些不使用失败服务的应用程序。

TheseusOS有许多微小的组件,称为单元,每个都有明确的界限。每个单元都是一个Rustcrate。然而,更大的创新是他们所谓的“语内(Intralingual)操作系统设计”,他们的意思是使用编程语言机制来实现操作系统,即,“将语义错误从运行时错误转变为编译时错误”。这意味着,Theseus相比于其他OS与Rust的关系更加紧密。

TheseusOS故障恢复涉及用新的单元替换损坏的单元。研究人员声称,这“允许Theseus在面对多个故障子系统时容忍最低系统层中的故障。”这是一种单元交换技术,也许这就是Theseus这个名字的由来,忒修斯之船的故事应该都听过吧?

今年TockOS的一个动作是,它升级到了2.0版本,并且这次升级是一次重大更新,完全是新内核,核心内核API被重新设计。

并且对芯片和开发板的支持基本覆盖的非常全面:RISC-V/ARMCortexM0+/ARMCortexM7/NanoRP2040/RapsberryPiPico/ESP32-C3-DevKitM-1等等。

HubrisvsTockOS:

2021年5月,GoogleFuchsiaOS正式发布,截止12月Fuchsia即将在第二款设备(NestHubMax)上运行。

众所周知,Fuchsia近30%的代码都由Rust实现。Fuchsia编程语言政策对Rust的分析:

优点:

缺点:

所以最终决定:

那么,这个1.0究竟意味着什么?它意味着稳定性和向后兼容性保证。人们就可以开始用它构建一些真正的产品了。随着WebAssembly和WASI的成熟,后面还会添加更多功能。

2021年,Compute@Edge的每日请求流量经历了爆炸性的增长,比1月份的每日流量暴涨了31,000%以上。客户使用量有望在2021年达到2万亿次总请求,目标是在2022年底达到50万亿次。

在WebAssemblyServerside领域,还有很多极具创新的产品:

其中比较出色的可用于云原生项目的基础库有:

总的来说,Rust在嵌入式领域越来越成熟了。

截止年底,mabez完成的工作可以在其博客看到,总的来说目前进度为:

ARM是迄今为止在物联网边缘使用的芯片组和传感器等嵌入式设备的领先制造商,今年已经加入了Rust基金会。

Rust完全有能力在嵌入式计算等更高级别的物联网领域完成特定任务,例如边缘轻量级计算和后端服务的实现,并同时可以在一定程度上满足这类物联网基础设施的功能安全需求。

Embark是和韩国游戏公司Nexon(《冒险岛》《跑跑卡丁车》)合开的。EmbarkCEO是前EA首席设计官Patrick,曾是《战地》系列开发商DICE的CEO。Embark也是Rust游戏工作组的成员之一,该公司也赞助了很多Rust生态开源项目的作者。

Traverseresearch公司位于荷兰Breda中心区,愿景是让Breda成为游戏开发强镇。该团队的核心成员在图形学领域造诣很强。

rust-gpu主要是针对图形渲染引擎,希望可以把Rust引入为一种着色语言。通过rustc后端编译到spir-v(着色器的二进制中间语言)来达成这个目标。目前该领域常用的是GLSL/HLASL,但它们并未随着游戏行业发展提供处理大型代码库的机制,所以在这个领域急需一门优秀的着色语言,而embark的人们认为Rust就是最佳选择,所以他们做了这项工作。

gfx-rs社区的目标是让Rust中的图形编程变得简单、快速和可靠。主要项目有:

其中wgpu2021年发展:

Naga2021年发展:

Bevy作为开源项目,在GitHub上接受的赞助现在基本已经达成了每月6000美刀的目标。虽然目前Bevy只发布了0.6版本,但是其生态在逐步建立,并且受到很多人的欢迎和期许。

Bevy0.6版本中有大量改进、错误修复和质量提升,这里罗列一部分:

顺便提一句:国内已经有公司将Bevy应用于商业项目,同时也在招人。

为什么会这样?

Amethyst引擎做的好的一面:建立了一个先进的、由ECS驱动的游戏引擎,数以百计的Rust游戏开发爱好者通过Amethyst相互联系,并建立了持久的友谊。

BDFL:BDFL是英文「BenevolentDictatorForLife」的缩写。中文翻译为「仁慈的终身独裁者」。在此架构下,有一个人(通常是项目的最初的作者,或者是社区选举的一个人)拥有项目中所有最后的决定。较小的项目可能默认就是BDFL结构,因为此类项目一般就是一到两位维护者。若是公司组织的项目也极有可能会采用BDFL结构,以便掌握项目的决策权。

Amethyst的未来

Amethyst早就成立了基金会,虽然游戏引擎停止了开发,但是Amethyst基金会还会在游戏领域继续投入。但未来将不再单一地专注于制作任何特定的游戏引擎。

接下来可能会帮助Rust游戏开发新人进入这个领域而做一些努力,比如推广、协调、教育、社区建设等。并且现在Amethyst团队做的一些都将和引擎无关,比如Distill,specs,Legion,Laminar等。

注意:Amethyst只是停止了游戏引擎的开发,但他们将迈向更广泛的Rust游戏开发领域去做更具价值的事。

总的来说,是让Quilkin通过吸收无效流量来帮助保护服务器免受攻击,或者在边缘运行为玩家流量提供最佳延迟。这对于任何游戏工作室都是利好,可以据此拥有与大型巨头相同的网络功能。

Databend受ClickHouse启发,计算模型基于apache-arrow。Databend实现了弹性的完全面向云架构的设计,它强调状态和计算的分离。相比传统数仓,用户使用Databend会获得更低成本、更易用、按量付费的体验。Databend会向着Serverless方向迭代。Serverless意味着把资源的调度做到更加精细化,云数据库的计算结点可以和一个函数一样,使用的时候拉起,使用完毕后销毁,只需要用使用付费,资源调度会非常精确。

Tremor每年365天24x7运行,并使用Rust编程语言实现。

深挖了一下tremor-runtime项目背后的公司,原来是Wayfair。Wayfair是美国最大的家具电商,2017年市值就达58亿美元,前身是早在2002年就成立的CNSStores。亚马逊都吃不下它。

从2018年开始,tremor就是跑在了wayfair生产环境中,每天处理10兆字节的数据,或每分钟100亿条消息,每秒1000万个指标。tremor降低了成本,减少了复杂性,巩固和简化了操作环境,以激发SRE的乐趣,减少NOC的工作量,并降低运营成本。

该公司已经进入B轮,融资4000万美刀。

海致星图是国内致力于金融级图平台产品的公司,该公司已经使用Rust进行高性能分布式图数据库的研发中。目前并未开源。

目前Transformer模型预测已经遍布特斯拉、谷歌、微软、Facebook等科技巨头。Transformer在特斯拉AutoPilot自动驾驶系统中驱动汽车、在Gmail中补全句子、在Facebook上及时翻译用户的帖子以及在Bing中回答用户的自然语言查询等。

可以说,HuggingFace这家创业公司使用Rust来构建分词器,对于机器学习模型的准确率和性能方面的巨大提升应该是有积极作用等。

“scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy,SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。

也就是说,在2022年,Rust生态中会出现一个功能和pythonsklearn完全一致,但性能比sklearn更好的库。

在数据操作层面,每个人都喜欢Pandas的API。它快速、简单且有据可查。但在生产方面,Pandas有点棘手。Pandas不能很好地扩展……没有多线程……它不是线程安全的……它不是内存效率。这一切都是Rust存在的理由。

Polars有两个优势:

也有三个缺点:

Enzyme出现的背景

当前,PyTorch、TensorFlow等机器学习框架已经成为了人们开发的重要工具。计算反向传播、贝叶斯推理、不确定性量化和概率编程等算法的梯度时,我们需要把所有的代码以微分型写入框架内。这对于将机器学习引入新领域带来了问题:在物理模拟、游戏引擎、气候模型中,原领域组件不是由机器学习框架的特定领域语言(DSL)编写的。因此在将机器学习引入科学计算时,重写需求成为了一个挑战。

为了解决这一问题,现在的发展趋势包含构建新的DSL,让重写过程变得简单,或者在编程时直接进行构建。这些方法可以让我们获得有效的梯度,但是仍然需要使用DSL或可微分的编程语言进行重写。为了方便开发者,来自MIT的研究者开源了Enzyme。

常规的AI算法交付流程一般分为模型训练、SDK封装、业务集成和交付验收四个步骤,冗长繁杂。MegFlow总结了旷视内部多年的AI应用工程落地经验,将资源、消息、任务等概念进行了清晰一致的抽象化,将冗长的算法交付流程简化为模型训练、业务集成及交付验收三步。通过MegFlow,AI算法研究人员可以快速将训练好的模型集成部署成简单易用的AI服务并完成交付。

MegFlow的研发团队调研了多种技术方案,最终选择了安全且零额外开销的Rust异步生态,从基础上保证了MegFlow的安全性与性能。

还有一些在2021年6月份统计过的依然活跃维护状态的机器学习框架:

SixtyFPS是一个工具包,可以有效地为任何显示器开发流畅的图形用户界面:嵌入式设备、桌面应用程序、移动端和Web(目前可编译到wasm,但仅作为演示,SixtyFPS无意将Web作为主要竞争平台)。它支持多种编程语言,目前是Rust、C++或JavaScript。核心库是Rust实现,其他语言的支持通过C-ABI来完成。

从2021年开始,就看到一些基于Rust和开源来创业的公司慢慢增加,这个专注于GUI的SixtyFPS也是其中一个,这个开源GUI工具库面向全平台,目标之一是取代Qt,换句话说,SixtyFPS基本上是大多数Qt开发人员都在等待的下一代QML。

SixtyFPS两位创始人都对Qt开发有深入的经验。其中一位是曾经在Qt公司担任QtQml引擎的主要开发人员和维护人员。

看他们的2021总结报告,发现他们在2021才注册了公司,和tQCS这样的咨询公司建立了合作关系,找到了第一个客户,招募了新成员。(感觉国外技术流创业跟国内还是有点区别)。tQCS提供世界No.1的Qt咨询和UI/UX设计服务,选择和SixtyFPS合作,这意味着什么呢?见仁见智吧。

2022年他们可能要长足支持嵌入式,要有新品牌名字了。

下面有一个比较:

Bundle大小:tauri比electron小大约19倍。

内存消耗:electron比tauri高9倍。

性能:tauri更胜一筹

但使用tauri的要求更高,tauriAPI远不如Node.JS完整和充实,所以你在使用tauri的时候,有些API可能需要自己使用Rust去实现它们。

另外,Tauri在2021年还孵化出另外两个crate:

Tauri目前发布了1.0beta版,距离正式稳定版已经不远。Tauri选择Rust的原因就是为了安全和性能。Tauri承诺不管你是在App中内置localhost服务器,还是做其他事情,Tauri都会为你提供一个安全的底线。将来Go、Nim、Python、Csharp等其他后端语言也会被支持,这些都会通过当前这个Rust内核提供C-API来实现。

截止目前,egui发布了0.16版本。

随着世界变得越来越紧密,网络基础设施软件的规模和复杂性正在急剧增加。然而,对该软件的要求与以往一样严格:它不仅必须快速,而且必须“安全”,即能够处理不受信任的数据而不会崩溃或容易受到安全漏洞的攻击。传统上,这两个要求是不一致的:网络程序员必须选择一种既能提供速度又能提供安全性的语言。所以,Rust是下一代网络基础设施的必须语言。

虽然Rust异步特性还需要很大的改进,但是目前因为有Tokio的存在,完全可以在生产环境中应用Rust异步。

即使在代码中某处存在无限循环,调度也将始终是公平的,不会永久阻塞执行线程。最好的部分是开发者不需要做任何特别的事情来实现这一点,无论你使用哪种编程语言,运行时都会处理它。

这一切都是基于Rust和WebAssembly(wasmtime和wasmtime-wasi)来实现的,目前只发布了0.7.0版本,还在不断高速迭代。

在嵌入式中,通常使用中断、DMA并利用多核来处理并发事件而不阻塞主循环。这些传统上是通过有意的寄存器写入来处理的。例如,向外围设备发送命令以启动任务,继续运行程序,当任务完成时,会触发一个中断,并立即运行处理完成的代码。Rust中可以使用基于Future的Async/Await功能来抽象这些过程。

Embassy是一个执行器和一个硬件访问层(HAL)。executor是一个调度程序,通常执行固定数量的任务,在启动时分配,但以后可以添加更多。HAL是一种API,可用于访问外围设备,例如USART、UART、I2C、SPI、CAN和USB。Embassy在有意义的地方提供异步和阻塞API的实现。DMA(直接内存访问)是一个非常适合异步的示例,而GPIO状态更适合阻塞API。

Embassy目前为多个微控制器系列提供HAL:

eBPF技术在网络技术中的表现,更是让人眼前一亮,BPF技术与XDP(eXpressDataPath)和TC(TrafficControl)组合可以实现功能更加强大的网络功能。

随着连网设备的数量稳定增加,业界在计算、储存和通信能力方面遇到前所未有的异质性,并且在产生数据以及必须交付和使用数据的规模方面面临新的挑战。

zenoh的目的在于满足必须以可扩展、高效率且位置透明化的数据方式处理动态数据、静态数据和计算的应用程序的需求。

有些人说用Rust进行Web开发是杀鸡用牛刀,这种观点其实是对「系统级语言」的刻板印象造成的。无论从性能、工程架构还是开发效率,Rust其实都很出色,目前就是需要一套比较成熟的框架。无论如何,Rust在Web开发领域的生态在逐步成型。

Poem是一款由国人开发的Rust异步Web框架,其中最令人兴奋的功能是:

已知使用Poem的开源项目:

使用poem的闭源项目

为了确保JavaScript的未来发展将继续适用于Deno和服务器端JavaScript运行时,Deno公司已加入负责JavaScript标准(ECMA-262)的ECMA国际标准组织,并参与到TC39工作组的工作中,LucaCasonato(卢卡·卡索纳托)将是Deno在TC39的主要代表。

Deno目前在高速开发中,截止目前已经发布1.17.3版本。目前有13家公司在其技术堆栈中使用Deno,包括Cloudless、Appwrite和TheLoneroFoundation。

目前抖音小程序业务端也在招幕Rust开发者,在一些前端基础设施(比如编译器)上考虑使用Rust/C++来进行实践。

许多区块链要么运行用Rust编写的智能合约,要么用Rust实现它们的智能合约运行时或语言。它们分为几类:

2021年区块链几大公链出镜比较多的是Near/Solana/Dfinity/NeverOS,整年都有开发者激励计划和黑客松活动。

2021年比较活跃的概念是跨链、DeFI、NFT和Web3。

VR/AR领域,目前Rust生态也有人做,但不是很丰富:

Rust对VR/AR的支持,也许就从OpenXR这里起步了。

因为Rust的安全属性,目前在金融领域应用Rust的公司比较多,所以目前全球Rust工作岗位最多的分布就是区块链和量化金融。

基本上按目前全球Rust岗位招聘,可以分为以下几类:

关于具体的Rust职位招聘,可以在RustWeekly/Redditr/rust频道/RustMagazine社区月刊/Rustcc论坛,以及各大招聘网站中可以找到。

还有很多其他招聘,其中区块链职位居多,这里就不一一列举了。

请注意,一些号称完全远程的职位实际上只是考虑美国/加拿大,有时甚至是欧盟居民,能不能在中国找到这些职位,可能需要看你的运气和沟通水平!

上面列出的只是网络上可见的一部分,对于国内的小伙伴来说,这些职位可能无法申请。对于国外的小伙伴来说,也许是一个福音。

从2018年到2022年国内外出版的书排列。

国内

国外:

这些书并非全部,还有很多国外的书没有罗列出来。

可以看出,国外的Rust书在陆续增多,国内也有这个趋势。

Reddit讨论:你梦想中的Rust大学课程是什么样的?

他目前的教学计划大概如下:

你对此有何看法呢?

对Rust做生态调研,是一件很累的事情,因为Rust作为一门真正的通用型语言,其生态信息量太大,涉及领域众多。但我也坚持把这篇报告做完了,因为我实在很喜欢Rust社区,Rust社区在我眼里,就是充满了希望和蓬勃生机的社区。希望你也和我一样,可以喜欢Rust。

THE END
1.各个编程语言的优缺点,你适合哪种?太阳是白的TIOBE 编程语言排行前10中,各个编程语言的优缺点如下: Python:优点:易学易用,具有大量的第三方库和工具支持,适用于数据分析、人工智能等领域。 缺点:运行速度相对较慢,不适用于需要高性能计算的应用程序。 Java:优点:具有较好的跨平台性能,适用于大型应用程序的开发,提供了强大的面向对象编程能力。 https://www.cnblogs.com/alax-w/p/17119924.html
2.2023十大最牛编程语言排行榜以及各语言的优缺点缺点: 不适合移动计算 由于是一种解释性编程语言,所以速度较慢(相对其他编程语言而言) 数据库访问层有些不成熟 由于GIL(全局解释器锁),线程不好(这个是吉多都没解决的问题) C/C++ C和 C++ 在编程世界中占有重要地位。几乎所有的低级系统,例如操作系统和文件系统,都是用 C/C++ 编写的。如果您想成为系统级https://blog.csdn.net/weixin_42250835/article/details/131950945
3.计算机导论实验报告(精选15篇)4、UTP优缺点 f)缺点:对电波干扰敏感性较大,电气性较差。g)优点:直径小,重量轻、易弯曲、易安装、价格便宜。 4、双绞线导线色彩编码白蓝、蓝白橙、橙白绿、绿白棕、棕 5、双绞线的连接方法:直通线缆水晶头两端都采用T568A标准或T568B标准。交叉线缆一端采用T568A标准,另一端采用T568B标准应用场合 https://www.ruiwen.com/shiyanbaogao/6303505.html
4.Solidityvs.Vyper:不同的智能合约语言的优缺点看一下 Vyper 和 Solidity,你可以清楚地感觉到 Vyper 是从 Python 中汲取了灵感,而 Solidity 是从 JavaScript 和 Java 中汲取灵感。因此,如果你对于这几种语言更熟悉的话,那就能很好地使用对应的智能合约语言。 Vyper 旨在成为一种简约、易于审计的编程语言,而 Solidity 旨在成为一种通用的智能合约语言。编码的体https://new.qq.com/omn/20221208/20221208A086AM00.html
5.Copilot插件:开启AI编程新篇章Copilot插件支持多种主流编程语言和框架,如Python、JavaScript、React等。这意味着无论你使用哪种编程语言或框架,Copilot都能为你提供强大的代码补全和提示功能。这种跨语言支持使得Copilot成为了一个通用的编程助手,适用于各种开发场景和需求。 五、Copilot插件的优缺点分析 https://developer.aliyun.com/article/1420209
6.计算机专业学生职业生涯规划书(通用10篇)1、目前的优缺点和社会的形势 经过认真的分析我发现我发现我对工作认真负责,能够耐心专研专业课,有很强的团队精神,有很好的沟通交流能力,需要改善的地方是做事执行力不是很强,自制力有点差。但是我还有大学三年的时间足够盖伞这些缺点了。现在的社会是机遇与挑战并存的,现在社会上开设计算机专业课程的学校很多,导致现https://www.yjbys.com/jiuyezhidao/zhiyeguihua/3098608.html
7.顶级编程语言之对比:RustVSGo51CTO博客除了介绍这语言外,还会比较两种语言之优缺点。 Rust语言 Rust语言于2010年推出,其发明的主要目标在于全面提高安全性,出色模块化的设计,良好的并行性和语言性能。根据数据和研究,发现大约74.5%的开发人员喜欢和点赞Rust编程语言,从面世以来,使用Rust编程语言的项目越来越多。在2019年, Rust编程语言的使用量较前一年增长https://blog.51cto.com/u_15127566/2664598
8.python编程语言对比C++语言的优势与劣势在当今的计算机世界中,有许多编程语言可供选择。python编程语言和其他语言(如C++,Java)等都是非常流行的语言。在本文中,八维职业学校将对比分析 Python 与另一种语言的优劣并讨论其在不同领域的应用。 Python 是一种高级编程语言,由于其简单易学和语法简洁清晰,已成为许多开发者的首选语言之一。以下是 Python 的优势https://www.bwie.com/jsgh/8.html
9.19道必须掌握的C++面试题简单描述几个排序算法的优缺点? 答:选择、冒泡、快速、希尔、归并、堆排等。 1.快排:是冒泡排序的一种改进。 优点:快,数据移动少 缺点:稳定性不足 2.归并:分治法排序,稳定的排序算法,一般用于对总体无序,但局部有序的数列。 优点:效率高O(n),稳定 缺点:比较占用内存 问15:new和malloc的区别? 答: 1、https://www.w3cschool.cn/cpp/cpp-a9no2ppi.html
10.编程学习计划(系列八篇)这些编程语言之间有很多不同点,具有不同的应用场景和优缺点。因此,在选择编程语言之前,我们需要仔细思考所需的编程领域,例如机器学习、Web开发、游戏编程、系统开发等。我们可以根据自己所需的领域来找到适合自己的编程语言。2.学习基础语法一旦我们选择了编程语言,就需要学习它的基础语法。这是编程学习的第二步。在https://www.liuxue86.com/a/5151491.html
11.编程语言的排名编程语言的难度排名华为云为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:编程语言的排名。https://www.huaweicloud.com/theme/432484-4-B-undefined
12.高中信息技术课程标准(2)使用双向翻译软件,先将一段英文短文翻译成中文,然后将该中文内容再次翻译成英文,考察机器翻译的准确性,讨论机器翻译的优缺点。 (3)访问一个自然语言处理网站如:http://www-ai.ijs.si/eliza/eliza.html或http://alice.sunlitsurf.com/live.html,用自然语言与其中的机器人对话,通过寻找其“谈话”的破绽,讨论https://www.fqkhzx.cn/index/article/view/id/94.html
13.go语言有哪些优缺点go语言用来干什么Go 自带完善的工具链,大大提高了团队协作的一致性。 4. 执行性能好 虽然不如 C 和 Java,但相比于其他编程语言,其执行性能还是很好的,适合编写一些瓶颈业务,内存占用也非常省。 网页名称:go语言有哪些优缺点 go语言用来干什么 网页地址:http://chengdu.cdxwcx.cn/article/ddgcjgc.htmlhttp://chengdu.cdxwcx.cn/article/ddgcjgc.html
14.推荐几款主流好用的Python开发工具编程开发软件教程因此,在本文中,我将介绍一些常用的Python开发工具,并对它们的特点、优缺点进行比较,以帮助读者选择适合自己的Python开发工具。所以今天挑选了几款主流的编辑器进行介绍,都是功能比较丰富的IDE,至于大神使用的普通文本编辑器就不再此次考虑范围内,主要介绍PyCharm、Visual Studio Code、Jupyter Notebook、Spyder、IDLE这几https://www.jb51.net/softjc/927153.html
15.电子商务系统分析与设计第3章统一建模语言UML在线免费阅读面对这些建模语言,首先,用户没有能力区别不同语言之间的差别,很难找到一种比较适合其应用特点的语言;其次,这些建模语言实际上各有特点;再次,虽然不同的建模语言大多类似,但仍存在某些细微的差别,这极大地妨碍了用户之间的交流。因此在客观上,极有必要在比较不同的建模语言优缺点及总结面向对象技术应用的基础上,根据https://fanqienovel.com/reader/7106346964106611727
16.编程语言类型和优缺点是什么?Worktile社区编程语言类型和优缺点是什么 回复 共3条回复我来回复 这个人很懒,什么都没有留下~ 评论 编程语言是用于编写计算机程序的一种形式化语言。根据不同的目的和应用场景,编程语言可以分为多种类型,每种类型都有其独特的优点和缺点。 一、低级语言 机器语言:直接使用二进制代码编写,能够直接与硬件交互,执行效率高,但https://worktile.com/kb/ask/2421011.html
17.pascal编程语言有哪些优缺点问答Pascal编程语言的优点包括:1. 结构化:Pascal是一种结构化的编程语言,它强制程序员使用块结构、过程和函数,使程序的逻辑更清晰,易于理解和维护。2. 可移植性:Pascal编程语言具有很高的https://www.yisu.com/ask/64366899.html