`

动态语言和静态语言

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

  系统软件和应用软件的界限已经越来越清晰,开发系统软件仍然需要静态语言,而应用软件和Web网站的开发越来越适合采用动态语言。编写操作系统之类的系统软件对性能要求依然是首位的,而对于应用软件来说,缩短开发周期显然更加重要。

  由于大部分的应用软件都采用B/S结构,Web框架对于开发语言显得越来越重要,大多数的动态语言也都拥有自己的Web框架。Python的Web模型可谓五花八门,Django、TurboGear、Webware以及Quixote是其中的代表者。而对于Ruby来说,Ruby on Rails似乎就是不二选择,目前Ruby on Rails风光无限,甚至已经有很多Web网站构建在Ruby on Rails之上并取得了良好的效果,著名的javaeye就是其中的代表者。Perl的MASON名气很大,也很成熟,其实Perl本身就很适合做Web开发,只要有fastcgi,利用CPAN程序库,大部分应用都能轻松解决了。
分享到:
评论

相关推荐

    动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    总结来说,动态语言和静态语言主要区别在于类型检查的时间点,而强类型和弱类型关注的是类型转换的规则。动态类型语言与静态类型语言各有优劣,动态语言更灵活,适合快速迭代的开发;静态类型语言则提供了更好的编译...

    PHP动态语言静态化示例

    此资源最好搭配讲解,地址http://blog.csdn.net/m_nanle_xiaobudiu/article/details/79267703

    汉英语言对比之静态与动态.pdf

    汉英语言对比之静态与动态.pdf

    WPF 多国语言实现与动态切换当前语言

    以上就是WPF应用中实现多国语言支持和动态切换的基本步骤。通过这种方法,开发者可以轻松地为全球用户提供本地化的用户体验,同时保持代码的整洁和可维护性。在实际项目中,可能还需要考虑资源文件的编译和打包,...

    2015 Spark技术峰会-Spark SQL结构化数据分析-连城

    Databrciks工程师,Spark Committer,Spark SQL...Spark DataFrame vs.RDD,有些类似于动态语言和静态语言的区别,在很多场景下,DataFrame优势比较明显。1.3版中,Spark进一步完善了外部数据源API,并可智能进行优化。

    MyGame服务器架构PPT学习教案.pptx

    服务端开发则涉及动态语言和静态语言的选择。动态语言如JavaScript、Lua、Python等在运行时允许程序结构变化,适合游戏需求中的灵活性和可扩展性;而静态语言如C++则在效率上有优势,适合处理性能要求高的任务。为了...

    动态页面生成静态页面实例

    动态页面如`.aspx`文件(如`index.aspx`和`a.aspx`),通常基于服务器端的编程语言(如ASP.NET)运行,每次请求时都会根据用户输入和数据库交互生成内容。而静态页面如`.html`文件(如`index.html`),是预先生成的...

    LINQ与DLR的Expression tree(4):创建静态类型的LINQ表达式树节点

    6. **DLR的作用**:简单介绍了动态语言运行时(DLR),它是.NET框架的一部分,使得动态语言和静态语言可以共享相同的表达式树结构,提高了代码的互操作性。 在提供的代码文件`ExpressionTreeSamples.cs`和`...

    动态网页 和静态网页

    动态网页与静态网页是网页开发中的两种主要类型,它们各自具有独特的特性和应用场景。 静态网页主要是由HTML、CSS和JavaScript等基本Web技术构建的。这些网页在服务器端被完全生成,然后以固定的内容发送到用户的...

    Java动态绑定和静态绑定.doc

    在Java编程语言中,动态绑定和静态绑定是两个重要的概念,它们涉及到方法调用和多态性。了解这两个概念对于深入理解面向对象编程至关重要。本文将详细探讨它们的区别,并通过实例来阐述它们的工作原理。 首先,让...

    动态生成静态HTML

    C#作为一款强大的.NET平台编程语言,提供了丰富的库和框架来实现这一功能。以下是对这个主题的详细解释: 1. **动态与静态页面的区别** - 动态页面:基于服务器端脚本(如ASP.NET、PHP等),根据用户请求实时生成...

    JSR 223

    它不仅丰富了Java开发者的工具箱,还促进了动态语言和静态语言之间的互补合作,提升了开发效率和应用的灵活性。对于希望在Java环境中利用脚本语言优势的开发者来说,JSR 223无疑是一个重要的技术里程碑。

    静态网页和动态网页的区别.txt

    静态网页和动态网页的区别 动态网页和静态网页的区别,首先要分别了解两个概念,就是什么是静态网页,什么是动态网页,并且学会区分哪些是静态哪些是动态。 静态网页: (1)静态网页不能简单地理解成静止不动的...

    aauto quicker

    它结合了动态语言的灵活性和静态语言的严谨性,使得开发者在享受动态语言的快速原型设计和迭代的同时,也能确保代码的稳定性和性能。AAuto的语言设计考虑了广泛的语言兼容性,支持大部分流行编程语言的语法,降低了...

    librdkafka 动态库 静态库

    动态库和静态库是两种不同的库文件形式,动态库在运行时被加载到内存中,而静态库在编译时直接链接到目标代码中。 描述进一步说明这些库是由VS2015(Visual Studio 2015)编译的,并且是v1.6.1版本。这意味着库文件...

    静态、动态链接库的创建和调用

    这种方式的优点在于可以按需加载DLL,对于启动性能要求较高的应用来说更为合适,也便于程序在多语言环境下的动态模块加载,但缺点是调用方式相对繁琐,编程者需要手动管理DLL的加载和卸载过程。 根据不同的应用场景...

    Android动态系统语言切换

    在Android系统中,用户通常可以在设备的设置菜单中选择或更改系统语言,但这是一种静态的切换方式。然而,开发者有时需要在应用程序运行时动态地改变系统语言,以便为用户提供更个性化的体验。本文将深入探讨如何...

Global site tag (gtag.js) - Google Analytics