科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件自创编程语言Koodoo,中国也出语言之父

自创编程语言Koodoo,中国也出语言之父

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

中国也有一位编程语言之父,虽然不及上述等人的知名度和技术影响力,但起码他在语音系统相关的开发方面创造了并创造着一种全新的思维。他就是朱东宁,他发明的编程语言叫Koodoo(读做[kudu])。

作者:CSDN 来源:CSDN 2007年12月5日

关键字: 编程语言 中国 语言之父 Koodoo 专家看台

  • 评论
  • 分享微博
  • 分享邮件

我们常说“语言决定思维”,选择一门什么样的编程语言,也便随之拥有了什么样的思维。那更进一步我们是不是可以说,创造了一门编程语言也等于创造了一种思维呢?看看Dennis M. Ritchie、James Gosling、David Heinemeier Hansson等人在相应语言领域的“呼风唤雨”、万人景仰,我想答案是肯定的。

        中国也有一位编程语言之父,虽然不及上述等人的知名度和技术影响力,但起码他在语音系统相关的开发方面创造了并创造着一种全新的思维。他就是朱东宁,他发明的编程语言叫Koodoo(读做[kudu])。

 

记者:能否介绍一下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竞争的通用型脚本语言成功的概率很小,其中一个原因是通用型脚本语言都是开源项目,而在国内的软件市场环境,采用开源模式,完全依赖服务收费来挣钱是很困难的,作为一个商业公司,生存是第一重要的;其次,我熟悉语音系统的需求,我觉得在特定领域解决特定问题,设计一种高效的脚本语言更有意义。目标市场就是定位为一种平台,相当于语音系统的中间件,我们称之为语音平台。

我一直认为,试图为所有人服务并让所有人都满意是不现实的,比如,有人设计的出发点是给不会编程的业务人员提供语音流程设计的工具,问题是,语音系统的流程如此复杂,业务人员是不敢去直接编制流程的,大部分系统集成公司或做语音增值业务的SP,都有专门的技术开发人员,我的目标就是降低他们开发、维护业务流程的复杂性。在语法角度,也许Koodoo语言并没有多少创新,她的某些有趣之处你在别的脚本语言中也可以看到,但Koodoo语言追求简单,容易上手,运行效率高,希望能够像Web领域的PHP语言一样。

记者: 能否谈谈Koodoo语言的版本升级和目前的发展状况?

朱东宁:目前Koodoo语言有不少电信、金融等行业的用户,Koodoo语言采用类似开源代码的小版本号,目前版本号是ver1.96,大概一个月左右就会推出一个小的升级版本。

随着IVR、CTI市场的发展,甚至3G等应用的展开,我们的Koodoo语言将支持更多的硬件和电信协议,一定有更广泛的应用。

当然,国内软件市场也在慢慢成熟,在不久的将来Koodoo语言也许会采用开源方式进行发展,毕竟对于一种语言,开源才有生命力。

记者:目前来说,Koodoo语言可能还没有太多的影响力,对于他的推广和前途你怎么看待?

朱东宁:目前主要是在公司创建的技术网站(http://www.bluespace.com.cn/koodoo )上进行推广,在网站上有全面的Koodoo语言手册和学习资料,也有单线路的版本可供下载学习甚至使用,也提供试用平台版本下载。Koodoo语言也可以运行在没有任何语音卡硬件的机器上。

Koodoo语言的用户就是专业程序员,我希望将来的程序员遇到语音应用开发,就想到采用Koodoo语言,就像数据库开发就想到SQL语言一样。

记者:很多人认为开发一门编程语言是很帅、很酷的事情而且意味着开发者有很高的技术,远了不说,像Python、Ruby等发明人都得到了程序员偶像级的崇拜。你如何看待开发一门新语言?

朱东宁:对于我来说,开发一门新的脚本语言,只是为了解决某个领域所遇到的问题,并且力图使产品有真正的商业价值。开发一门新语言遇到的难度是很大的,不仅仅是写一个稳定高效的编译器,你还要开发相关的配套工具,如调试器,配套的库,甚至完备的文档,教程,都需要付出巨大的努力。

无论如何,在我们自己熟悉的领域,如果有切实的需求,开发出一种“面向领域”的脚本语言,是完全可行的。【记者:呐不喊】

欢迎加入论坛:http://groups.google.com/group/viewer给“专家看台”栏目提出建议

朱东宁简介

网名:bluesen,真名朱东宁。大学专业为物理学,曾任物理教师和光谱分析工程师。在大学时代曾学习APPLE II的BASIC语言,而后喜欢写程序,90年代初到深圳成为专业程序员,96年和朋友创建蓝星际公司至今,几乎每天都在写程序,常用C/C++。

早年做金融行业软件,近年来专注于语音平台系统软件开发,设计并实现了高级脚本语言Koodoo语言,Koodoo语言可以在大容量的线路上并发执行,如单机几十个电信E1线路即上千个并发话路,系统仍能稳定高效运行。在CTI(计算机电话语音集成)行业有14年的开发经验。

“业余喜欢阅读和写作。得意之作是在网上发表的技术文章“从历史的角度再论状态机”,曾被中南大学教授在专业论文中引用。喜欢有技术含量的网络辩论,痛快,痛快。”

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章