普遍认为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倍,但程序运行慢,混合式应用合理结合各自的优点,充分利用不同语言的各自优势,取长补短,可以快速高效地构建应用程序并具有相当的性能。
分享到:
相关推荐
《PHP+MySQL动态网站开发》注重将理论讲解与工程应用结合起来,选择的案例是作者实践的结晶,能提高读者学习的积极性和效率,通过学习这些案例,读者能够掌握《PHP+MySQL动态网站开发》的精髓,并可以直接应用到动态...
在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率。 主要特点 MVC 架构,设计精巧,使用简单 遵循 COC 原则,支持零配置,无 XML 独创 Db + Record 模式,灵活便利 ActiveRecord 支持,使...
Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易维护性,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。...
而第三方库则提供了更多的扩展功能,如数据可视化、机器学习、深度学习等,可以大大提高开发效率。 Python还具有跨平台支持,可以在多种操作系统上运行,包括Windows、Mac OS、Linux等,这使得开发者无需考虑不同...
简介:Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言: Go = C + Python ,
JFaker JFaker(JFinal+Snaker)的目标是借助Jfinal的极速开发框架与Snaker流程引擎搭建一套基础... 在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友
在拥有Java语言所有优势的同时再拥有 ruby、python 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 ;) JFinal有如下主要特点 MVC 架构,设计精巧,使用简单 遵循 COC 原则,支持零配置,无 XML ...
Ruby 是一种动态、开源、面向对象的编程语言,具有简洁优雅的语法和强大的功能。它由日本程序员松本行弘(Yukihiro Matsumoto)于 1995 年首次...开发效率高:Ruby 语法简洁,具有丰富的内置函数和库,以及强大的元编程
在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) JFinal有如下主要特点 MVC 架构,设计精巧,使用简单 遵循 COC 原则,零配置,无 XML 独创 ...
一直在寻找最效率的.net网站开发框架 终于被我找到了 ------ ... ... 可以作为一套JQuery开发组件或者是嵌入式开发框架,与...提供Smart UI前台框架无缝结合的快捷高效的后台数据框架(.Net),有效地提高开发效率和程序性能
在拥有 Java 语言所有优势的同时再拥有 ruby、python、php 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) JFinal 有如下主要特点: MVC 架构,设计精巧,使用简单 遵循 COC 原则,支持零配置...
本网站系统使用动态网页开发SSM框架,Java作为系统的开发语言,MySQL作为后台数据库。设计开发了具有管理员;首页、个人中心、病人管理、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理...
在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) JFinal有如下主要特点: MVC架构,设计精巧,使用简单 遵循COC原则,零配置,无xml 独创...
在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) JFinal有如下主要特点: MVC架构,设计精巧,使用简单 遵循COC原则,零配置,无xml 独创...
从官网下载,放CSDN加速下载不等待,jfinal最新版本功能扩展依赖包。 JFinal 是基于 Java ...在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
这种灵活性使得Ruby在快速原型开发和脚本编写方面具有很高的效率。 Ruby是一种纯粹的面向对象语言,一切皆为对象。它支持类和对象的定义、继承、多态等面向对象的特性,使得开发者能够以面向对象的方式组织和管理...
它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库...
这种灵活性可以提高开发效率,但也需要开发者注意类型安全性。 3. **异步编程支持**:Mojo内置了异步编程支持,使得处理并发任务变得更加简单。这对于处理I/O密集型的Web应用程序特别有用,可以提高性能和响应性。 ...
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习...在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) JFinal有如下主要特点: MVC架构,设计精巧,使用简单 遵循COC原则,零配置,无xml 独创...