自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

取代 C 語(yǔ)言!眾多 Python 開發(fā)者正加入 Rust 陣營(yíng)

開發(fā) 前端
越來(lái)越多的庫(kù)將采用 Python 作為前端、Rust 作為后端的開發(fā)模式??偟膩?lái)說(shuō),當(dāng)今的 Python 開發(fā)者在構(gòu)建高性能庫(kù)時(shí),擁有了更好、更流暢的開發(fā)方式。

未來(lái)將會(huì)有越來(lái)越多的庫(kù)采用 Python 作為前端(提高編程效率)和 Rust 作為后端(提升性能)的開發(fā)模式。

Rust 正在取代 C 語(yǔ)言成為高性能 Python 包的"后端"

首先,讓我們思考這種轉(zhuǎn)變的動(dòng)機(jī)。Python 編寫簡(jiǎn)單,但執(zhí)行速度慢是其主要問題。特別是在編寫數(shù)據(jù)處理庫(kù)時(shí),由于 Python 性能較低,很難用純 Python 開發(fā)高性能庫(kù)。然而,Python 是機(jī)器學(xué)習(xí)和數(shù)據(jù)工程的主要語(yǔ)言。因此,當(dāng)開發(fā)面向數(shù)據(jù)工程師或機(jī)器學(xué)習(xí)工程師的庫(kù)時(shí),我們會(huì)遇到以下問題:

雖然我們需要用 Python 編寫 API,但高性能的數(shù)據(jù)處理任務(wù)無(wú)法僅依靠 Python 完成。這意味著在編寫庫(kù)時(shí),你有以下選擇:

  • 要么自己學(xué)習(xí)并使用 C 語(yǔ)言
  • 要么依賴他人編寫的 C 語(yǔ)言庫(kù)來(lái)執(zhí)行底層操作

熟悉 C 語(yǔ)言的開發(fā)者可能會(huì)問:"這有什么問題嗎?許多庫(kù)作者可以將數(shù)值計(jì)算任務(wù)交給 NumPy 或 SciPy 處理。"

但實(shí)際情況并非如此理想。雖然將某些任務(wù)外包給 NumPy、SciPy 等庫(kù)很方便,但這要求所有函數(shù)都必須向量化,且不能使用 for 循環(huán)編寫代碼。此外,還需要考慮全局解釋器鎖(GIL)對(duì)某些操作的阻塞,以及其他各種問題。并非所有需求都能在現(xiàn)有庫(kù)中找到解決方案。

為什么選擇 Rust?

Rust 具有與 C 語(yǔ)言相當(dāng)?shù)乃俣群蛢?nèi)存效率,但無(wú)需手動(dòng)內(nèi)存管理或垃圾回收。它擁有出色的工具支持、友好的編譯器和不斷發(fā)展的開發(fā)者社區(qū)。使用 Rust 不僅能提升程序性能,還能在學(xué)習(xí)過程中結(jié)識(shí)更多同道中人。

最重要的是,對(duì) Python 開發(fā)者而言,Rust 比 C 語(yǔ)言更容易學(xué)習(xí):

  • 改善了"入門級(jí)"體驗(yàn),使初學(xué)者更容易編寫"安全"的代碼
  • 學(xué)習(xí)曲線更平緩,允許開發(fā)者隨時(shí)間逐步掌握更高級(jí)的語(yǔ)言特性

實(shí)際應(yīng)用案例

1. Lance:高性能、低成本的向量數(shù)據(jù)庫(kù)

創(chuàng)始人 Chang She 和 Lei Xu 最初使用 C++ 編寫代碼庫(kù),但當(dāng)他們不再需要處理 CMake 時(shí),決定轉(zhuǎn)向 Rust。Chang 表示:"從 C++ 轉(zhuǎn)向 Rust 的決定源于我可以更高效地工作,在不損失性能的同時(shí),也不必處理 CMake。我們用了大約 4 個(gè)月的時(shí)間用 Rust 重寫了之前的 C++ 代碼,每次用 Rust 編寫和發(fā)布新功能時(shí),我們都更加確信不會(huì)遇到段錯(cuò)誤。"

2. Pydantic:面向開發(fā)者的 Python 驗(yàn)證庫(kù)

Pydantic 團(tuán)隊(duì)用 Rust 重寫了第二個(gè)版本,即使是簡(jiǎn)單模型也實(shí)現(xiàn)了 20 倍的性能提升。除了性能改進(jìn)外,Rust 還帶來(lái)了其他優(yōu)勢(shì)。Pydantic 創(chuàng)始人 Samuel Colvin 指出:"Rust 編寫的代碼通常更易于使用和維護(hù)。特別是 Rust 能捕獲和處理所有可能的錯(cuò)誤,而 Python(和 TypeScript)的類型系統(tǒng)往往會(huì)忽略這些錯(cuò)誤。"

未來(lái)展望

展望未來(lái),越來(lái)越多的庫(kù)將采用 Python 作為前端、Rust 作為后端的開發(fā)模式??偟膩?lái)說(shuō),當(dāng)今的 Python 開發(fā)者在構(gòu)建高性能庫(kù)時(shí),擁有了更好、更流暢的開發(fā)方式。

責(zé)任編輯:武曉燕 來(lái)源: Rust開發(fā)筆記
相關(guān)推薦

2012-01-04 09:18:32

iPhone開發(fā)者聯(lián)盟iDP中國(guó)開發(fā)者

2020-10-19 12:21:38

GoPython開發(fā)者

2024-03-01 12:03:00

AI模型

2021-12-16 20:12:37

后端開發(fā)Sentry

2010-11-24 10:35:40

Objective-C

2014-04-15 11:27:50

C++開發(fā)者Objective-C核心語(yǔ)法

2021-02-24 07:42:34

PythonRust語(yǔ)言

2021-04-30 11:34:45

JavaScript開發(fā)者Rust

2017-12-11 14:28:55

IntelWindows 10筆記本

2012-07-05 11:05:38

諾基亞

2023-10-30 09:02:13

前端Rust

2011-11-10 10:28:09

AMDARM勝利工程

2023-05-25 09:44:37

谷歌開源

2021-05-10 14:50:03

.NETRust語(yǔ)言

2022-10-21 18:41:23

RustC++Azure

2015-06-16 13:04:35

C#開發(fā)者JAVA 開發(fā)者

2023-09-27 21:48:03

GitHub開發(fā)工具包

2021-04-12 10:38:51

CC++谷歌

2014-07-08 10:30:59

開發(fā)者開發(fā)語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)