`
andyhu1007
  • 浏览: 199750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

动态语言的高开发效率

阅读更多

   普遍认为Python的开发效率要比Java高出5-10倍。那么动态语言为什么会在开发效率方面具有天独厚的优势?

 

   1. 易学易用,编程人员可快速上手

 

   Python、Perl、Ruby等动态语言具有简洁的语法规则,交互式的编程环境,比C++、Java等静态语言更容易学习和掌握。动态语言不需要声明语句的编程方式使得动态语言更加接近于自然语言,简单明了,易学易读。

 

   2. 内置丰富的数据结构和操作

 

   实际上,动态语言是建立系统程序设计语言之上的语言,大多数动态语言解释器的内核都是用某种静态语言实现的,Python是用C实现的,JVM上的 Jython是用纯Java实现的,.Net CLR上的IronPython是用C# 实现的。动态语言将灵活性作为其设计的目标,优先考虑了语言的灵活性。因此,动态语言在语言层次上集成了许多操作方便、性能良好、高度抽象的数据类型,为 编程人员提供了高效的数据结构实现,有助于提高开发效率。

 

   比如以Python语言为例。Python语言提供了强大的数学运算,可以处理超大的整数和浮点数,支持复数的基本运算。Python内置了功能强大、使用方 便的数组类型,程序员不需要预先声明使用数组的大小就可以直接使用数组,也不必担心数组大小不够,这些解释器会自动根据具体地操作动态地分配数组的存储空 间,不象C/C++中使用数组首先必须声明数组的大小,这就使得很多人在使用数组时不知道究竟应将大小设置成多少,大了觉得浪费,小了又担心不够,想改成 指针方式动态分配又有可能给程序带来新的问题。

 

   3. 无类型化,用更少的代码可完成同样的工作

 

   动态语言的动态类型使得编写程序时不需要声明变量的类型,变量无类型化省去了程序代码中大量的编译器编译时所需的类型信息语句,使程序看上去简洁明了。

 

   高级程序设计语言的高级性在于它的每一条代码可以完成更多的工作,完成同样的工作,使用的代码愈少,表明语言的等级愈高。每行汇编代码平均可以翻译成 1-3条机器指令,与此相比,每行C/C++代码平均翻译成5条机器指令,而对于Python、Perl、Tcl这样的动态语言,每行代码可翻译成 100-1000行机器指令。

 

   动态语言把许多工作都交给解释器去完成,程序员专注于自己需要解决的问题,建立问题解决方案的逻辑就够了,因此更接近于自然语言。比起静态语言,动态语言的一条语句可以完成更多的功能。从这个意义上说,动态语言是一种更高级的语言。因此,动态语言具有更高的开发效率。

 

  正是因为动态语言内置了丰富的数据类型,节省了开发人员独立实现这些数据类型的时间,从而提高了程序的开发效率。

 

  4. 支持动态重构

 

  有些应用领域中逐渐出现这样一类需求:要求软件在运行时还能够改变,即动态重构。

 

  比如在一个银行系统中,要求软件一旦运行,就不能停下来,否则会对银行造 成灾难性的损失,那么这样的系统中如果在运行时发现某个错误怎样修正呢?显然,用静态语言很难实现,因为静态语言在运行时不能修改自身代码,用静态语言实 现的系统执行的是经过翻译处理后的可执行代码,要修正软件必须要经过修改源代码->编译->连接->生成可执行程序的步骤。而动态语言 比较容易实现,动态语言是解释执行的,运行时还能够修改自身的代码。国外有人用Smalltalk实现了这样一个分布式的银行系统,银行系统留有一个接 口,开发好的系统发现bug后,维护人员可以通过该接口远程登录后,可以在系统不停止运行的情况下把bug消除掉。

 

  动态语言一个广泛的应用就是作为“胶水语言”胶合用静态语言编写的组件,从而整合成一个应用程序,这种应用称之为混合式应用。RedHat Linux的安装程序就是通过Python胶合各个组件模块实现的。静态语言开发的程序运行速度快,但开发周期较长,而动态语言灵活简洁,开发效率可提高 5-10倍,但程序运行慢,混合式应用合理结合各自的优点,充分利用不同语言的各自优势,取长补短,可以快速高效地构建应用程序并具有相当的性能。

分享到:
评论

相关推荐

    试论动态开发语言Python研究.pdf

    通过这些基础知识,我们可以看到Python在开发速度和效率方面的优势,特别是在快速原型开发和对程序性能要求不高的场合。Python作为一种解释型语言,提供了简洁的语法和强大的标准库支持,这使得Python在数据处理、...

    Go语言高级编程

    为了提高开发效率,书中推荐了几个较为友好的Go语言编辑器和集成开发环境。 CGO是Go语言中一个特殊的组件,它允许Go代码调用C语言库函数,为Go语言提供了与C语言交互的能力。CGO编程基础、内存模型,以及如何包装...

    开发语言判断器,可以判断是那种语言开发的程序

    此外,对于一些动态语言,尤其是解释执行的脚本语言,识别难度可能会更大,因为它们没有编译后的字节码或二进制形式。 在软件开发过程中,开发语言判断器能够帮助团队统一编码风格,提高代码审查效率,甚至在维护...

    动态改变程序显示语言

    在IT领域,特别是软件开发中,为满足全球用户的需求,多语言支持是不可或缺的功能。"动态改变程序显示语言"这一技术就是为了让软件能够根据用户的语言选择实时调整界面文本。本篇将深入探讨如何通过动态加载DLL...

    软件开发分类及开发语言概述

    8. **Go**:Google开发的编程语言,适用于网络服务和并发处理,编译速度快,执行效率高。 9. **Kotlin**:近年来流行的Android开发语言,语法简洁,安全特性强。 10. **Rust**:强调安全性、并发性和性能,适合...

    脚本语言与动态网页设计课件

    6. Web框架:为了提高开发效率,许多开发者会选择使用Web框架,如JavaScript的React或Vue.js,PHP的Laravel或WordPress。课程可能涉及这些框架的基本使用和优势。 7. 安全性与优化:动态网页设计中,安全性不容忽视...

    go语言开发到实战完整课件

    * 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。 * 语言层面支持并发,这个就是 Go 最大的特色,...

    books 动态函数式语言精髓

    综合来看,这个压缩包提供了从基础编程(如Java)到高级编程理念(如动态函数式语言)的全面学习材料,同时也包含了数据库管理和开发环境配置等实用工具的教程,适合于想要提升自己编程技能或了解函数式编程的开发者...

    一份介绍动态语言和FP的PPT

    通过这份PPT的学习,读者可以加深对动态语言的理解,掌握FP的核心思想,以及如何在实际项目中利用这些概念提高代码质量和开发效率。对于想要提升编程技巧的开发者来说,这是一份非常有价值的资源。

    Python源码剖析 深度探索动态语言核心技术.pdf

    根据提供的标题“Python源码剖析 深度探索动态语言核心技术.pdf”以及描述中的相同信息,我们可以推断出这份文档的主要内容是关于Python语言的核心技术深入解析,特别是针对Python作为一门动态语言的特点进行探讨。...

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

    在编程世界中,语言的类型系统是至关重要的概念,它决定了程序的行为方式和开发效率。本文将深入探讨动态语言、动态类型语言、静态类型语言、强类型语言和弱类型语言的区别,帮助理解它们各自的特点。 1. 动态语言...

    PHP在动态网站开发中的优势 (2).pdf

    其次,从语言及开发工具方面来看,PHP 不仅具有其本身的语言特点,还综合了 C 语言、JAVA 语言和 PERL 语言的特点,因此,PHP 在动态网站语言开发中能够使动态网站开发工作更加快速和便捷。最后,从数据库连接方面来...

    编译性语言、解释性语言和脚本语言

    解释性语言的优势在于灵活性高,开发速度快,但因为每次运行都需要解释,执行效率相对较低。此外,解释性语言通常对错误更宽容,适合快速原型开发和动态脚本编写。 脚本语言,如JavaScript、PHP、VBScript和Perl,...

    jdk6.0从入门到精通-----chapter18与动态语言结合

    这些项目让开发者能够在Java应用程序中直接使用动态语言的代码,极大地提高了开发效率和灵活性。 描述中的“博文链接:https://hnzhoujunmei.iteye.com/blog/765052”可能是一个关于这个主题的详细博客文章,可惜在...

    Delphi 多国语言开发包

    8. 设计时支持:除了运行时的语言切换,开发包可能还提供了设计时工具,使得开发者在编写代码时就能预览不同语言的界面效果,提高开发效率。 通过理解并掌握上述知识点,开发者能够利用Delphi 多国语言开发包创建出...

    python动态语言编程教程

    在本教程中,我们将深入探讨Python语言的核心概念、语法结构和编程实践,以揭示其智能动态语言的魅力。 首先,Python的动态性体现在类型系统上。在Python中,变量的类型不是在声明时确定的,而是在运行时根据赋值...

    mojo编程语言是一种用于编写Web应用程序的动态语言

    动态语言的优点在于编写代码的灵活性更高,开发效率更快;但缺点是可能会牺牲一些性能和类型安全。 在编写Mojo Web应用程序的过程中,我们可以看到示例中的几个关键点。首先,使用Mojolicious::Lite模块是一个快速...

    Exe文件开发语言查询器

    1. **C++**:作为一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言,C++编译的Exe文件运行效率高,但体积相对较大。 2. **C#**:由微软开发,是.NET框架的...

    几种WEB开发语言比较

    - 效率:相比于C/C++,执行速度较慢,不适合桌面应用或游戏开发。 3. **ASP**: - **概述**:ASP(Active Server Pages)是Microsoft开发的动态网页技术,仅适用于Windows环境。 - **优点**: - 与Windows集成...

    使用Java语言开发Web应用软件的知识探讨.pdf

    "使用Java语言开发Web应用软件的知识探讨" Java语言是一种高效、简洁、功能强大、灵活的编程语言,广泛应用于Web开发领域。以下是Java语言在Web开发中的知识点: 一、Java语言简介 Java语言是一种高级编程语言,...

Global site tag (gtag.js) - Google Analytics