11种服务器编程语言对比(附游戏服务器框架) 2020.06
生活随笔
收集整理的這篇文章主要介紹了
11种服务器编程语言对比(附游戏服务器框架) 2020.06
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
各語(yǔ)言對(duì)比
| Java | 14 | 2 | 是 | 中 | ||||
| Python | 3.8 | 3 | 是 | 動(dòng)態(tài) | 低 | |||
| C++ | 17 | 4 | 高 | 不適合 | ||||
| Node.js | 14 | 7* | 是 | 動(dòng)態(tài) | 低 | |||
| PHP | 7.4 | 8 | 是 | 動(dòng)態(tài) | 低 | 不適合 | ||
| Go | 1.14 | 12 | 是 | 中 | ||||
| Ruby | 2.7 | 13 | 是 | 動(dòng)態(tài) | 最低 | 不適合 | ||
| Rust | 1.44 | 20 | 高 | 不適合 | 獨(dú)特的內(nèi)存安全機(jī)制 | |||
| Lua | 5.4 | 38 | 是 | 動(dòng)態(tài) | 低 | 不適合 | 通常配合 c/c++ 使用 | |
| Erlang | 23 | 50+ | 是 | 動(dòng)態(tài) | 低 | 函數(shù)式編程 | ||
| .NET | 中 | 開發(fā) windows 服務(wù)器 |
* python 為使用 pypy 的性能
* 語(yǔ)言本身的性能主要體現(xiàn)在CPU密集型任務(wù)中,且不同類型的任務(wù)差距較大,對(duì)于IO密集型任務(wù)主要考慮是否容易實(shí)現(xiàn)高并發(fā)
網(wǎng)站語(yǔ)言使用率
Java
- 功能強(qiáng)大,類庫(kù)完善,適合開發(fā)各種大型項(xiàng)目,適合多人開發(fā)
- 較好的開發(fā)效率和運(yùn)行性能
- 新版本解決了 GC 高延遲的問(wèn)題,可用于開發(fā)低延遲服務(wù)器
- Spring Boot 解決了 Spring 過(guò)于臃腫的問(wèn)題,可以快速搭建小型服務(wù)器
- 不支持協(xié)程(未來(lái)有計(jì)劃支持,見 Project Loom)
Python
- 隨著機(jī)器學(xué)習(xí)的興起迅速流行起來(lái),也可以單獨(dú)作為腳本使用
- 適合快速搭建中小型服務(wù)器
- 腳本語(yǔ)言的通病,不適合開發(fā)大型項(xiàng)目,較難維護(hù)和重構(gòu)
- 一些服務(wù)器使用底層 c/c++、上層 python 開發(fā)
C++
- 系統(tǒng)級(jí)編程語(yǔ)言,常用于系統(tǒng)軟件或嵌入式
- 高性能
- 學(xué)習(xí)成本高,開發(fā)效率低,內(nèi)存不安全,非常容易寫出 bug
- 曾經(jīng)是游戲服務(wù)器常用的語(yǔ)言(據(jù)說(shuō)騰訊游戲多使用c++),但現(xiàn)在可以用 Java、Go、Rust 等代替
- 非跨平臺(tái),但問(wèn)題不大,服務(wù)器一般是 Windows 開發(fā),Linux 運(yùn)行,Visual Studio 本身就支持這一點(diǎn)
可以使用 Visual Studio 在 Windows 上編輯、調(diào)試 linux c++程序,而程序運(yùn)行在遠(yuǎn)程Linux服務(wù)器、或Windows 的 linux 子系統(tǒng)中
https://docs.microsoft.com/en-us/cpp/linux/download-install-and-setup-the-linux-development-workload?view=vs-2019
Node.js
- 使用 js 語(yǔ)言,適合前端人員開發(fā)后端
- 適合做 serverless 開發(fā)
- 除此之外 Node.js 在性能、高并發(fā)、易用程度上并沒(méi)有獨(dú)特優(yōu)勢(shì)
PHP
- 世界上 80% 的 Web 服務(wù)器由 PHP 開發(fā)
- 適合快速搭建中小型 Web 服務(wù)器
- 多使用 Laravel 框架
- 作為腳本語(yǔ)言,同樣不適合開發(fā)大型項(xiàng)目
- PHP7 版本極大提升了性能(仍比Java差很多)
Go
- 語(yǔ)法簡(jiǎn)潔、設(shè)計(jì)良好,易于學(xué)習(xí),開發(fā)效率高
- 運(yùn)行效率較高
- 便于開發(fā)高并發(fā)服務(wù)器
- 目前發(fā)展很快,很多公司都開始用 Go 開發(fā) Web 服務(wù)器 、游戲服務(wù)器或系統(tǒng)級(jí)應(yīng)用
- Go 沒(méi)有繼承只有接口,這不是一個(gè)缺點(diǎn),方法覆蓋并不符合里氏替換原則,很難維護(hù)
Ruby
- 適合快速搭建中小型 Web 服務(wù)器
- 使用 Ruby On Rails 框架
- 腳本語(yǔ)言,做 Web 開發(fā)與 PHP、Python 類似
- 性能很低
Rust
- Rust 是系統(tǒng)級(jí)編程語(yǔ)言,性能可媲美 c 語(yǔ)言
- 有獨(dú)特的內(nèi)存安全機(jī)制
- 微軟發(fā)現(xiàn) 70% 的操作系統(tǒng) bug 是空指針等內(nèi)存安全問(wèn)題造成的,于是嘗試用 Rust 代替 c/c++
- 可用于開發(fā)高性能服務(wù)器
- 學(xué)習(xí)成本高
- 類庫(kù)較少
Lua
- 腳本語(yǔ)言,可用于擴(kuò)展 c/c++
- 常用于編寫游戲服務(wù)器的上層邏輯
Erlang
- 函數(shù)式語(yǔ)言
- 便于開發(fā)高并發(fā)、分布式服務(wù)器
- 常用于游戲服務(wù)器、消息系統(tǒng)等
.NET
- .NET 是一個(gè)平臺(tái),支持 c#、VB、ASP等語(yǔ)言,有一個(gè)類似JVM的公共語(yǔ)言運(yùn)行庫(kù),Web 開發(fā)用到 ASP.Net、ASP.Net MVC、ADO.Net 等
- 用于開發(fā) Windows 服務(wù)器,目前也支持跨平臺(tái)
- 適合開發(fā)大型項(xiàng)目
開源游戲服務(wù)器框架
| pomelo | Node.js | 易擴(kuò)展 分布式 適合小游戲 | 10.9k | 作者為網(wǎng)易 |
| Skynet | c lua | 消息處理框架 | 9.1k | 作者為網(wǎng)易云風(fēng) |
| KBEngine | c++ Python | 適合大型 MMO | 4k | |
| leaf | go | 游戲框架 | 3.6k | |
| mqant | go | 分布式微服務(wù)框架 | 1.9k | |
| goworld | go | 分布式 | 1.5k | |
| cellnet | go | 分布式 | 3.2k | |
| pitaya | go | 分布式 | 0.6k | |
| Scut | c# Python lua | 游戲框架 | 1.2k | |
| Cuberite | c++ | Minecraft 服務(wù)器 | 3.2k | |
| agones | go | 基于k8s 分布式 | 3.2k | |
| NoahGameFrame | c++ c# lua | 可擴(kuò)展 分布式,可用于 MMO MOBA | 2.5k | |
| ET | c# | 配合 Unity3d 使用 | 3.5k |
編程語(yǔ)言族譜
https://www.levenez.com/lang/lang.pdf
總結(jié)
以上是生活随笔為你收集整理的11种服务器编程语言对比(附游戏服务器框架) 2020.06的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: XSS漏洞扫描器(2种方法)
- 下一篇: 舞台音效控制软件_音频控制软件哪个好?