当前位置: 首页 > 科技观察

谈谈服务器开发语言比较

时间:2023-03-18 14:22:10 科技观察

C#开发效率:Windows下可以使用VisualStudio开发,其他平台可以使用MonoDevelop,非常方便运行效率:JIT性能优化比较到位,可以适应90%的性能环境部署方便:可以生成交叉编译其他平台的可执行文件调试方便:VisualStudio和MonoDevelop都非常方便调试,还可以远程调试做,代码比较啰嗦崩溃处理:错误可以用trycatch捕获网络困难库编写:一般,注意gc问题第三方网络库和框架数量:一般Golang开发效率:高运行效率:在并发上很有优势,对于CPU的利用率比较高,没有虚拟机部署在本机操作中。方便:一次编译到处运行,没有任何运行时库依赖。调试方便:在实际运行中,单线程挂载调试器是可行的,但变量显示不正确,开发期基本采用。以日志形式查错入门:语言简单,功能少,新手一周内可以贡献代码热更新:不能热更新,语言不能编译成DLL,不能加载DLL支持(。对接:非常方便,代码简化崩溃处理:崩溃后通过命令行打印堆栈,任何崩溃错误都可以在程序中捕获并继续运行网络库编写难度:简单,比Csocket简单第三方网络库和框架:较少Skynet(lua+C)开发效率:基于动态语言的开发,第一次写起来比较快,后期维护和重构在查错上需要一定的时间运行效率:基于luajit的运行效率还是可以接受的,部署方便性:方便,只需要重新编译底层修改,大部分时候只需要更新lu一个文件调试方便:不是很方便,基于日志的方式进行错误检查易用:lua语言的一些特性不同于C系列语言,基于需要一定的时间去学习和适应演员模型。热更新:和Erlang类似,热更新可以精确到函数层面。Web对接:有一定的http支持,社区会逐步完善。库编写难度:自成体系,无需编写第三方网络库和框架数量:通过社区慢慢提升C++开发效率:编译速度慢,文件多,通用库少运行效率:原生速度基准部署方便:write各种make更高门槛调试方便:可以用VisualStudio进行Windows平台调试入门:2~3年经验的老手还是会写死机和漏码热更新:通过DLL进行Web对接:代码啰嗦,第三方库少Crash处理:Windows下可以使用SEH捕获段异常,其他平台crash后只能进行coredump分析,容错性很差简单,但一般难度不低第三方网络库和框架数量:很多C#是第二梯队。天网不太容易上手,所以只有两位数的团队在用,但整体表现还是比较不错的。对于老团队来说,C++的服务器工具链和框架已经比较成熟,完全没有更换的必要。对于新语言,当难以对接SDK时,可以尝试Golang,对web有优势,进行混合语言开发。对于新团队,优先考虑开发效率、易用性和部署效率。C#、Golang、JavaScript等新兴语言会让你事半功倍。对于不需要服务器选择的大型服务器,天网的actor模型会更容易扩展。对于大公司、好项目、上线后需要热更新的bug修复,C#、C++、Erlang会是首选,但始终要根据团队的熟悉程度来选择语言,而贸然使用新语言的风险也很大