初识动态语言
2006-08-08 11:02
190 查看
最近刚看了看动态语言,说来也惭愧,从刚学第一种编程语言到现在也差不多十年了,
却从没重视过/关注过动态语言,可总有那么一批人狂热的爱着她们,可供选择的很多,
perl,php,python,ruby,甚至unix shell,从总体来说,我还算是个中庸的人,所有我
选择了python为起点,ruby过于激进(包括她的粉丝也是),而且资料并不多,前两
种感觉又太“俗”,俗得跟JS,VB,C#,JAVA一样,(请原谅我这么说了,也许我想
表达的意思是说它们用得有些太多,很难给人一种新鲜的感觉),只有python,从资
料,工具,库,社区等各个方面都觉得刚刚好。
用习惯了传统静态语言的人,一看PYTHON也许都觉得太随意了,有点不习惯。就如同我
前面转载的文章一样,一群JAVA程序员为PYTHON开发了一堆效率极低的库,因为JAVA
程序员满脑子的封装,设计模式,框架,配置文件,好象同PYTHON的随意性格格不
入。
我说一个例子,在PYTHON中,产生/捕获异常的方式就很有意思:
1、如果你不想太麻烦,你完全可以不定义你的异常,直接:
raise "BadError", "just a exception"
请注意,BadError只是个字符串而已,你从来没有定义过它,捕获时:
except "BadError",ev
print ev #打出just a exception
2、当然,你也可以定义你的异常类(甚至异常层次关系,就象在JAVA中的一样)
class BadError:
"""exception for every thing"""
def __init__(self, a, b):
self.aa = a
self.bb = b
def printx(self):
print "bad error"
def __str__(self):
print self.aa, self.bb
抛:
raise BadError("aa", "bb")
如果只有一个参数,你甚至也可以:
raise BadError, "aa"
捕获:
except BadError,ex:
print "error",ex
或
except BadCfrError,ex:
print "error",ex.aa,ex.bb
是不是觉得有点乱,反正这是我最初的感觉,也是这的确跟JAVA,C#之类的语言不太一样,
好象不太严谨,怎么来都行,但我相信,一旦习惯了,一定会享受这样随意性的!!
却从没重视过/关注过动态语言,可总有那么一批人狂热的爱着她们,可供选择的很多,
perl,php,python,ruby,甚至unix shell,从总体来说,我还算是个中庸的人,所有我
选择了python为起点,ruby过于激进(包括她的粉丝也是),而且资料并不多,前两
种感觉又太“俗”,俗得跟JS,VB,C#,JAVA一样,(请原谅我这么说了,也许我想
表达的意思是说它们用得有些太多,很难给人一种新鲜的感觉),只有python,从资
料,工具,库,社区等各个方面都觉得刚刚好。
用习惯了传统静态语言的人,一看PYTHON也许都觉得太随意了,有点不习惯。就如同我
前面转载的文章一样,一群JAVA程序员为PYTHON开发了一堆效率极低的库,因为JAVA
程序员满脑子的封装,设计模式,框架,配置文件,好象同PYTHON的随意性格格不
入。
我说一个例子,在PYTHON中,产生/捕获异常的方式就很有意思:
1、如果你不想太麻烦,你完全可以不定义你的异常,直接:
raise "BadError", "just a exception"
请注意,BadError只是个字符串而已,你从来没有定义过它,捕获时:
except "BadError",ev
print ev #打出just a exception
2、当然,你也可以定义你的异常类(甚至异常层次关系,就象在JAVA中的一样)
class BadError:
"""exception for every thing"""
def __init__(self, a, b):
self.aa = a
self.bb = b
def printx(self):
print "bad error"
def __str__(self):
print self.aa, self.bb
抛:
raise BadError("aa", "bb")
如果只有一个参数,你甚至也可以:
raise BadError, "aa"
捕获:
except BadError,ex:
print "error",ex
或
except BadCfrError,ex:
print "error",ex.aa,ex.bb
是不是觉得有点乱,反正这是我最初的感觉,也是这的确跟JAVA,C#之类的语言不太一样,
好象不太严谨,怎么来都行,但我相信,一旦习惯了,一定会享受这样随意性的!!
相关文章推荐
- .net 的动态语言实现DCI架构模式的角色混入
- 动态类型语言中的 Web 开发策略
- C#中逐步实现加载自己用 C++ 语言编写的动态链接库
- C语言动态分配数组程序实现
- 从c++转到python项目碰到的坑--论动态语言的一个小坑
- 动态语言和静态语言的比较
- C语言动态二维数组实现矩阵的相乘
- python学习-面向对象进阶之python是动态语言(四)
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- web开发(脚本和动态语言) 经典正则表达式
- linux/Unix 动态so文件初识
- 动态语言、静态语言 比较
- C语言动态分配一维数组
- 动态语言
- QT国际化动态语言切换的实现(原创) (2012-02-20 11:23:20)
- 动态语言、脚本语言和解释型语言之间有什么区别和联系
- 弱类型、强类型、动态类型、静态类型语言的区别是什么?
- 动态语言会导致开发质量下降吗?
- Yii框架模型类的实现以及PHP5动态语言特性的应用
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别