| 查看: 618 | 回复: 1 | |||
[交流]
总结成功应用软件的一个经验 已有1人参与
|
|
纵观80年代以来的成功应用软件,凡是获得长久成功者,绝大多数具有如下特点: 以一种系统语言(通常是C/C++)于OS API之上提供一高层的应用程序运行时(runtime),包括一个高层次、面向应用进行语义优化的虚拟机,一个庞大的应用程序级API库(基于普通过程的函数库,或基于OO的类库,或基于component的构件库),一个具有可扩充性的软件体系架构(尤以插件式结构或面向应用的framework为典型),以及,最理想地,一个面向应用的语言引擎。整个应用以系统语言与应用级语言共同完成。扩展时主要使用应用级语言,亦可使用系统级语言,无论哪种,都必须依赖一个扩展框架。 且看一些例子: 1. Emacs,以C开发内核,并实现elisp解释器,可用C及elisp实现原子函数。整个程序用C及elisp共同完成,并可以任一种方式进行扩充。 2. AutoCAD,以C/C++开发内核,实现AutoLISP,整个程序用C/C++及AutoLISP共同完成,可用C/C++/AutoLISP/VB扩展。同样来自Autodesk公司的3D Max亦装备有Max脚本。 3. Mathematica,以C开发内核,实现Mathematica语言,整个程序用C及Mathematica语言共同完成,主要使用Mathematica进行应用开发。 4. Matlab,以C/C++开发内核,实现Matlab语言,整个程序用C/C++及Matlab语言共同完成,主要使用Matlab进行应用开发,也可使用C/C++/Fortran进行扩展。 5. Microsoft Office,基于COM体系,C/C++编写核心模块,VB负责整合,并提供VBA供应用开发。 6. TeX,Pascal编写核心解释器,以宏扩展的方式开发高层系统。 还有如SAP、Perl、Python此类例子数不胜数 此种思路,屡获成功,实当为我辈悉心模仿。其核心难点有二,一是runtime的设计,动态性的实现,framework之权衡(需要面向应用,全如Eclipse那般灵活,对于特定应用领域而言并非最优),对底层计算平台的抽象(真正成熟的网络应用开发,应当将网络透明化);二是应用级语言的设计与实现,设计是关键,也是中国程序员之最弱点, 面向应用的高层语言的设计,相当于机械工业中的大型成套设备制造,是主干行业,核心技术。要设计出好的应用语言,要求设计者一通系统程序设计技术,对解释器的及其与系统的交互、扩展的实现技术非常熟悉,二要深刻理解程序设计语言理论,精通形式语言理论及语言发展历史,能不受困于20年来的主流思想,以最自然的方式提供所需语义,三是要熟悉应用领域,为设计提供方向引导。目前国内的教育体制及浮躁气息,很难培养出如Larry Wall这样的大师。 最终我们会走向特定于领域的语言,我觉得这方面的一个典范是Mathematica |
» 猜你喜欢
实验室接单子
已经有3人回复
要不要辞职读博?
已经有5人回复
不自信的我
已经有10人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有4人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
android NDk环境编译-----原创总结
已经有9人回复
关于写英文文章的一点心得
已经有8人回复
自己总结的家装施工经验
已经有3人回复
Advanced Materials投稿经历总结!!
已经有101人回复
【经验】水木上的出国申请总结-- PS篇
已经有19人回复
10年5个面上的经验总结
已经有134人回复
【心得】关于灵格斯不能取词的一点心得与体会
已经有20人回复
SCI投稿模版总结及一个科研经验网站介绍
已经有10人回复
1592203609
荣誉版主 (知名作家)
- 仿真EPI: 2
- 应助: 254 (大学生)
- 贵宾: 0.37
- 金币: 35191.9
- 散金: 468
- 红花: 164
- 沙发: 5
- 帖子: 5653
- 在线: 2195.1小时
- 虫号: 1766262
- 注册: 2012-04-19
- 性别: GG
- 专业: 有机合成
- 管辖: 仿真模拟
2楼2013-10-30 17:46:51












回复此楼