Chinaunix首页 | 论坛 | 博客
  • 博客访问: 413555
  • 博文数量: 28
  • 博客积分: 2272
  • 博客等级: 大尉
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-25 15:49
个人简介

懒虫一个呗。

文章分类

全部博文(28)

文章存档

2020年(4)

2019年(18)

2017年(6)

我的朋友

分类: 其他平台

2019-11-06 00:36:37

矛盾性产生了数学,数学产生了离散数学,离散数学产生了计算机,计算机产生了汇编语言,汇编语言产生了静态和动态的高级语言,可见根在数学上。而硬件、操作系统、语言的现实复杂性,要求不断提高适应能力。新语言层出不穷,语言库越来越强,让人目不暇给。选择变多是好事,让语言能力伸展到各个应用领域,向更宽更深方向发展,是必然的。各种应用领域有自己的特殊要求,语言应该是走向专一,专做一个方面的事。现实中这个趋势也已越来越明显。这是其一。另一个,各种语言之间怎么去联系?这个联系从语言层面去解决会很痛苦,从语言应用的结果去做这个联系才会简单。这个结果是什么,是数据。以什么形式表现的数据更便于联系起来呢?二进制还是文本?显然是文本。是格式文本还无格式文本?当然是有确定意义的格式文本更便于联系。因为联系最终是程序员或者其它人,一目了然是最好的选择。对于不同语言设计的应用,结果联系是一方面,还有一个,功能共享。既然各种语言源码级的联系都很难,二进制的lib共享则更是不好处理了。这意味着语言生产力会存在很大的浪费。但是如果做成一个个功能单一的小应用,用动态语言粘合起来,这个复杂性就能得到有效解决。这方面,unix做出了优秀的设计。由功能单一的小工具用粘合语言构成复杂的大工具是unix系统工程最妙的思想之一。至于并行和并发(消息或事件)驱动,可以在粘性语言的解释层面去设计,可以是操作系统的一个接口调用。
这样的设计应该可以适应机器、操作系统和语言的复杂现实,最大化地免除同一操作系统上各种语言api生产力简单重复,不同操作系统之间的应用也可以不别重复,A要B的应用结果,或者B要A的应用结果,只需要一个应用队列,将应用、特定操作、接收信息、发送信息、权限等各个小队列组合起来,A、B就能通过通信很好地利用彼此的算力和数据了。让机器、系统、语言三者的发展拥有更大的独立性和灵活性,将更多的精力用于适应问题而不是彼此之纠缠不清(依赖性)。
小机器可以有效构成大机器,功能单一小应用可以构造功能复杂的大应用,这是unix对我的一个简单启示。谢谢你,UNIX!够我学一辈子。
阅读(1774) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~