为什么要开发抽象编程语言(APL)?

      作者在Windows平台下从事C++开发工作超过15年, 在此过程中, 以下问题让作者感到困惑, 并试图找到答案, 当作者发现不能找到合适的现存方案的时候,作者决定去尝试解决这些问题, 并沿着这个思路开发了APL(抽象编程语言(平台)), 通过长时间的努力和实践, 作者发现APL确实就是我想要的开发平台, 当然作者水平,能力和精力都有限, 要完整搭建这个平台靠作者个人的努力是远远不够的, 因此作者希望有更多的开发人员(特别是C++开发人员)能够接受和很好利用APL,来提高软件开发质量和效率, 以下是令作者长期困惑的问题:
      1. 为什么应用软件开发者掌握的编程技能在几年后就需要基本上重新学习, 而其他行业从业者掌握的技能可以工作一辈子有效( 只需要不断扩展就行了 ). 应用软件工程师做的工作就像沙雕工作一样, 过了一段时间就需要完全重来. 编程语言从 汇编, C, C++, Basic, Dephi, Java, Python, Php.....
      2. 为什么C,C++只有 执行效率, 而开发效率是所有高级语言和脚本类语言中最繁琐和最难的?
      3. 为什么做一点点简单的程序, 都需要执行 编译,链接这些耗费时间的事情?
      4. 为什么C,C++中 调用别的模块的API都需要 .h, .lib之类东西? 不同系统,不同C++框架, 模块之间的代码要加在一起, 非常容易让应用开发者产生太多的编译问题?
      5. 不同编程语言工作者实际是很难协同工作的, 不同语言的框架也很难混合在一起使用.
      6. C, C++语言怎么来满足 需求不断在变化中的应用的高效开发?
      7. C, C++中指针怎么做到 自动回收?
      8. 软件开发怎么能 合理结合 C,C++语言的执行效率 和 动态脚本语言的开发效率, 而且让两者能够非常好的融合.
      9. 为什么HTML设计会那么成功? 但有些应用在HTML框架下基本做不了, 但是作为应用开发者, 要去改造HTML框架去满足自己应用系统的要求基本上也是不可能的事情.
      10. 为什么人人都能学会 人类的语言, 但是C++语言却越来越复杂,而且并不存在统一的标准类库?  计算机语言是 软件工程师交流的工具, 软件工程师电脑交流的工具, 应该越简单越好.
      11. 为什么人类能够抽象地描述和解释(执行)问题, 但计算机语言却不行?
	比如 作家可以写出小说, 编剧能够把这再翻译成表演的剧本, 导演和演员能够把剧本再解释为 电视和电影, 阅读者可以阅读小说去理解场景, 观众可以通过视觉信息去理解场景.但应用软件工程师 去实现 应用需求却是那么地费劲.
      12. 面向对象的语言中, 由类(class)到对象(object)的思想真的是 符合现实逻辑的吗?
             当诞生一个小孩的,这个小孩应该 用什么类来产生? ( 工程师,演员, 科学家... )
             对象的 类的特性 是 产生时候具备的, 还是对象在发展中学习到的?  
      ......
 
      基于对上述等问题的思考, 特别作者作为C++应用开发人员的角度, 开发了APL, 力求转变为一种抽象编程思想, 并且C++语言能够和动态语言能够真正高效融合的开发平台. 作者开发此平台的经历, 就像金庸小说中的北冥神功,化工大法那类的武功修炼者的修炼过程, 要先化去自身的功夫(要先放弃C++的常规思想),再接受现在看起来不太容易接受的思想(APL思想), 再逐渐构建APL平台, 当APL平台已经初具基础的时候, 作者已经确定这个东西确实就是作者想要的开发平台,当然要成为一个完整成熟的开发平台, 还需要有更多的工具支持和更多开发者参与, 这还有很长一段路, 就像中山先生讲的: 革命尚未成功, 同志尚需努力. 作者从有这种想法, 到越微看到这种想法的成效,期间历经艰辛, 又甚感欣慰, 也特别想把这种思想分享给众多的软件开发者. 最后,套用在中国这个充满奇迹的国度的流行话语来讲, APL对于作者来说, 是一个奇迹, 至于别人信不信, 我不知道, 反正我是信了.
 
Paul Liu
2012年4月29日于深圳
 

posted on 2012-06-09 21:12  smartfish_liu  阅读(1565)  评论(0编辑  收藏  举报

导航