Chinaunix首页 | 论坛 | 博客
  • 博客访问: 408677
  • 博文数量: 57
  • 博客积分: 193
  • 博客等级: 入伍新兵
  • 技术积分: 1192
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-13 14:37
个人简介

当以艺术眼光看程序,寻找程序后面的原理,做到化而不忘

文章分类

全部博文(57)

文章存档

2017年(5)

2015年(7)

2014年(27)

2013年(18)

我的朋友

分类: Windows平台

2015-10-09 21:38:31

笔记之一
      Ruby
之所以设计模块的概念,在于弥补传统的C之类语言的模块概念的缺失。在软件设计中,模块化体现很多很有用,它直接关系到软件设计的效率和灵活性。C中没有明显的模块的概念,就要由程序员自己通过软件的手段来强化模块概念,通过另外添加代码实现,这是比较麻烦的。在RubyPerlPython中,将模块概念单独提出来,由编译器来支持,强迫你来接受,强迫你来使用,这样就大大方便了软件设计。

 

        也可以这样理解,Ruby语言级别就已经考虑到软件设计问题,为软件设计添加了众多特性,比如yield+CodeBlockundef FunName,文件的BeginEnd代码块等,这些在C中都要由程序员来自己实现。比如,在C中,函数的定义是无法取消的,只有宏可以取消定义。

 

        那么,反之,由新型的动态语言如RubyPerlPython等来反向推理在C中设计应该具备的机制,这理论上也是可以的,并且可以帮助提高利用C进行系统设计的能力。比如,在Ruby中类可以嵌入模块,这个如果从C的角度来看,简直是活脱脱的C实现C++的继承机制啊,可以推断,Ruby他爹估计也是从C实现C++继承的角度才想到类中包含模块,这也是变相实现继承机制。那么机会来了,将来哪天你也实现自己的语言,可以参考这个思路实现多继承。

 

        学习新语言不是直接目的,目的在于由新语言来改造C语言,通过新语言提高使用C语言进行系统设计的能力。

阅读(8215) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

qiqisamma2016-06-02 16:58:33

OneAPM 是唯一的一个可以帮助你查看 Python 应用程序方方面面的工具。无论是从终端的用户体验还是服务器监控,OneAPM 支持追踪各种问题,例如:数据库查询缓慢、第三方 API 接口和 Web 服务器甚至数据缓存层缓慢等。可以在生产环境下监控你的应用。快来官网注册体验吧~