博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我为什么开发新语言

Posted on 2018-01-24 00:46  xuld  阅读(1045)  评论(5编辑  收藏  举报

为什么有这么多的编程语言

1 改革换代,适应时代发展需求

2 特定的领域需要特定的语言

3 没有一个语言可以完美适配各种场景

4 个人习惯

 

所有语言都有一个发明初衷

Lisp - 一切抽象为数学符号,利用公式自动计算结果

C - 汇编太繁琐,我能更简洁地写逻辑

C++ - C 只能写普通逻辑,我能用面向对象编程

Java - C++ 兼容性差,代码复杂,还容易出错,我能做更稳定的服务

C# - Java 你说的对,但咱爹有钱不想认干儿子,所以我就诞生了,我在 C++ 和 Java 基础上做了一些改进,理论上应该是最强大的语言了

Python - 我只想做一个运维的小工具,你还让我写个类先?写你妹啊,我能飞速的写好代码下班走人,而你还在等编译结果...另外,这么多括号看得我眼花...能不能让我少敲几个字...很累的

Ruby - 一切都是对象,一切都能点,是不是很爽

JavaScript - 领导让我做个脚本引擎,那我就参考 Java 做一个好了,时间有限,先做一个凑合吧,至少能用,咦,居然还挺好用

Swift -  你们谷歌认领了 Java,微软养活了 C#,而相比我的儿子 Object C 好像确实搓了些,算了,我生个二胎吧,肯定比你们简单很多

Kotlin - 我给这么多语言做了 IDE,不想终生为人服务,就冲着我阅人无数的优势,我把你们的优点集中一下...发明个新语言,功能我一顶仨

 

虽然语言种类繁多,但还是可以分为以下几类

1 以 C 为代表,适于性能要求非常高,不常更新的系统编程,同分类还有 C++,汇编

2 以 Java 为代表,适于性能有一定要求,稳定,适合大型企业项目开发,同分类还有 C#,Swift,Kotlin

3 以 JavaScript 为代表,适合频繁更新,没有性能要求的中小项目开发,同分类还有 PHP,Python,Ruby,Lua

4 以 Lisp 为代表,适于特定领域的,同分类还有 ML,SQL,CSS

 

为什么开发者热衷于某个语言后就不想看别的

1 学习需要精力,有这时间还不如来一盘王者荣耀

2 我已经习惯现有语言了,有些不一样的地方改改也就算了,但完全一样的东西也要改就太不习惯了,比如以前一直用 null,你告诉我要用 nil,凭啥不用 null,大家都用 null 不好吗,有区别吗?

3 别的语言确实有一些先进的功能,但没有这些功能也可以接受,就像我现在已经掌握的语言一样

4 学别的语言好找工作吗?工资高吗?

 

在知道以上这些道理的同时,我为什么想做新语言

1 我精通 C++,C#,JavaScript/TypeScript,排名前 10 的语言也都会写,更习惯于 C 风格的代码,和大部分人,特别是一线码农习惯差不多。所以新出的一些和 JavaScript 风格上有明显区别的语言都不怎么喜欢,比如 Kotlin,Groovy。所以我希望做一个尽量和 JavaScript 相似的语言,毕竟 JavaScript 是目前所有程序员都会接触到的交集

2 我喜欢 JavaScript 的简洁,但也希望拥有接近 C++ 的性能,毕竟写的代码如果慢的要死,和刚毕业的实习生有啥区别。所以我希望语言的性能可以有保证

3 JavaScript 虽然好,但是坑也挺多的,这可不利于在大型项目中使用,所以我希望语言可以规避掉其中的坑,毕竟语言是工具,工具最重要的是稳定。

4 我希望一门语言可以做前后端,手机和桌面端。

 

综上,我决定开发这样一个新语言

1 总体类似 JavaScript,原来会写 Java/C# 的人也可以很快习惯。

2 性能好,但又不能让用户写和 C++ 一样复杂的代码,所以怎么办:利用高智能算法自动优化性能,比如可以自动类型推算,合并循环,删除用不到的代码,自动寻找合适的数据结构和算法

3 稳定为首,去坑,在保证功能前提下尽量简单

4 实用,毕竟是冲着实际项目去的,一定要更好满足项目需求。还需要很强大的 IDE 和社区支持

5 一期主要考虑生成能在浏览器跑的 Javascript,二期考虑生成 JVM 等其它环境。

 

开发语言是一个大工程,如果你有兴趣参与这个开源项目,共创国产编程语言品牌,请留言