LSP和LLVM有感
试想这样一种场景:如果你是一个电话提供商。现在有一个比较贫困的地区,你去那边建立这样一个电话系统。当然,最开始会很少的人愿意安装,毕竟大家都比较穷,能装得起电话的人呢有限。比如只有3个人。这个时候,这三个人需要彼此能够联通。从我们最直观的角度想,我们会怎么去做这个拓扑结构?因为电话原理比较简单,我们最开始会想到的方案可能就是,这三个人彼此连接一条线,3个电话,3条线,就能满足要求了。
世界越来越纷繁,越来越多样化,对我们程序员来说也是一样。
你可曾想过,世界上有多少种编程语言?每年新产生的语言又有多少种?我们能学会几种?
C、Java、C++、Python、Rust、Shell、Go、Javascript、R、Ruby、Swift、Objective-C、Kotlin、XML、JSON…
你可曾想过,世界上有多少种IDE,每年新产生多少种?我们能学会几个?
vim、emacs、sublime text、vscode、visual studio、xcode、eclipse、intelliJ、goland、Source Insight…
你可曾想过,世界上有多少种类型的CPU,CPU在不断迭代演进,我们程序员编写的代码怎么适配这么多种CPU?
x86、x86_64、arm、risc v、power PC
诚然,一个程序员会用的语言是有限的,然而,
我们的使用的IDE却要不断面对各种汹涌而来的编程语言,如果你是一个IDE开发者,如何支持越来越多的语言的格式化、语法高亮、跳转?你会不会头疼?
我们的编译器却要不断面对各种汹涌而来的编程语言,如果你是一个编译器的开发者,如何支持这么多种语言的这么多种CPU架构的编译?
LLVM是 语言和CPU架构的桥梁 LSP是IDE和语言的桥梁