网络寻租

Programmer, Gamer, Hacker

我们需要淘汰一些编程语言

| Comments

在IT领域,因为从业者素质参差不齐的原因,很多垃圾东西在流传,其中危害最大的一类就是垃圾编程语言。 包括但是不限于:bash,perl,javascript,php,python。

这些语言为什么烂

他们的设计者并没有受到很好的编程语言设计教育,或者没有足够的时间进行设计, 造成的结果是,这些编程语言的设计存在很多问题。比如语法设计有问题,在语法处理上存在设计错误,写法晦涩不容易弄懂影响阅读, 缺少很多保证程序安全的设计,带有性能问题,语言本身缺少很多核心功能等。 具体内容可以去看王垠的博客

我稍微列一下烂在哪里:

  • bash: 缺少大量的编程语言抽象特性,语法是程序员乱设计的,接口是基于字符串而不是定义明确的数据结构
  • perl: 语法也是程序员乱设计的,难以阅读
  • php:乱语法,现在改进了很多,但是为了兼容还是带有一堆历史问题
  • javascript:几十天做出来的一个没有完善好的类lisp语言,早就应该被淘汰掉,因为web流行危害严重
  • python:比上述语言好一些,但是也有一堆设计缺陷,比如用缩进替代定义明确的语法块,匿名函数实现烂等

烂语言的害处

编程语言是程序的组成部分,类似于房屋的原材料。一旦你选择了编程语言,以后再要替换只能全部重写。 软件后续的维护和拓展都只能基于这种语言,会延续到软件的整个生命周期。 引入了一个烂语言,他的危害会覆盖软件的整个生命周期,并且像癌症一样,随着软件的传播而蔓延, 进而伤害其他依赖这个软件的系统,同时也给这个烂语言打了广告。

如何处理

对于旧的用了烂语言的项目,尽量以维护为主,不要增加新功能延长它们的生命周期。 比如systemd替代了旧的init系统,就淘汰掉很多垃圾bash脚本。

新的项目尽量不要用这些烂语言,可以寻找一些替代品。很多语言经过了良好的设计,值得推荐,比如java,csharp。 脚本语言和Linux下系统语言我还没有找到好的选择。我现在用Ruby但是Ruby也有很多问题,不值得长期使用。 Linux下系统语言可能有Rust,D,我不确定是否足够好,但是可以尝试。 Javascript可以用高层语言替代比如TypeScript,Webassembly推广之后会有很多好语言可以使用。

Comments