分类:
2008-02-19 14:12:56
【CSDN 12月4日消息】我们常说“语言决定思维”,选择一门什么样的
中国也有一位编程语言之父,虽然不及上述等人的知名度和技术影响力,但起码他在语音
记者:能否介绍一下Koodoo语言及应用?
朱东宁:Koodoo语言是一种简单高效的脚本语言,有现代脚本语言动
态变量、动态数组等容易上手的特点,同时又适应电信行业高性能的要求。它主要应用在语音系统相关的开发,即CTI(计算机电话集成)领域,如IVR(交互
式语音应答,即电话自动语音应答,如电话银行、证券电话委托、声讯系统等),CallCenter(呼叫中心、客服中心)等。对于语音系统来说存在多通道
并发的问题,传统的解决方法就是状态机,对语音系统的
当然,我们很多用户在用惯了Koodoo语言以后,即使不牵涉到语音方面的应用,也喜欢用Koodoo语言来做一些服务器方面的程序,因为Koodoo语言对数据库操作,网络通讯乃至文件操作,都有很好的封装,比那些重量级的编程语言要容易得多。
记者:Koodoo名字的来源和他内核的技术方面是否方便谈一下?
朱东宁:Koodoo语言读做[kudu],Koodoo是一种南非条纹羚羊的名字,之所以取这个名字,一是这个名字看起来简单,容易记忆,更主要是因为Koodoo本身设计成多路并发的,类似南非羚羊身上平行的条纹。
Koodoo语言是我采用C++完全独立开发的,并没有参考任何开源代码,在2001年推出了第一个版本,随后提供了多种主流语音卡硬件平台的支持,并实现了可视化的调试环境和运行环境。
Koodoo语言完全采用多线程设计,以语音卡硬件环境为例,每个通道(可以看成一个话路)是一个线程,一个语音系统相当于多个独立的虚拟机,这样每个通道可以运行不同的Koodoo语言脚本,这带来了相当大的灵活性。
Koodoo语言使语音开发变得简单了,本身语音流程多变、复杂,采用Koodoo这种简单的脚本语言后, 开发人员可以不必关心底层的硬件信令等,而专注于业务流程的开发,使开发效率得到极大的提升。语法形式上接近于JavaScript,也是类似于C的语法 形式,当然变量或数组不用预先定义。
记者:请问你是从何时开始设计Koodoo语言,历经多长时间?
朱东宁:我从1993就开始用语音卡做证券电话委托系统,那时候需要采 用语音卡厂商提供的API进行较为底层的编程,上层的业务代码和底层代码混合在一起,很难维护。而且语音系统是多路并发的系统,当时只能采用状态机的方式 进行编程,用大数组记录每个通道的状态,然后根据动作改变通道的状态,状态很多,对于复杂的语音系统来说实在太麻烦了(状态的跳转你可以想像C语言中的 goto语句)。这种原始的方式,除了编程困难,调试也很困难,性能也不好,因为不允许堵塞,每个状态要很快地完成,如果线路比较多,性能将急剧下降。
我在2001年前后开始设计Koodoo语言,当时很多新的脚本语言很风行,如Python,JavaScript,他们的表达能力如此之强,但所受的限制又是如此之少,很让人震撼。
记者:能否谈一谈发明Koodoo的初衷?
朱东宁:当时,我感觉到设计一种和Python、Ruby竞争的通用型 脚本语言成功的概率很小,其中一个原因是通用型脚本语言都是开源项目,而在国内的软件市场环境,采用开源模式,完全依赖服务收费来挣钱是很困难的,作为一 个商业公司,生存是第一重要的;其次,我熟悉语音系统的需求,我觉得在特定领域解决特定问题,设计一种高效的脚本语言更有意义。目标市场就是定位为一种平 台,相当于语音系统的中间件,我们称之为语音平台。
我一直认为,试图为所有人服务并让所有人都满意是不现实的,比如,有人设计的出发点是给不会编程的业务人员提供语音流程设计的工具,问题是,语音系统的流程如此复杂,业务人员是不敢去直接编制流程的,大部分
记者: 能否谈谈Koodoo语言的版本升级和目前的发展状况?
朱东宁:目前Koodoo语言有不少电信、金融等行业的用户,Koodoo语言采用类似开源代码的小版本号,目前版本号是ver1.96,大概一个月左右就会推出一个小的升级版本。
随着IVR、CTI市场的发展,甚至3G等应用的展开,我们的Koodoo语言将支持更多的硬件和电信协议,一定有更广泛的应用。
当然,国内软件市场也在慢慢成熟,在不久的将来Koodoo语言也许会采用开源方式进行发展,毕竟对于一种语言,开源才有生命力。
记者:目前来说,Koodoo语言可能还没有太多的影响力,对于他的推广和前途你怎么看待?
朱东宁:目前主要是在公司创建的技术网站(http: // )上进行推广,在网站上有全面的Koodoo语言手册和学习资料,也有单线路的版本可供下载学习甚至使用,也提供试用平台版本下载。Koodoo语言也可 以运行在没有任何语音卡硬件的机器上。
Koodoo语言的用户就是专业程序员,我希望将来的程序员遇到语音应用开发,就想到采用Koodoo语言,就像
记者:很多人认为开发一门编程语言是很帅、很酷的事情而且意味着开发者有很高的技术,远了不说,像Python、Ruby等发明人都得到了程序员偶像级的崇拜。你如何看待开发一门新语言?
朱东宁:对于我来说,开发一门新的脚本语言,只是为了解决某个领域所遇到的问题,并且力图使产品有真正的商业价值。开发一门新语言遇到的难度是很大的,不仅仅是写一个稳定高效的编译器,你还要开发相关的配套工具,如调试器,配套的库,甚至完备的文档,教程,都需要付出巨大的努力。
无论如何,在我们自己熟悉的领域,如果有切实的需求,开发出一种“面向领域”的脚本语言,是完全可行的。【记者:呐不喊】
欢迎加入论坛:给“专家看台”栏目提出建议
朱东宁简介
网名:bluesen,真名朱东宁。大学专业为物理学,曾任物理教师和光谱分析工程师。在大学时代曾学习APPLE II的BASIC语言,而后喜欢写程序,90年代初到深圳成为专业程序员,96年和朋友创建蓝星际公司至今,几乎每天都在写程序,常用C/C++。
早年做金融行业软件,近年来专注于语音平台系统软件开发,设计并实现了高级脚本语言Koodoo语言, Koodoo语言可以在大容量的线路上并发执行,如单机几十个电信E1线路即上千个并发话路,系统仍能稳定高效运行。在CTI(计算机电话语音集成)行业 有14年的开发经验。
“业余喜欢阅读和写作。得意之作是在网上发表的技术文章“从历史的角度再论状态机”,曾被中南大学教授在专业论文中引用。喜欢有技术含量的网络辩论,痛快,痛快。”