Apr 9, 2009

动态语言为什么好?

相比较于 C/C++ 等静态语言,Python 等动态语言为什么好?
Daniel Lemire 列举了三个基本的不同点:



Static view Dynamic view
Tight definitions Duck typing
Ontologies Folksonomies
Specific solutions Generic solutions

他认为第一点是最重要的(Duck typing 是说动态类型,“如果一只鸟,走起来像鸭子,叫起来像鸭子,那我就可以叫它鸭子”)。动态语言不需要定义变量的类型,而是根据上下文来推断。
我倒是对第三点最有体会。现实生活中有那么多问题,使用通用的方法当然可以大大节省时间。把接口减少到能解决大部分问题,又很简洁,不追求解决所有问题。这也有利于 prototyping.

第二点我不是很理解。
ontology, taxonomy, folksonomy
ontology 本体。在计算机科学领域,其核心意思是指一种模型,用于描述由一套对象类型(概念或者说类)、属性以及关系类型所构成的世界。下面是一个简单的本体示例。



taxonomy 分类系统:最好的例子是图书馆书籍。
folksonomy:social tagging.

Roughly: Ontologies are formal definitions, folksonomies are informal and flexible "de facto" definitions.

0 comments: