前不久回答了一个关于后端语言选型的问题,写的回答也让笔者有了很多感触,因此在这里谈论下自己对后端语言选型的心得体会,姑且算是抛砖引玉,希望大家能分享各自的心得。
后端语言发展历史
Web 后端语言的兴起是从静态网页向动态网页的发展所产生的,最早的动态页面技术就是 CGI 技术,将客户端的输入交给 CGI 程序,然后将 CGI 程序的输出返回给客户端。早期的 CGI 程序只要是任何有标准输入输出的语言都可以编写,这也就是第一代后端平台。
后来为了简化 CGI 程序的修改编译发布的流程,就有了脚本语言实现 CGI 应用。也就是 Perl 这样的语言。也就是第二代后端平台。虽然 Perl 作为脚本语言解决了开发效率的问题,但是它同样需要在程序代码中掺杂 HTML 语言,为了解决这个问题,就有了 PHP 这样的将 HTML 和 程序代码混杂,并且能快速开发的语言。同时,Java EE 的标准也提出了 JSP 这样的解决方案,也就是第三代后端平台,从此,现代的后端开发基本就形成了。再往后来,也就是 Node.js Go Swoole 这种以事件循环、常驻内存为特点的后端平台,姑且能算是第四代后端平台。而目前来说,第三代和第四代开发平台是并存的。
语言优缺点
C/C++
C 语言虽然是非常贴近操作系统的语言,能和操作系统 API 很好的交互,但是 C 语言并没有现代化工程开发所需要的面向对象功能,当然也缺乏泛型之类的功能,如果以 CGI 的形式开发,那么缺点非常明显,这也是第二代后端平台兴起的原因。
C++ 具有现代化工程开发所需要的各种功能,但是它同样有缺点: