24小时热门版块排行榜    

查看: 707  |  回复: 1

gyyjszs

新虫 (初入文坛)

[交流] 总结成功应用软件的一个经验 已有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
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1592203609

荣誉版主 (知名作家)

学习了!呵呵
2楼2013-10-30 17:46:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gyyjszs 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +3 Tide man 2026-08-10 3/150 2026-08-10 21:48 by GZUZM
[基金申请] filecode +8 documentary 2026-08-10 8/400 2026-08-10 19:20 by loufangrui
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +10 yufeiwaner 2026-08-09 11/550 2026-08-10 18:47 by yufeiwaner
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 11/550 2026-08-10 17:09 by 六两废铜
[基金申请] 好奇怪的filecode +4 布布和一二 2026-08-08 5/250 2026-08-10 14:20 by 冰心玉壶晴
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
信息提示
请填处理意见