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