您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > 百科

八个用于R编程的ChatGPT工具

时间:2023-06-02 14:21:44  来源:51CTO  作者:

译者 | 李睿

审校 | 重楼

ChatGPT无需进行微调或接受特定主题的训练,就可以回答有关各种技术主题的问题——包括如何编写R代码。这意味着任何R语言编程人员都可以使用ChatGPT的功能,即使是那些对大型语言模型知之甚少的编程人员也是如此。大型语言模型(LLM)是AI target=_blank class=infotextkey>OpenAI公司的ChatGPT等人工智能聊天机器人的基础技术。

围绕ChatGPT和R语言的生态系统正在形成,这使得将人工智能技术整合到R语言工作流程中变得很容易。但是在人们开始在R中使用ChatGPT和与之相关的工具之前,有一些重要的事情需要记住:

(1)用户对这些工具的所有要求都会被发送到OpenAI公司的服务器,因此不要使用ChatGPT工具处理敏感信息。

(2)ChatGPT可以自信地返回错误的答案。即使是错误的响应也可以作为节省时间的起点,但不要假设代码将完全按照用户的期望执行。德克萨斯基督教大学副教授、流行的tidycensus R软件包的开发者Kyle Walker最近在推特上表示,“ChatGPT可以在用户很好地理解一个主题的情况下为其工作提供助力,也可能让用户暴露出他们不知道自己在做什么”。其区别在于知道什么时候人工智能输出不正确。而用户需要检查ChatGPT的响应。

(3)ChatGPT可以对同一个查询生成不同的响应,有些答案可能是准确的,而另一些则不是。例如,当多次请求一个带有蓝色条形图的ggplot2条形图时,其代码有时会生成一个带有蓝色条形图,但有时不会,即使提交了完全相同的请求。如果需要一个可再现的工作流,这种结果显然不太理想。

(4)如果用户正在使用的软件包最近进行了更新,ChatGPT也不会知道,因为它的训练数据截止到2021年。

(5)本文中的大多数资源都要求用户拥有自己的OpenAI API密钥,并且这一API并不是免费使用的。虽然目前价格很低,但不能保证它会一直保持这种状态。ChatGPT 3.5涡轮模型目前的定价是每10,000个令牌为0.2美分。那么令牌能带来什么?例如,从234行mpg数据集创建散点图的请求花费38个令牌。

(6)向ChatGPT寻求编码帮助不太可能让用户陷入人工智能种族和性别偏见的伦理困境。然而,关于向OpenAI公司提供更多数据是否明智的讨论也很激烈。例如,训练数据如何被抓取和重新利用的伦理问题;如果使用开源的大型语言模型(例如H2O.ai的h2oGPT)而不是OpenAI公司的问题。这些问题需要组织和个人自己去分析。然而在撰写本文时,根本没有特定于R语言的大型语言模型(LLM)工具可以与围绕ChatGPT构建的工具相媲美。

现在了解目前可用的一些最著名的以R为中心的ChatGPT资源。

1.RTutor

这个应用程序是一种优雅而简单的方法来对ChatGPT和R进行采样。用户上传一个数据集,问一个问题,然后看着它生成R代码和结果,其中包括图形。虽然它被命名为RTutor,但这个应用程序也可以生成Python/ target=_blank class=infotextkey>Python代码。

RTutor的网址是https://rtutor.ai/。它是目前列出的唯一一个不需要ChatGPT API密钥使用的应用程序或软件包,但用户需要为大量使用提供自己的密钥,以免向创建者的帐户收费。

图1要求RTutor创建条形图时的结果

该应用程序的“关于”页面解释说,“RTutor的主要目标是帮助有R语言使用经验的人学习R或提高工作效率……RTutor可以用来加快使用R的编码过程。它为用户提供了一个测试和完善的代码草案。小心出现漏洞和错误。”

RTutor的代码是开源的,可以在Github上找到,所以用户可以安装自己的本地版本。然而,许可只允许用户使用应用程序用于非营利或非商业用途,或用于商业测试。RTutor是南达科他州立大学生物信息学教授Steven Ge博士个人创建的项目。

2.CodeLingo

这个多语言应用程序可以将代码从一种编程语言“翻译”到另一种语言。可用的语言包括JAVA、Python、JavaScript、C、C++、php等,包括R。这只是一个Web应用程序,可在https://analytica.shinyApps.io/codelingo/上获得。用户需要输入OpenAI API密钥才能使用它(用户可能希望在测试后重新生成密钥)。

图2 CodeLingo应用程序中的ChatGPT尝试将ggplot2图形代码转换为Python

将ggplot2 R图的代码转换为JavaScript生成输出的请求使用相当难学的D3 JavaScript库,而不是JavaScript新手更可能想要的内容,例如Observable Plot或Vega-Lite。

转换为Python的请求(如图2所示)更为直接,并且使用了用户所期望的库。然而,ChatGPT不明白“Set1”是一个ColorBrewer调色板,不能直接在Python中使用。与许多ChatGPT使用的情况一样,在编程语言之间翻译代码可能会给用户提供一个有用的起点,但是需要知道如何修复错误。

这款应用由Analytica Data Science Solutions开发。

3.askgpt

这个软件包可以在https://github.com/JBGruber/askgpt获得,对于在控制台中首次使用ChatGPT的用户来说,这可能是一个很好的起点,部分原因是它在初次启动时会给出一些指示。加载带有库的包(askgpt),它的响应是:

Hi, this is askgpt ☺.

  • To start error logging, run `log_init()` now.
  • To see what you can do use `?askgpt()`.
  • Or just run `askgpt()` with any question you want!

在不存储密钥的情况下使用login()函数,将看到一条关于如何获取API密钥的消息:

It looks like you have not provided an API key yet.

  1. Go to <https://platform.openai.com/account/api-keys>
  2. (Log into your account if you haven't done so yet)
  3. On the site, click the button + Create new secret key to create an API key
  4. Copy this key into R/RStudio

看起来用户还没有提供API密钥。

系统会要求用户将密钥保存在密匙环中,然后就可以为以后的会话做好准备了。如果用户的密钥已经存储,login()将不返回任何消息。

Askgpt的默认设置是将查询结果存储为一个对象,这样就可以将它们保存到一个变量中,如下所示:

barchart_instructions <- askgpt("How do I make a bar chart with custom colors with ggplot2?")

提交一个查询,用户会首先看到:

GPT is thinking ⠴ 

这样,用户就知道其请求已经被发送了,并且应该会得到答复,而不是想知道在用户点击提交后会发生什么。

除了软件包的通用askgpt()函数外,还有一些特定于编码的函数,例如annstate_code()、explain_code()和test_function()。这将涉及到将响应剪切并粘贴回源代码中。

对于那些熟悉OpenAI API的人员来说,软件包的chat_api()函数允许用户设置API参数,例如想要使用的模型、每个请求愿意花费的最大令牌以及所需的响应温度(将在本文后面详细解释)。

chat_api()函数返回一个列表,其中响应的文本部分在YourVariableName$choices[b[1]]$message$content中。其他有用的信息也存储在列表中,例如使用的令牌数量。

askgpt包是由阿姆斯特丹自由大学的博士后研究员Johannes Gruber创建的。它可以从CRAN安装。

4.gptstudio

这个软件包和gpttools(如下所述)具有RStudio插件可以与ChatGPT一起使用,尽管也有一些命令行函数可以在任何IDE或终端中使用。

用户可以从代码源窗格上方的插件下拉菜单或通过RStudio命令调色板(Ctrl-shift-p)搜索插件来访问RStudio中的外接工具。

根据软件包网站的介绍,“gptstudio是一个通用的助手,让R程序员可以轻松地将大型语言模型(LLM)的使用整合到他们的项目工作流中。”

其中一个插件ChatGPT启动了一个基于浏览器的应用程序,用于询问用户的R编码问题,并提供编程风格(整洁、基础或无偏好)和熟练程度(初学者、中级、高级和天才)的选项。

在下面的截图中,用户询问了作为一个具有整洁(tidyverse)风格的中级程序员,如何在R中创建散点图,

图3查询gptstudio的ChatGPT插件

使用基本编程风格询问相同的问题,生成的代码使用基础R的plot函数作为答案。

虽然gptstudio是为R编码提供帮助而设计的,但它可以利用更多的ChatGPT功能,所以可以问它任何问题,就像最初的基于Web的ChatGPT一样。例如,该应用程序的工作原理与ChatGPT工具一样好,可以编写Python代码并回答诸如“什么行星离太阳最远?”之类的一般问题。

gptstudio包的另一个插件,Source插件中的ChatGPT似乎最接近魔法。用户可以像往常一样在源代码窗格中编写代码,在代码中添加请求更改的注释,选择包含注释的代码块,然后应用插件。然后所要求的更改已完成。

当将插件应用到以下代码时:

# Sort bars by descending Y value, rotate x-axis text 90 degrees, color bars steel blue
ggplot(states, aes(x = State, y = Pop_2020)) +
 geom_col()

代码被替换为图4中突出显示的选择:

图4 Source插件中的ChatGPT示例

太酷了,但是如果运行这段代码,这些条就不会显示为钢蓝色。在geom_col()中移动fill = "steelblue"使其工作。这个错误与这个特定的插件无关,而是与ChatGPT本身的变幻莫测有关。正如以上提到的,在其他时间运行了相同的请求,其结果是准确的。

将以下代码发送到ChatGPT的源代码插件生成了一个Shiny应用程序的完整指令和代码:

# Create an R Shiny app with this data
states<- readr::read_csv("https://raw.githubusercontent.com/smach/SampleData/main/states.csv")

然而,两次提交请求返回了两个完全不同的结果——第一个是两个文件的应用程序,在使用它之前忘记加载ggplot2库:第二个调用的列实际上不在数据中。编写处理现有数据集细节的查询需要更多的工作,但是代码仍然可以作为构建的框架

gptstudio由Michel Nivard和James Wade撰写。

5.gpttools

据软件包网站介绍,gpttools软件包的目的“是为R软件包开发人员扩展gptstudio,使其更容易将大型语言模型(LLM)的使用纳入项目工作流程”。截至本文撰写之时,gpttools包还没有在CRAN上发布。与其相反,用户可以从JamesHWade/gptools GitHub repo或R Universe安装gpttools,其方法如下:

# Enable repository from jameshwade
options(repos = c(
 jameshwade = "https://jameshwade.r-universe.dev",
 CRAN = "https://cloud.r-project.org"
))
# Download and install gpttools in R
install.packages("gpttools")

该软件包的插件包括:

  • ChatGPT检索
  • 将脚本转换为函数
  • 将roxygen添加到Function(记录一个函数)
  • 建议进行单元测试
  • 文档数据
  • 提出改进建议

要运行插件,突出显示其代码,然后从RStudio Addins下拉菜单中选择该插件,或者在命令调色板中搜索它(在RStudio Addins菜单中使用Tools >显示命令调色板,在windows上使用Ctrl-Shift-P,在Mac上使用Cmd-Shift-P)。

当用户运行插件时,并不总是看到消息告诉他发生了什么,所以要有耐心。

建议改进插件在一个R文件中的函数下面生成了未注释的文本,后面跟着修改的代码。有些建议并不是很有帮助。例如,对于下面的代码:

if (exportcsv) {
 filename_root <- strsplit(filename, "\.")[[1]][1]
 filename_with_winner <- paste0(filename_root, "_winners.csv")
 rio::export(data, filename_with_winner)
 }

推荐的插件

Use `paste()` instead of `paste0()` to ensure a space is included between the names of the winners.

用户不想要文件名中有空格!尽管如此,还是无法否认书中的所有建议。以下建议似乎是合理的:

Use a switch statement instead of multiple if statements, to allow for additional functionality in the future

在这种情况下,用户更有可能使用dplyr的case_hen()或data.table的fcase(),而不是baseR的switch()。

如果用户正在使用任何软件包的ChatGPT插件,请确保有代码的原始副本,因为代码有被覆盖的风险,而用户不一定想要这样做。

6.ChatGPT

ChatGPT包提供了在R中使用ChatGPT的函数和RStudio插件,在测试时记录了10个插件。

特定于代码的函数包括comment_code()、complete_code()、create_unit_tests()、document_code()、find_issues_in_code()和refactor_code()。还有一个通用的ask_chatgpt()函数和插件,如果用户想将ChatGPT用于与代码无关的内容。

将密钥存储在.Renviron文件中:

OPENAI_API_KEY="your key"

如果用户试图在存储密钥之前运行其中一个插件,将得到一条错误消息,告诉他如何进行密钥设置。

该包位于CRAN上,或者可以使用

remotes::install_github("jcrodriguez1989/chatgpt", build_vi.NETtes = TRUE)

当用户在没有加载软件包的情况下尝试加载插件时,什么也没有发生。然后用库(chatgpt)加载了这个包,得到了这个消息:

Warning message:
In run_addin("document_code") :
 Please set one of `OPENAI_ADDIN_REPLACE=TRUE` or `OPENAI_VERBOSE=TRUE` 

按照R环境文件中的说明操作,将verbose选项设置为TRUE,因为不希望替换初始代码。

这导致在控制台中显示对ChatGPT的查询,并在控制台中显示响应。

在R环境文件中使用OPENAI_ADDIN_REPLACE=TRUE选项,并且在RStudio中选择了代码,当添加文档时,用户的一些初始代码偶尔会消失。用户最终坚持使用这个包的命令行函数而不是插件,但是可能会发现插件很有用,只要记住在试验之前复制其代码。

这个聊天软件包由Juan Cruz Rodriguez创建。

7.gptchatteR

gptchatteR号称“一个实验性的非官方包装器,用于在R中与OpenAI GPT模型进行交互,其中一个优点是它的chatter.plot()函数。

安装软件包:

remotes::install_github("isinaltinkaya/gptchatteR", build_vignettes = TRUE, dependencies = TRUE)

这确保了它还安装了所需的openai包。然后,可以加载这个包并使用:

library(gptchatteR)
chatter.auth("YOUR KEY")

在完成之后,使用chatter.create()启动一个聊天会话。

chatter_create()参数包括OpenAI模型的模型(默认为text-davinci-003), max_tokens用于用户希望使用的最大令牌数量(默认为100),以及使用如下参数设置的“温度”:

chatter.create(temperature = 0)

根据OpenAI文档,温度设置可以在0到1之间,表示“模型输出不太可能的令牌的频率”。

温度越高,输出就越随机(通常也是创造性的)。然而,这与“真实”是不一样的。对于大多数实际用例,例如数据提取和真实问答,温度为0是最好的。

包的默认值是中性的0.5。除非想要娱乐而不是获得可用的代码,否则将温度设置为0是值得的。

当进行测试的时候,这个包是工作的,但是生成了以下警告:

The `engine_id` argument of `create_completion()` is deprecated as of openai 0.3.0.
ℹ Please use the `model` argument instead.
ℹ The deprecated feature was likely used in the gptchatteR package.
 Please report the issue to the authors.

用户可以创建一个“随意”的聊天。聊天(“你的输入”)。如果用户认为需要在初始请求之后进行后续操作,可以使用chatter.feed(),它将存储用户的第一个查询以便在第二个问题中使用,以此类推。

运行以下代码后:

library(gptchatteR)
chatter.auth(Sys.getenv("OPENAI_API_KEY"))
chatter.create(temperature = 0)
chatter.feed('I have the following data in R mydf <- data.frame(State = c("CT", "NJ", "NY"), Pop = c(3605944, 9288994, 20201249))')
myplot <- chatter.plot("Make a graph with State on the x axis and Pop on the Y axis")

一个图表出现在RStudio视图窗格中。图形代码存储在myplot$code中。

gptchatteR软件包是由哥本哈根大学的博士Isin Altinkaya创建的。

8.chatgptimages

这个R包不是为了帮助用户编写代码而设计的。与其相反,它使用熟悉的R和Shiny界面来访问ChatGPT的另一个功能:创建图像。目前,基于用于训练模型的人工智能图像创建中存在许多道德知识产权问题,如果用户想将此软件包用于娱乐以外的任何内容,务必记住这一点。

也就是说,如果想尝试,需要注意它不会像通常的软件包那样安装。首先,确保其系统上也安装了shiny、golem、shinydashboard、openai、config和test。然后,在https://github.com/analyticsinmotion/chatgpt-images-r-shiny上下载整个GitHub repo,或者在https://github.com/analyticsinmotion/chatgpt-images-r-shiny上下载并解压缩.zip文件。打开chatgtimages。在RStudio中打开run_dev. Rproj文件。R文件放到项目的dev文件夹中,然后逐行运行这个短文件。这个应用程序应该在默认浏览器中打开:

图5 chatgtimages应用程序在浏览器中运行

按照存储ChatGPT API密钥的说明,用户就可以开始创建和保存图像。

其结果如图6所示:

图6从chatgtimages保存的图像

超越ChatGPT

如果用户想测试其他开源的大型语言模型,Chat with open large language models这个非R特定的工具非常有趣。在撰写本文时,它提供了9种不同的模型,还有一个“竞技场”,用户可以同时测试两种模型,并选出最佳模型。

用户需要注意其使用条款:“仅用于非商业用途。它只提供有限的安全措施,并可能产生令人反感的内容。它不得用于任何非法、有害、暴力、种族主义或性目的。该服务收集用户对话数据,用于未来的研究。”

最后提醒一下,H2o. ai有一个网站,可以在https://gpt.h2o.ai/上测试它的模型。

原文标题:8 ChatGPT tools for R programming作者:Sharon Machlis



Tags:编程   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
“不懂编程就是文盲”?别用焦虑论调裹挟家长
据3月17日中新网报道,随着科技的发展和社会的进步,科创教育逐渐走入千家万户,少儿编程作为代表,近年来更是备受瞩目。然而,“未来的文盲,就是不懂编程的人”的论调也甚嚣尘上。必...【详细内容】
2024-03-19  Search: 编程  点击:(9)  评论:(0)  加入收藏
编程二十年,38岁谷歌程序员的16条建议,涉创业、技术淘汰、拿大厂offer……
以能够让项目自负盈亏,并在这一约束下优化其增长的方式来管理和调整项目,这是这个世上最厉害的本事。距离我正式开始编程的工作已经过去二十年了。在这些年里,我有以下收获: 获...【详细内容】
2024-03-10  Search: 编程  点击:(4)  评论:(0)  加入收藏
C#异步编程:Task.Run vs. async-await,掌握基础与高级用法
概述:C#中的异步编程有两主要方式:Task.Run用于在后台线程执行同步操作,而async-await更适用于清晰表达异步流程。基础用法展示了它们的简单应用,高级用法则演示了它们的结合使...【详细内容】
2024-03-09  Search: 编程  点击:(23)  评论:(0)  加入收藏
C++多线程编程:解锁性能与并发的奥秘
今天我们将深入探讨C++中的多线程编程,揭示多线程如何解锁性能潜力,提高程序的并发性能。什么是多线程?在计算机科学中,多线程是指一个进程(程序的执行实例)中的多个线程同时执行...【详细内容】
2024-02-03  Search: 编程  点击:(69)  评论:(0)  加入收藏
主流编程语言哪个更容易学?
主流编程语言哪个更容易学?在当今数字化时代,编程语言已成为一项重要的技能,越来越多的人开始学习编程。然而,对于初学者来说,选择一门容易入门的编程语言是至关重要的。在本文中...【详细内容】
2024-01-31  Search: 编程  点击:(136)  评论:(0)  加入收藏
用于人工智能开发的主流编程语言都有哪些?
在人工智能开发领域,编程语言的选择至关重要。目前,主流的编程语言主要包括Python、Java、C++、JavaScript和Swift等。这些语言各具特色,适用于不同的人工智能开发场景。首先,Py...【详细内容】
2024-01-31  Search: 编程  点击:(131)  评论:(0)  加入收藏
不容错过的4款宝藏GPTs:程序员新宠,让编程不再枯燥!
原文来源:硬 AI自从GPT Store“开业”以来,我们就一直在使用不同的GPTs,尝试自动化一些重复繁琐的日常工作。在浩如烟海的GPTs中,虽然真正有用的并不多,很多GPTs的功能都比较局限...【详细内容】
2024-01-24  Search: 编程  点击:(46)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  Search: 编程  点击:(106)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  Search: 编程  点击:(89)  评论:(0)  加入收藏
Go编程中调用外部命令的几种场景
在很多场合, 使用Go语言需要调用外部命令来完成一些特定的任务, 例如: 使用Go语言调用Linux命令来获取执行的结果,又或者调用第三方程序执行来完成额外的任务。在go的标准库...【详细内容】
2024-01-09  Search: 编程  点击:(107)  评论:(0)  加入收藏
▌简易百科推荐
用于人工智能开发的主流编程语言都有哪些?
在人工智能开发领域,编程语言的选择至关重要。目前,主流的编程语言主要包括Python、Java、C++、JavaScript和Swift等。这些语言各具特色,适用于不同的人工智能开发场景。首先,Py...【详细内容】
2024-01-31    简易百科  Tags:编程语言   点击:(131)  评论:(0)  加入收藏
探究微处理器开发中的汇编语言的优势与挑战
在计算机编程中,汇编语言是一种低级语言,它可以直接控制计算机的硬件资源。与高级语言相比,汇编语言具有更高的运行效率和更好的控制能力,但同时也更加复杂和难以理解和维护。在...【详细内容】
2023-12-19  松鼠宝贝    Tags:汇编语言   点击:(99)  评论:(0)  加入收藏
选择适合微服务的编程语言,让你的工作事半功倍!
讨论编程语言就像是一场政治辩论。每个开发者都会过分捍卫他/她所使用的编程语言。然而,编程语言应该被看作是它们真正是的东西,即一种工作工具。每种编程语言都有特定的目的...【详细内容】
2023-12-14  爱发白日梦的后端  微信公众号  Tags:编程语言   点击:(178)  评论:(0)  加入收藏
编程语言大比拼:Python、Java、C、C++、Go 实现 'Hello World' 和九九乘法表"
应该90%的IT专业的朋友写的第一段代码就是打印"holle world",每个大学老师都会通过这个方式吸引你对课程产生兴趣。也许有的朋友学的是JAVA开发,有的学的是c,在几年前应该很...【详细内容】
2023-12-11  IT仔的笔记本  微信公众号  Tags:编程语言   点击:(216)  评论:(0)  加入收藏
TypeScript中的null和undefined的区别
在TypeScript中,null和undefined是两个特殊的值,用于表示变量的缺失或未定义。尽管它们在某些情况下可能看起来相似,并且都可以表示"没有值",但它们在语义和用法上存在一些重要...【详细内容】
2023-12-07  科学随想录  微信公众号  Tags:TypeScript   点击:(135)  评论:(0)  加入收藏
面向AI开发的六种最重要的编程语言
作者丨FATIH K&Uuml;&Ccedil;&Uuml;KKARAKURT 译者 | 布加迪审校 | 重楼出品 | 51CTO技术栈(微信号:blog51cto)在AI开发界,你使用的编程语言很重要。每种语言有其独特...【详细内容】
2023-12-07    51CTO  Tags:编程语言   点击:(121)  评论:(0)  加入收藏
NLP问题实战:基于LSTM(RNN)和Transformer模型
译者 | 朱先忠审校 | 重楼简介GPT等语言模型最近变得非常流行,并被应用于各种文本生成任务,例如在ChatGPT或其他会话人工智能系统中。通常,这些语言模型规模巨大,经常使用超过数...【详细内容】
2023-11-29    51CTO  Tags:NLP   点击:(273)  评论:(0)  加入收藏
一文了解低级和高级编程语言
中文是一种尽量用简短文字表达更多含义的语言,所以很多时候一句话的含义很容易曲解成别的意思。最近,有人提出C语言是一种中级语言的概念,所以特意介绍一下低级语言和高级语言...【详细内容】
2023-11-23  数字随行  微信公众号  Tags:编程语言   点击:(232)  评论:(0)  加入收藏
JetBrains 发布 2023 调研报告:77% 开发者使用 ChatGPT
IT之家 11 月 21 日消息,JetBrains 日前公布了《2023 开发人员生态系统现状》调研报告,汇集了来自全球 26,348 位开发者的调研结果。《开发者生态系统现状报告》涵盖广泛的主...【详细内容】
2023-11-21    IT之家  Tags:JetBrains   点击:(238)  评论:(0)  加入收藏
Go vs Rust:文件上传性能比较
一、设置所有测试都在配备16G内存的 MacBook Pro M1 上执行。软件版本为: Go v1.20.5 Rust v1.70.0测试工具是一个基于 libcurl 并使用标准线程的自定义工具,能够发送多部分请...【详细内容】
2023-11-20  技术的游戏  微信公众号  Tags:Rust   点击:(174)  评论:(0)  加入收藏
站内最新
站内热门
站内头条