语言多乎哉未几也,浅谈ruby(jruby) mirah scala rails dubious lift

语言多乎哉不多也,浅谈ruby(jruby) mirah scala rails dubious lift

ruby的完全面向对象和简明的语法让人爱不释手,但是其开发效率高、运行效率低(这是通常人说的,但是robbin自己的javaeye这个网站来看,似乎不是一个问题)、缺乏代码保护(虽也有rubinus、jruby等的努力),所以mirah也就是duby的前世出现了。

做出mirah的人是java的高手,他是jruby的创作者之一(Charles Nutter)。减少代码量是他的想法。

静态类型是ruby没有的,因为ruby作者不认为类型有用,他认为所有的数值类型是客观存在的,为什么还要去定义呢,就好像看到前凸后撅一定是女人(人妖除外),但是这样一定会在解释过程中对此进行一个判断(我自己思考的,不一定对)。

Nutter感觉到这还是有点不爽,于是增加了类型说明,就象这样:

ruby代码:

def foo(a=1,b=2)

 puts a+b

end

而mirah代码则稍加变化:

def foo(a:int=1,b:int=2)

 puts a+b

end


mirah不用ruby的库,这个原因很显然,ruby有这么多的库,怎么可能再编写一边呢,而且mirah一直定位的是让java程序员使用的便捷编程方法,自然对ruby的程序员就不那么关心了。我倒是希望nutter哪天想通了,能够让ruby的库也能够派上用场,尤其是原生的ruby库(非c extension的)


mirahc可以将*.mirah文件编译为class,也可以使用mirahc --java 将源文件转变为 java文件。这一点上,ruby程序员不知道有什么想法,也许唯一的作用就是让双方程序员能够彼此了解,产生一点惺惺相惜的感觉(不再掐架)。


mirah的版本低到可以省略为0,具体为多少,需要查一查。百度一下,搜索到的怎么都是歌手的信息,对于百度而言这个语言似乎不存在!google一下,在第一条。看来google确实是一个技术公司,与新技术相关一定会放在前面。网址是www.mirah.org,点击进不去。估计被%墙%。杯具,技术站也被&墙*,给我一个理由先!于是。。。最终查到版本号是0.0.8版,主页的下面,还有这哥们照片,居然像个日本人(莫非做ruby方面的事情久了长相也变了?!)。虽然www.mirah.org不可访问,github.com还是可以访问的,下载。或者使用gem install mirah(在jruby环境下)


虽然mirah的版本这么低,居然还有一个伴生的框架,叫做dubious,估计与mirah的前世duby有关系,这是一个与rails几乎相同的框架,使用一个dubious.jar作为支持库。

最新版的dubious是0.0.3版。呵呵肯定不能高过生他养他的mirah。

https://github.com/mirah/dubious 有基本说明。


总体而言,这个mirah是基于java虚拟机的语言,如今这种基于jvm的语言越来越多。其中scala就是一个相对成熟,老道一些的语言。


语言scala,有自己的库,同时可以无缝使用java的库,至今也快10年了,知道他还是从twitter的后台从ruby转为lift的新闻中了解到的,坚持两条腿走路:functional 和oo,追求简明编程。作者是一个大学老师,在苏黎世理工。维护团队以他们那个团队为主。

scala有自己的框架lift,作者叫波拉克,对mvc架构不以为然,强调 view first(当然lift完全支持mvc架构),认为服务器应该就是一个开放的通信总线,使用comet概念。


jruby,是完全的ruby的java实现版本,完全支持ruby的原生库和java库,对于c extension正在努力支持。创建人就是mirah的创建人。基于jruby的rails库与cruby下的库一模一样,也就是gem install的源头是一样的。可以使用jruby做代码保护 ,这样你的应用的代码不需要担心了。如何做可参照另外一篇博文。jruby下的rails应用部署与java的web应用的部署方式没有不同,打包为war之后,可以直接部署到相应的web应用服务器:tomcat、glassfish等。