

前言:
Ruby作为一门非常有名的编程语言就只是多的介绍了,有人对她的魔幻着迷,有人对她的隐晦难懂极度反感,个人也经常使用Ruby做一些程序设计,可以说对Ruby的感情又有爱也是恨,作为一名千千万万程序员中的无名小卒,说说自己对Ruby的粗陋理解。码下这篇文章时我是瑟瑟发抖,还请大佬打脸轻一些。
背景:

Ruby在松本行弘设计之初,考虑的就是以人为本,从人的视角出发,要符合程序员个人的心理展现。在当年(1993年)这样的思想可以说是非常大胆的,因为那些时候机器的软件性能普遍低下,内存几个M,CPU主频不到半个G,硬/软盘容量和读写速度低的可怕,虽然目前的年轻一代没有经历过那些环境,但是还是可以想象的。
在大多数程序员都在想着优化程序存储,最大化提升机器精度和速率的之后,Ruby可以说是非常不受待见,不过历史上松本行弘不是第一个这样做的,1958年,约翰·麦卡锡在麻省理工学院发明了Lisp编程语言,自动存储管理和垃圾回收,可想而知,当时Lisp并没有实质性的应用开发价值。时至今日,Lisp仍然不温不火,但是Lisp成了一种思想,个人觉得Lisp仅把动作跟命令赋予在表格数据上就有了强大的体现能力。似乎有些跑题,接着说Ruby。
提炼精华
松本行弘的创新其实并没有多少,但是他把一些优秀编程语言中的精粹提炼出来ruby 编程语言,糅合成一家,这反而比创新都有难度,Ruby启发语言来自:Ada、C++、CLU、Dylan、Eiffel、

Lisp、Perl、Python、Smalltalk甚至更多,其中借鉴最多的是Perl和smalltalk,Perl个人没有怎么使用过,不好评价,但是我知道Perl的语言密度极高,用字符指定行为在Perl中十分常见,有人把Perl写成天书,甚至Perl可以简单到不可多一个字符或少一个字符,smalltalk的IDE非常强大,有人说它是一个自带IDE的编程语言。不熟悉就只是多的评论。Ruby也继承了Perl的这部分特征,所以能够有人说她是一个魔幻的语言,这种格调吸引着一部分人深入认识并学习应用,也挡住了不少的好奇的脚步,总体来说Ruby的学习曲线还是非常缓慢的,经常有人建议编程初学者以Python为初学语言,其实Ruby更好,个人觉得比Ruby更好的也有scheme,但是scheme毕竟很小众了,而且scheme的实用价值并不大。
风格
接着说Ruby的魔幻
Ruby的魔幻特性注定Ruby只能是一门小众语言,由于Ruby中自由的表达形式,新手入门后看Ruby有关项目的源代码,会看到每个人都有自己的风格,风格难以统一,让新人有种摸不着脑袋的觉得,这样并不利于初学者对初级知识的理解,如果这种能够坚持学习Ruby的人,就更是少个别人了,这样产生了Ruby社区的风格,大牛多,小白少,想入门的都徘徊在一个门槛前,少个别人踏过了门槛,大牛的总量提高缓慢。

Rails
但是如何解释Ruby on Rails的热度和数量仍然在非常高的地位呢?(Rails一般是创业公司使用,国内只有少个别公司的部分业务使用Rails,统计数据不包括美国地区的Rails使用者,这个年头在美国创业还不如炒房,一套一二线城市的新房价值就赶得上一个创业公司了,国内的环境并且创业仅仅口号,创业者寥寥)
这就引发Ruby的另一个现象了,Ruby的元编程能力相当强,非常合适写DSL,Ruby诞生之初的语法就是为了嵌入式DSL而改进设计的,Ruby on Rails可以说是用Ruby语言开发的Web DSL,Rails诞生之初,犹如盘古开天辟地,当时,php还是old style,代码混杂htmlruby 编程语言,net还停留在WebfoRms阶段,java还是with or widthout EJB中挣扎,Python还在用Zope这个先进的没法使用的东西,可以毫不夸张的说,Rails的诞生就如Iphone刚问世一样,Web开发有了革命性的变革,之后各类语言的诸多Web开放框架或多或少的都在向Rails致敬,甚至影响了微软MVC开发的方法,感兴趣的可以搜索MonoRails,这里就只是多赘述了。
Ruby的DSL特性促使Ruby有了这么一种现象:某大牛写出一种DSL,如果这个DSL特别出色,就有很去使用这个DSL,Ruby也经常火一阵。但是并不是每个Ruby开发者都有素质写出优秀的DSL,所以Ruby会随着这些优秀DSL的发生而火一阵,接着风潮就会褪去。在科技圈,尤其是程序员这个特殊的群体,如果不是底层开发,不接受新知识,似乎就是落后,统计学的正态分布数据不会欺骗人群分布,Ruby注定小众,而且真正的Ruby开发者高手居多。

而且近几年前端的大热,JS MVC框架的路越来越广,已经不用太依赖服务端模板,ES语法也在逐步优化javascRipt这门先天设计不足的语言,微服务,后端提供API形式逐步流行,Rails的优势也小了一些,但是不可否认,如果还是开发Web项目,Rails依然是绝佳选择。
之前在一个Ruby交流群中有人说Ruby将来会经常低迷,Ruby在数据预测,人工智能,科学计算方面根本没有好用的gem。我觉得Ruby是否低迷不一定,同样成为图灵完备语言,只要想,都是可以做的(商业公司应考量成本问题,而且商业公司居多),Ruby在其他方面确实落后Python很多,未来Ruby的应用领域需要是某个领域的某个个别,在这些有特殊要求的地方用自己的超强DSL能力帮开发者一个简单的解决方案。
从语言的视角也可以这么看,Python在语言密度跟语境表达方面做到了一个平衡,才会有这么多的人去使用,而Ruby的语言密度跟语境表达都比Python要高一些,受众小也有自然的。
另外Metasploit真好用。
以上是个人浅薄感想,如果有不恰当的地方还请提出。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-135466-1.html
不配做人
没办法
看完觉得好尴尬
en~~~确实假货