猛禽的编程艺术

编程是一门艺术

原创 语言的特性如何取舍收藏

我最近在做的关于动态代理的研究时,常常会有这样的感觉。

比如JAVA本身就提供了Dynamic Proxy,而不像在DELPHI下,要用Thunk这样的技术去作复杂的处理。对于序列化,Java/.net也都有现成的实现。

这几天在实现Remoting的服务端时发现,需要一个HashMap,在DELPHI下就成了一件麻烦事。如果是C++,有现成的std::map可用,新的Java和.net也都有了对GP的支持,但是DELPHI(原生)没有。如果要仿照JAVA的擦拭法来模拟的话,又会碰到另一个问题:DELPHI没有GC,容易造成内存泄漏。而且DELPHI不支持在STACK中分配对象,所以也不能实现类似SmartPtr这样的东西。结果最后只好用多态实现,难看而且估计性能也不会好。郁闷啊~~

前几天在QQ群里讨论GC时,GrayMemory提到关于C++总是想把别人有的好的特性都加进来(当然主要还是通过库,而不是修改语言)。其实别的语言也一样,程序员总是不知足的。

语言磨砺了我们思维的方式,也决定了我们思考的范围。

现在对大师的这句话是更加有体会了。

曾经也以为不同的语言不过是语法的不同,现在看来,那只是在同一类型的语言范围内成立的观点,对于不同类型的语言,差别有时是本质的。

比如最近正在学习的Python,对于这类的动态语言,OO的思想已经与传统的C++/JAVA很不一样了。像OO中一些经典的DIP之类的原则,已经不重要了,AOP也是很自然的事,GP也是不必要的,更不用说那些设计模式了。

然而有得必有失,动态语言的性能还是一个很重要的问题。

发表于 @ 2005年03月08日 11:53:00|评论(loading...)

新一篇: 在这样的世界里,没人会不头晕的--关于最近的.net信任危机事件 | 旧一篇: 用Delphi实现动态代理(2):设计说明

用户操作
[即时聊天] [发私信] [加为好友]
猛禽
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
猛禽的公告
本站作者:猛禽
号:老鸟,别号:大叔,英文名:Raptor。

Creative Commons License
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
联系方式:

我常用的Extensions

微笑图书室 多背一公斤

文章分类
收藏
    0. 个人链接
    1. 猛禽的河蟹BLOG(RSS)
    2. 寻找世界的美丽(RSS)
    3. Mental Studio-个人主页(RSS)
    5. 猛禽专栏-CSDN上的个人专栏
    6. 猛禽文档-CSDN个人技术文档
    7. CSDN电子报
    1. CSDN BLOG
    1. 令狐虫
    2. 韩磊(RSS)
    3. lxpbuaa(桂枝香在故国晚秋)
    4. 一竿残照.金棣@CODELPHI
    5. deadcat's blog
    6. gigix(透明思考)
    7. ozzzzzz
    8. 蝈蝈
    2. 技术BLOG
    chechy
    CoolSlob
    FrameSniper(FS)
    hkbarton
    leeon
    SnowFlacon
    小伍
    小小
    小眼镜
    我的ACE,TAO
    摩托
    百合MM
    3. 洋人BLOG
    Allen Bauer
    Anders Ohlsson
    Danny Thorpe
    Don Box
    Herb.Sutter
    James Gosling
    Martin Fowler
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 猛禽