Displaying articles with tag

脚本的力量

Posted by admin, Thu Mar 08 23:56:00 UTC 2007

这两天处理完了IIS配置的问题之后,又需要处理COM+的配置问题,不过与IIS与使用windbg来dump出IIS的内存不一样,对于COM+的配置使用可没有现成的VBS可以拿来使用。

如果想要在程序中做到,最直接的方法就是使用COMAdmin的基于COM的接口来做,依然上次提到的理由,用VC来写比用VB来写烦多了,而且C#因为也没有现成的封装类,写起来需要先去找一个第三方的已经封装好的CS代码一起来用,也比较麻烦。

想了想,决定自己写一个VBS来用得了,不过我对VB的语法基本上不熟,用过就忘,总也建立不起浓厚的感情,而且VBS从来没有自己写过,甚至应该怎样写都不知道,幸好用现成的adsutil.vbs可以参考一下。

说做就做,除掉用错了一次VB的语法和googling了COMAdmin的用法的时间,基本上很快就写出来,而且发现能用。结果证明我一开始选择VBS是正确的。虽然最后还是用VC实现了同样的功能,以便做为通用的功能给大家用(做成标准DLL,开放接口),但是这时使用VC也只就VBS的内容移过去就行了。

事后想想,也终于体会到了脚本的力量,换个角度想想,如果一开始用VC来做,那我的工作模式会是这样的,建一个VC工程,加入必要#import然后,使用智能指针及BSTR这一堆东西,来保证代码通过,并且能运行,然后调试,google内容,再测试,OK!然后将内容做成标准DLL,测试,然后OK。

那么使用VBS,与之相比较会简单得多,建一个VBS,写两句,保存,然后执行(用editplus就更简单了),测试,再测试,OK!最后的过程是一样的,也要生成DLL(这个不说),但从中比较我们能发现在什么?没有了编译(虽然这个过程很快),但是这种敏捷的方式,会让你几乎在不打断思路的情况下将功能实现,而用VC就有太多的细节要考虑了,毕竟两者的语言风格大不相同,工作起来的方式也就自然大不相同了。

脚本、Shell可能是每个严肃、主流的程序不太在意的东西,但是它的确就能是能让你很敏捷高效的解决问题,然后那就type-print-value的循环是如此的直接,不免让人能飞快的工作起来。

也许这就是现在的脚本语言:古老如Lisp、怪异如Perl、恬静如Python、偏激如PHP、丑陋如VBScript、复兴如JavaScript及当红如Ruby仍在被人广泛使用与关注的原因吧。

呵呵,突然想到以后一位老友(windoze)对我说过的话:程序员还是必须学一问脚本语言的。当时的认识不深,居然要到这么多年之后才想到他的正确性,汗一个,也以此怀念一下老友吧。

5219 comments | Filed Under: | Tags: