在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的虽然现在有这么多编程语言,但是似乎没有哪一种编程语言能够解决所有的问题,就像在生活中有锤子、扳手等工具,就连人类沟通的语言都有成百种,不同的领域还有不同的交流语言,比如数学领域有数字符号,音乐领域有音符等。
此外,回到编程语言,除了大家所知道的通用编程语言 C, C++ 等,在领域内也有很多领域编程语言比如 JSON, YAML, XML 等,统一固然是好的,我自己本身作为一名编程语言设计和编译器开发者,深感其中的困难,有时不仅不太好统一成同一种语言解决一种问题,甚至还要发明和使用新的编程语言。目前我自己的工作就在设计和实现一门新的领域语言叫做 KCL (自身使用 Rust 语言实现) 用于云原生配置和策略等场景。为什么不直接使用通用语言的原因是在这块特定的场景下通用语言一般是 Overkill 的,即远远超过了需要解决的问题,通用语言存在各式各样的安全问题,比如能力边界问题 (启动本地线程、访问 IO, 网络,代码死循环等不安全隐患)。通用语言一般用来编写客户端运行时,是服务端运行时的一个延续,不适合编写与运行时无关的配置,最终被编译为二进制从进程启动,稳定性和扩展性不好控制,而配置语言往往编写的是数据,再搭配以简单的逻辑,描述的是期望的最终结果,然后由编译器或者引擎来消费这个期望结果。