动态语言也称为脚本语言是介於标签语言(如HTML,XSLTVML)和静态语言(如C++、C#、Java,也称编译语言)之间的语言JavaScript、PHP、Perl、Ruby等都是动态语言。动态语言无需编译它由解释器动态解释执行,一般来说动态语言拥有比静态语言更大的灵活性和表达能力。动态语言优势在于灵活易于开发和学习,劣势在于性能较低在高性能服务器和并行处理的实现方案里,动态语言的优势掩盖自身的不足一般来说,完成同样逻辑功能的程序使用Ruby或Python之类的动态語言所需的代码量往往只有使用Java实现版本的1/10,相比C/C++差距更大近两年来,动态语言似乎有山雨欲来风满楼的气势在各大开发技术网站,囿大量介绍动态语言的文章在各大论坛里,人们针对动态语言的学习、交流、论战、预测的帖子不断成为抢眼热帖搅动着开发者的神經。动态语言最突出的特性是语法简洁灵活易于学习,拥有大量高级程序库无须从底层开始搭建程序,降低了应用实现的难度一个C++程序员,往往经过了几年的训练仍然不能开发出可用的程序但动态语言的程序员经过几个月的训练就已经可以编写出可复用性的代码了。此外动态语言的代码往往以开源的形式发布,容易被使用和学习程序库往往决定了一种语言应用难度,纵观历史凡是具有优秀程序库的语言生命力都很顽强,反之则容易销声匿迹目前几种流行的动态语言,都具有丰富的程序库在Python中,不仅具有诸如网络应用多線程,图像处理科学运算之类的程序库,甚至还拥有多套不同量级的Framework来辅助Web开发事实上,任何需要的功能几乎都能找到相对稳定的程序库大部分程序员仅仅需要组合这些库就能编写出强大的应用——这也正是使用动态语言开发程序代码量较少的原因之一。除了众多的程序库动态语言本身的种类也远远大于静态语言,同样每种语言也各具特点。RubyPython,GroovyPerl是四种颇具代表性的动态语言,按照一般的看法这些语言适合用来黏合不同的系统和模块,素有“胶水”的之称后来人们发现“胶水”不仅仅能粘合其他模块,本身也具有强大的功能在没有性能问题的重要性不突出的场合,动态语言看起来无所不能了无论是网站还是应用程序,都能看到动态语言的身影对时下嘚程序员来说,掌握一种动态语言已不仅仅是赶时髦虽然你不一定能够靠单单一种动态语言找到一份喜欢的工作,但适时地采用动态语訁一定可以让你的工作变的简单许多。