【大杂烩】Web开发大杂烩
链接:https://www.zhihu.com/question/508173519/answer/2285607875
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
C++理论上说可以做任何开发, 只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。对计算量大又想高效的前后端应用,C++可能会合适。且Web Assembly已经全面落户最新的Chrome、Firefox、Edge、Safari等主流浏览器。可以将C++源码编译成wasm二进制文件直接在浏览器里高速运行(使用Emscripten编译更加便捷)。对很多前端应用来说,使用C++加速可能并没有必要。但是如果想要在前端产品中加入机器视觉,自然语言处理,机器学习等模块,WebAssembly将成为一个极好的选择。
但C++不建议做web开发
1、Web开发的工作是处理字符串,请求的url是字符串,http头是字符串,输出的html css js都是字符串,从数据库读取的数据99%也是字符串。而C++里最差的就是处理字符串。
2、C++没有语言内置的String类型,只能靠std::string这个极其简陋的字符串类,大概是所有C++框架里功能最差的string类了。
3、C++没有正则表达式,做个简单的字串匹配都要自己写,所以当年perl一出来,所有人就毫不犹豫地放弃用c++写CGI了。
4、C++没有GC,大量的字符串处理,数据处理,所有内存都要程序员自己管理,是非常容易出错的,缓冲溢出,内存泄漏是分分钟都会发生。如果CGI是进程隔离的,那么跑不了几个并发请求,如果是共享进程,那么就会总是崩溃。
5、C++是编译语言,只有编译后把二进制可执行上传到服务器才能执行,哪怕改一行代码几个字符,也要折腾很久,远不如脚本语言方便,开发效率太差了。
不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;
6、因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器,得不到技术支持,没人帮你,因此也就慢慢没有了。
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步