

AI谈编程语言(Rust、Go、TS、Python)
source link: https://www.wyr.me/post/750
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

AI谈编程语言(Rust、Go、TS、Python) - 轶哥
在ChatGPT等AI大模型流行前2年,我的代码就已经有超过50%是AI辅助编程情况下完成的。之所以AI编程有那么大的占比,是因为我的开发基于低代码DSL,编程过程中存在很多“套路”,因此我的开发效率通常是同类型任务开发者的2-6倍(效率与具体工作内容密切相关)。

上图为2022年使用Tabnine辅助编程中,AI自动完成的代码占比情况。
由于ChatGPT对中文注释的理解能力更强,目前我已经由团队版Tabnine切换为Github免费提供给我使用的Github Copilot,效率只增不减。
现今AI辅助编程大行其道,我们再也不用纠结于专精某一门编程语言了。毕竟编程语言设计之初就是为了人类更好的和计算机沟通,如今很多事情可以在AI帮助下快速完成,在掌握主流算法和基础数据结构的基础上,我们可以自由选择对应场景所适合的编程语言,提高效率的同时最大化利用语言优势。

截至目前(2023年5月12日),我所使用的主要编程语言占比情况如上图。

最新一周使用的编程语言如图,可以看到主要是Golang、Rust、JavaScript、C++,移除的代码主要是JAVA和PHP。近期主要在做任务管理相关的开发。

最近一个月各个编程语言的使用变化情况。近期主要在做Web开发(API开发),算法练习。

最近一年各个编程语言的使用变化折线图。
包括自有统计数据以来每隔六个月统计的编程语言使用情况等数据,我均公开在yi-ge (Yige) (github.com)。
目前来看,我本人近期使用较多的编程语言是TypeScirpt、Golang、Rust、Python。我就这几个编程语言擅长的应用场景询问了GPT4,以下是AI的回复。
rust适合做哪些事情?
Rust是一种高性能、安全和内存管理优越的系统编程语言,适合以下几种场景:
- 系统编程:操作系统开发、嵌入式系统、底层库等。
- Web后端:使用Actix-Web, Rocket等框架开发快速且安全的Web服务。
- WebAssembly:用于创建高效且安全的浏览器运行时代码。
- 并发与多线程:Rust的所有权系统有助于避免数据竞争等问题。
- 加密与区块链:构建安全、高效的加密应用程序和区块链平台。
- 游戏开发:通过Amethyst等游戏引擎进行高性能游戏开发。
- 网络编程:利用Tokio等异步库实现高性能、低延迟网络应用。
- 命令行工具:开发高效、可靠的命令行工具和脚本。
- 跨平台开发:支持多个操作系统和硬件架构的应用程序开发。
总之,Rust适合需要高性能、安全以及内存管理方面的优势的领域。
golang适合做哪些事情?
Golang(Go语言)是一种编译型、静态类型的编程语言,以简洁、高性能和高度支持并发等特点而闻名。Go适合以下场景:
- Web后端:使用Gin, Echo等框架开发高性能Web服务。
- 微服务:构建轻量级、可伸缩的微服务架构。
- 并发与多线程:Go协程 (goroutine) 和通道 (channel) 支持简单且高效的并发编程。
- 网络编程:实现高性能、低延迟网络应用,如代理服务器、负载均衡器等。
- 分布式系统:构建可扩展、分布式的计算和存储系统。
- 容器技术:例如Docker,使用Go编写的容器管理和虚拟化工具。
- 命令行工具:开发简易、快速的命令行工具和脚本。
- 数据管道和ETL:处理大数据集和构建数据转换管道。
- 云原生应用:支持Kubernetes等云原生应用开发。
总之,Golang适合需要轻量级、高性能、简洁代码以及高度并发的领域。
TypeScript适合做哪些事情?
TypeScript 是 JavaScript 的一个超集,为 JavaScript 提供了静态类型支持。它适用于以下场景:
- Web前端开发:结合React, Angular, Vue等流行的前端框架进行更强大、可维护的前端应用开发。
- Web后端开发:使用Node.js 和 Deno,结合Express, Koa, Fastify等框架进行后端服务开发。
- 跨平台桌面应用:利用Electron或Tauri等工具构建跨平台桌面应用程序。
- 跨平台移动应用:通过React Native, NativeScript 或 Ionic 等框架进行移动应用开发。
- 游戏开发:借助Phaser, Three.js等库进行2D和3D游戏开发。
- 编辑器插件和扩展:为Visual Studio Code等编辑器编写插件。
- 前端工程工具:构建前端工程化工具和脚手架,如Webpack插件、Gulp任务等。
- 云函数与Serverless:在AWS Lambda, Azure Functions等云平台上部署基于TypeScript的无服务器应用。
总之,TypeScript 主要适用于需要类型安全、高可维护性以及与现有 JavaScript 生态系统协同工作的场景。
Python适合做哪些事情?
Python 是一种通用、易学的编程语言,适用于多种场景:
- Web开发:使用Django, Flask, FastAPI等框架进行Web应用及API开发。
- 数据科学:借助Pandas, NumPy, SciPy等库进行数据分析与处理。
- 机器学习:通过TensorFlow, PyTorch, scikit-learn等库进行模型训练和预测。
- 自然语言处理:使用NLTK, spaCy, Gensim等库进行文本处理、分析及生成。
- 爬虫与网络爬取:利用BeautifulSoup, Scrapy等库获取网络数据。
- 桌面应用程序:结合Tkinter, PyQt, Kivy等库构建跨平台桌面应用。
- 游戏开发:借助Pygame, Panda3D等库进行2D和3D游戏开发。
- 脚本与自动化:编写各种实用脚本以简化日常任务和系统管理。
- 物联网(IoT):利用树莓派、Arduino等硬件平台开发智能设备。
- 云计算与DevOps:在AWS, Azure或Google Cloud等云服务上部署应用并进行自动化运维。
总之,Python是一种广泛应用的编程语言,适合从初学者到专业人士在多个领域中使用。
以下是对TypeScript、Golang、Rust和Python擅长的应用场景的总结分析:
- TypeScript:
- 强项:前端开发、类型安全、高可维护性
- 场景:Web 前后端开发、跨平台桌面/移动应用、游戏开发、编辑器插件与扩展、前端工程化工具、云函数与Serverless
- Golang(Go):
- 强项:简洁、高性能、高度并发
- 场景:Web 后端开发、微服务、并发和多线程、网络编程、分布式系统、容器技术、命令行工具、数据管道与ETL、云原生应用
- Rust:
- 强项:高性能、内存安全、底层系统开发
- 场景:系统编程、Web后端、WebAssembly、并发与多线程、加密与区块链、游戏开发、网络编程、命令行工具、跨平台开发
- Python:
- 强项:通用性、易学性、丰富的库和框架
- 场景:Web 开发、数据科学、机器学习、自然语言处理、爬虫、游戏开发、脚本、物联网、云计算
在不同场景下选择最适宜的编程语言将有助于提升开发效率、降低风险,并充分利用AI技术带来的巨大潜力。
</div
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK