- 求职 : 软件工程师
- 论坛徽章:
- 3
|
我一直想设计自己的编程语言,也一直在努力。
我厌恶 C,C++, Java,Python(现在好多了),还有很多很讨厌。比较喜欢 Perl,Ruby,Scheme, newLISP, Clojure, Io, Lua, 但总是有些遗憾,都不是我心目中的语言,也许只有我自己设计的语言才是属于自己的语言。我的语言要有以下特点:
1. 语法能很快修改,因为当我发现了更简洁的表达形式,或者要针对特别语言环境编写代码时,现有的语法特性无法支持。如果修改语法比我耐着性子痛苦写别的语言代码的工作量要大的话,就算了。也就是说,语言的语法是分离出来的。这种语言应当有一种子语言是描述语法本身的。
2. 这门语言的基本语法简单,因为我很笨,记不住那么多的语法。想扩展语法,只需要增加一个关键字抽象就可以了。而且大部分的抽象不需要修改源码,一个宏就搞定。
3. 这门语言可以方便的转换成许多语言,它能感知周围的语言环境,能生成相应的语言代码,和周围的环境进行交互。
4. 至于并行,在需要并行的语言环境中,这门语言就可以启用相关的关键字了。
5. 至于内存布局之类的,还是让那些研究底层的去考虑吧,CPU 的架构不断改变,机器语言也会不断升级,寄存器越来越快,缓存越来越大,内存越来越便宜,硬盘越来越海量,这些存储方面的苦力,还是让对底层硬件感兴趣的硬件程序员去考虑吧。
6. 要有可选的类型系统,但不是强制要求的,因为这个语言应当有最起码的类型推断功能,如果连 34 都不知道是什么数据类型的话,只能说设计这门语言的人和猪差不多了。当进行深层次优化的时候,可以启用备用的类型系统,对函数设计,返回值进行类型优化。但类型不应当成为快速开发原型的障碍。
7. 这门语言不会像 Java,Ruby,Haskell 等语言一样,强制我去用一种思考模式,编程范式去写代码,它允许我用函数式,面向对象,面向过程,甚至是面向需求,总之,哪种方式最适合当前的项目,就用什么。
8. 这门语言肯定不会是那种需要一个编译器去编译,然后去运行的语言,因为太浪费生命了。
如果这些要求都达不到,就更别说高亮的语法文件,合适的编辑器,成熟的社区,快速的反馈,完善的模块,大量的用户,多领域的应用了。
世界上已经有 3000 多种语言了,我相信我不会设计出比别人优秀的语言。我也不指望别人使用我的语言,我只希望自己用。 |
|