Java/Python/Lua/Lisp的胡思乱想
本已入睡,但脑海中不停翻滚几个编程语言的好坏,于是爬起来写博了
Java – 我接触时间最长,自认最拿手的
Java的语法非常精辟,但相对于当前流行的动态语言又显得非常糟糕. Java发展了这么多年,一直保持非常好的兼容性和持续改进,以前是Sun这个善意的独裁者,现在是邪恶的Oracle. 有很长一段时间,我一直认为跨平台是Java最大的优势,直至最近,我的想法改变为: Java跨平台承诺,是各种第三方类库繁荣发展的根本源泉;苛刻的静态类型检查,令人厌恶的声明式异常机制,恰恰成就了Eclipse之类的强大IDE,因为在Java中,方法的调用是可预知的,可控的,可推导的;多年发展的JVM,在我看来,依旧是顶级的虚拟机实现;神奇的Java语言,其GC机制是精益求精,大家都在骂gc,但大家都在使用. 当年我爱上Java,是因为这种语言能表达任何我想实现的东西,为此我把多少想法动手敲了下来. 我是这样描述的: 如果一件事手工完成需要1个小时,而编写一个Java程序来完成,编码需要59分钟,运行1分钟,那我必然选后者. 现在基本上是,东西拿到手,立马出Java实现的思路,然后考虑用Java来做是否合适
Python – 与操作系统交互可以很美妙
我喜欢Python,但它不够好 Python语法很优美,写出来比Java好看.但,文档太烂,类库太乱!! 虚拟机(python解析器)太慢!! 没有一款足够好用的IDE,因为在我看来IDE是提高生产效率的关键因素之一. Python总体设计还是不错的,就是有些细节非常反人类,例如import和变量作用域问题,无数次踩坑!! Python访问操作系统提供的东西实在方便,比Java节省80%以上的代码,但还是那句,文档太烂,不到抛错的时候,就根本没想到某某方法竟然能抛出异常!! 真不明白为何Python不改进一下虚拟机的性能呢?!! 现在连js都有V8引擎了!!
Lua – 简约,而不简单
这种语言简直就是1天学完语法,1天看完API,开工干活的级别. – 呵呵,有点夸张了 整个语言,就1w行左右,源码仅那么几百k,实在让我惊叹. 这种语言还是很不错的,“只做一件事,做好一件事”,就是做最好的嵌入式语言. 突然很期待有一本Lua源码剖析,呵呵,看看这语言是如何实现出来的
Lisp – this is another world
没错,那是另外一个世界.这个语言给我最直接的觉悟是,我所编写的任意代码,其实就是对语言的扩展,例如nutz,其实就是JDK的一个超集. Lisp的精髓,就存在于宏,变量,函数 3种基本元素中 真正被执行的Lisp代码,只有变量和函数,而最精妙的宏,是用于改写源码的. 包含宏的代码–>展开宏–>变量+函数 宏,所接受的input就是源码本身,输出结果同样是源码. 实际上就是2种源码,一种是你定义的包含宏的Lisp源码,一种是只含有变量和函数的Lisp源码. 有意思的是,宏实际上能够在被执行前才展开,运行时也能动态创建/修改宏/添加宏,这样就创建出无限的可能性 – 这是一个很美妙的过程,绕过这个弯,就有很奇妙的想法,呵呵
恩,一点了,该睡觉了…
blog comments powered by Disqus