用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
chelsea的公告
<script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-347465-2"); pageTracker._trackPageview(); </script>
文章分类
    切尔分站
    切尔斯基的工作(RSS)
    切尔斯基的工具(RSS)
    切尔斯基的杂记(RSS)
    亲密爱人
    丸子(RSS)
    文学艺术
    芳村窝蛋(RSS)
    存档

    原创  Thinking in Current Programming Languages 收藏

    一、现状

    • 软件越来越庞大,细节越来越多---->难以改错,改进
    • 开发周期越来越长---->浪费金钱、生命

    二、原因

    • 生产工具与任务之间的差距太大:要砍伐整片森林,手里只有斧子
    • 生产资料与产品之间的差距太大:要葱油鲤鱼,手里只有鱼籽葱籽
    • 要建立一个金融系统,手里只有C++Java编译器,UML“建模”工具
    • 要建立一个化学反应模拟系统,手里还是只有C++Java编译器,UML“建模”工具

    三、其它领域的样例

    • 要创作一首曲子,只需写出它的五线谱,你几乎不可能用自然语言来描述
    • 要证明一个数学定理,只需用数学符号、现有的数学公式来推理、自然语言语焉不详,不够精确
    • 要表达一个化学反应过程:只需要写出分子式、每一步的化学方程式
    • 自然语言在这些领域碌碌无为,或者说在背后默默而为

    四、曾经的成功样例

    • C语言代替汇编和机器语言来表示机器模型:在机器的领域中,C语言是问题域的建模语言,有直接的语法来表达寻址等概念,汇编才是解决域的算法实现语言;C语言已经是写操作系统/虚拟机较为理想的语言了,但它仍然没有直接提供进程、线程等概念,而是通过库来表达
    • DOS命令、Unix命令、甚至FTP命令等:都能直接完成意图,C/C++是背后的解决域的算法实现语言

    五、现在的成功样例

    • HTML:Web静态表示领域的描述语言,有直接的术语来表达各种概念,C/C++是背后的解决域的算法实现语言
    • SQL:数据管理领域的描述语言,有直接的术语来表达各种概念,C/C++是背后的解决域的算法实现语言

    六、推论

    • 通用的东西最终只在后台发挥作用,无论是理论还是工具

    七、继续推论

    • UML将一事无成,直到它退居幕后,或演变成另外一个C++(所谓可执行的UML)
    • Java或C++会变得象今天的汇编,我们就是60年代的汇编程序员,或公元前修长城的民工、建金字塔的外国民工
    • DSL、LOP以各种面貌登上舞台
    • ...

    发表于 @ 2004年12月21日 19:19:00 | 评论( loading... ) | 编辑| 举报| 收藏

    旧一篇:J2SE 5.0 Generic应用 | 新一篇:Thinking in Current Programming Way

    • 发表评论
    • 评论内容:
    •  
    Copyright © chelsea
    Powered by CSDN Blog