icon Rails 的相关感想

怎样回答“Ruby 没有类型声明,在规范的系统里能使用吗?”这样的问题

Ruby 这门编程语言具有不用声明变量和方法的类型(type)的特征。
在很多地方讲到 Ruby on Rails 时,被屡次问到这个问题。
Ruby 没有类型声明,在规范的系统里能使用吗?
一句话,就是 Ruby 做的系统具有稳定性吗。

这个问题怎样回答才好呢?

我的回答是类型声明并不能使系统的稳定性变高

确实存在因为声明而被发现的错误(缺陷)。
例如,如果声明 a 变量具有字符串类型,这里如果存在存储整数型值的处理,就是一个错误。

可是,在现代的编程中 ,这种错误不太会产生。

最大的原因是、面向对象编程单元测试的思想普及了。

面向对象编程里,是将程序的构成元素作为“对象(物)”处理。
信息在对象之间传递,程序便发挥其功能。
对象是否正确发挥功能,是根据叫做“单元测试”的程序来确认的。
单元测试从各个侧面检查对象所持有的变量以及方法接收、返回的对象。
不仅仅是变量和方法的类型,值的范围和元素个数也要被检查。
通过单元测试,可以进行比编译器的类型检查更深一层的验证。

同时,根据近几年普及的编程方法,类型声明的作用也变小了。
我们也被告知方法应该变短,过长的话就要被切割。
另外,赋予变量与方法容易理解的名字得到大力提倡。
如果以这样的方法编程,类型获取不正确这样的错误几乎不会发生了。

类型声明有助于基于编译器的最优化,所以有利于提高系统性能。
但于系统的稳定性却没什么关系。

--
黒田努

(2008/11/23)