24小时热门版块排行榜    

查看: 714  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 P4JhWrbJGjSe 2026-08-14 5/250 2026-08-15 15:46 by QXtWNz7PI7wZ
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 14:58 by QXtWNz7PI7wZ
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 7lpolszZVXgi 2026-08-14 3/150 2026-08-15 14:53 by QXtWNz7PI7wZ
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 3/150 2026-08-15 12:41 by KxMI1BYBxWX1
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 3/150 2026-08-15 12:33 by KxMI1BYBxWX1
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 HFw0lei2R37i 2026-08-14 9/450 2026-08-15 11:33 by KxMI1BYBxWX1
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-14 22:32 by 4wMiSEwB6436
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
信息提示
请填处理意见