可以简单的理解为直接被解释执行的语言称为动态语言。而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。

  当前静态语言有:Java、C/C++、C#、Delphi、VB等。

  动态语言有:ASP、PHP、CGI、lisp、Perl、python,Smalltalk、Ruby等。

   对于动态语言,每个人心中都有自己的排序,各自喜好不同。但是对于动态语言越来越受重视是很多人的共识。众多的动态语言当中,谁将成为主流语言,众说纷 芸,各持已见。而我最看好的动态语言将从下面三种语言中产生。为什么我会锁定在三种语言上呢?除了语言自身的优势外,另外一点最主要的原因就是其被后的力 量。任何一种产品想成为主流都离不开强大的财团支持,开发语言也不例外。

  1、php 动态语言之精典

  对于php语言,笔者的个人感情较浓,从第一次接触它就被其简单、灵活、功能之强大所征服。更快的处理效率,迅速的部署及PHP的跨平台的特性让其应用更为广泛,相信俱有跨平台特性的动态语言中没有任何一个语言能及php语言的普及率高。很多大的网站使用着PHP,历史证明,它是一个经得起考验的动态语言。另外,php的开源环境也相当出色。世界各地数以万计的程序员,采用PHP编写程序。你可以从PHP相关的网站、社区等找到各类优秀的开源程序代码。

  最近IBM、Oracle 正尝试把PHP 应用到SOA 之中,再一次证明了PHP的优秀。虽然PHP存在着维护困难,复用性低等问题,但这些并不能影响其最终成为主流的动态语言。前不久IBM还基于Apache Geronimo项目推出了为it WebSphere Application Server Community Edition开发的PHP集成工具集。该工具集能让开发人员在SOA中开发服务时使用PHP和Java。zend也推出了php的开发框架,这些技术将帮助软件公司创建企业级PHP应用。 PHP会变得更加广泛,从当前网站技术上的胜行,到企业级WEB应用,php必将成为最有竞争力的动态语言。

  2、在java的基础上产生新的语言

  java语言的发展是有目共睹的,早已成为时下最为主流的开发语言。在java环境下的应用层出不穷,特别是JDK1.5发布之后,java在性能上的提升已今非惜比。对于动态语言的支持早就在日程当中。

  在Lang.net 2006 会议上, Sun公司宣布将积极参与让JVM支持动态语言的开发项目.将会增加一个新的JVM 指令——invokedynamic,用来设计对动态语言对象的支持。然而主仅仅是一个开始。我想java平台将会全面支持动态语言,俱备运行时更改类结构或相关配置。另外很类技术人员都知道Sun已经整体收购了JRuby项目,sun公司对于动态语言的发展是有备而战的。目前java平台下的动态语言有Groovy、nice、BeanShell、Jython、JRuby、Rhino(JavaScript)、Jacl(TCL)、Bistro(SmallTalk)、Kawa(Lisp/Schema),真是越来越多了。java下这么多的动态语言建议选择Groovy,感觉血统较为正宗,兼容Java的语法,java程序员学习起来较为容易,上手较快。

  由于2EE太过于复杂,面对当前的行业需要,必将会在java语言的基础上发展出一种新的基于java的动态语言,使WEB开发过程变得更快,更简洁,但又不失java自身的特点。使Java在WEB开发能力上达到前所未有的提升。由于sun及IBM公司的推动,反微软企业的支持,还有企业的认可,基于java语言所产生的动态语言也必将会成为动态语言家族中有力的竞争对手。

  3、.net的动态语言

  微软的动态语言用的人最多的应该是asp,现在发展到ASP.NET。看微软在开发语言方面的发展,他们一定不会放弃这块肥肉,并会加大投入力度,与其它的动态语言提供商火拼到底。只要是有利可图的地方,没有微软不想伸脚的,更何况这是一块大肥肉呢。

  前不久微软CLR开发组的负责人Jim Hugunin表示,微软将加强对CLR中的动态语言的支持。并将会发布成熟的软件模式,细化到代码中,放在库中供开发者调用,以帮助他们通过.Net Framework上的动态语言开发自己的应用程序。种种迹像表明微软在动态语言方面没闲着,正紧锣密鼓实施着一系例动作。

  我把微软的动态语言列为最可能成为主流动态语言的原因是因为其Windows的平台无所不在。这是无法否认的。微软势比处投入重手,增强竞争能力。以微软的人力、财力,想不分给微软一块蛋糕是不可能的。有钱就是好,投入大笔的资金,什么都可以做。

   有人一定会反问我,为什么把其它的动态语言抛开不谈。Perl语言过时了,虽然还有一些公司在使用,但早已不是主流。python、Ruby最近几年开 始火起来的动态语言,我并不看好它们,虽然它们是很优秀的语言,但是优秀并不帶表会成为主流。正如操作系统一样,大家都有个共识就是,unix、 Linux很优秀,但是并不是主流系统。当然会有人反驳说应用场景不同,不能一概而论。那么开发语言也一样,我说的是大众主流,大众主流就是指最广泛的被采用。

  有人说,未来动态语言会取代静态语言,将一统天下,我并不这样认为,相信应该是动态语言与静态语言互相辅助,各在其擅长的方面发挥作用。比如多线程,目前的动态语言支持都不如静态语言的好,很多还不支持。

  对于语言的选择,一般性的应用,完全可以采用动态语言完成,也可以采用静态语言,这要看撑握语言的人或是需求而决定。更为灵活,更容易扩展及复用的方式是采用动态语言+静态语言的方式。前台功能采用动态语言实现,后台服务采用静态语言实现,充分利用各自的优势。当前在java的WEB应用开发过程中,采用模板技术就是这类应用模式的一个雏型。java的模板技术很多都支持简单的编程,如逻辑控制等。当然现在还不能称其为一种语言,但是相信,这一切随着动态语言的发展并将成为一种新的语言。

  动态语言必将大行其道,但是不是独行,而将与静态语言相辅相成。

转载于:https://www.cnblogs.com/treasurelife/archive/2008/03/10/1098812.html

什么是动态语言(转)相关推荐

  1. 动态语言的灵活性是把双刃剑 -- 以Python语言为例

    本文有些零碎,总题来说,包括两个问题: (1)可变对象(最常见的是list dict)被意外修改的问题, (2)对参数(parameter)的检查问题. 这两个问题,本质都是因为动态语言(动态类型语言 ...

  2. 高并发大流量专题---8、动态语言的并发处理

    高并发大流量专题---8.动态语言的并发处理 一.总结 一句话总结: 和本科毕业论文连起来了:基于消息中间件Rocket MQ的研究:用于并发处理的消息队列 1.什么是进程.线程.协程? 进程(Pro ...

  3. 为什么php动态语言,动态语言静态化

    [TOC] ## 什么是动态语言静态化 将现有PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态HTML文件的过程. 对实时性要求不高的页面 ## 为什么要静态化 动态脚本 ...

  4. 为什么说Python是一门动态语言--Python的魅力

    动态语言的定义:动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用. 它是一类在执行时能够改变其结构的语言:比如新的函数.对象.甚至代码能够被引进,已有的函数能够被删除或是其它结构 ...

  5. 为什么可以说Java语言是准动态语言?

    什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...

  6. Java 动态语言

    Java  动态语言 XRuby 官方网站: http://code.google.com/p/xruby/ 2009-05-24 JBasic 官方网站: http://jbasic.sourcef ...

  7. python是高级动态语言_Python动态语言之魅力揭秘

    之前的文章跟大家讲解了鸭子类型,其实鸭子类型是编程语言中动态类型语言中的一种设计风格.今天跟大家一起谈谈动态语言的魅力. 根据维基百科,动态编程语言是这样子定义的:动态编程语言是高级编程语言的一个类别 ...

  8. 在OperaMasks中使用ELite和JRuby动态语言的秘笈

    如何在OperaMasks中使用动态语言 1. 前言 2. 在OperaMasks中使用ELite 2.1. ELite的介绍 2.2. 在OperaMasks中使用ELite 3. 在JSF中使用R ...

  9. python线上编辑问题_大型线上项目中动态语言诸多问题之二 -- 以 Python 语言为例...

    第一个问题:Mutable对象被误改 这个是在线上环境出现过的一个BUG 事后说起来很简单,服务端数据(放在dict里面的)被意外修改了,但查证的时候也花了许多时间,伪代码如下: def routin ...

  10. python语言的理解-Python动态语言理解

    1. 动态语言的定义 动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用.它是一类 在运行时可以改变其结构的语言 :例如新的函数.对象.甚至代码可以被引进,已有的函数可以被删 ...

最新文章

  1. SAP Explore hidden functions in MD04
  2. 树莓派原python3.5+opencv3.3.1+tensorflow1.7.0安装
  3. vscode 安装包_VS Code的下载与安装(更改插件的安装位置)
  4. python循环for不从零开始_Python-多处理-巨大的for循环
  5. sql查询每科成绩的最高分_数据分析SQL查询:一文带你入门到掌握
  6. 项目 11 部署与运行
  7. postgresql 参数替换 游标_解决postgresql和oracle如何把游标cursor数据存到数组array
  8. 【生信进阶练习1000days】day22-复习day1~day14的知识点
  9. EXCEL科学计数法转为文本格式
  10. C++学习笔记(二)——字符 字符串 ASCII码 转义字符
  11. WPF 入门教程(一)
  12. android 表情键盘切换,如何在键盘之间切换(从表情符号到qwerty,反之亦然)
  13. k8s对接smb/cifs存储
  14. 【福利】【两周年庆典,送书第二弹】机器学习方法体系汇总
  15. cocos2dx 3.17.2 升级最新的Spine
  16. stagefright 架构分析(四) MediaExtractor
  17. Android开发常用框架
  18. 英语基础-定语从句的特殊用法及写作应用
  19. 清华计算机专业2020保研名单,清华大学2020届保研情况
  20. Alamofire-Response

热门文章

  1. golang中的权限
  2. go语言的main函数
  3. STM32中3个延时函数
  4. 前端一HTML:十八:元素的显示方式
  5. 开发人员需知的Web缓存知识(转)
  6. 字节码学院之map介绍
  7. Supervisor 守护你的进程
  8. SCOM 2012知识分享-26:分布式部署要点总结
  9. C# C/S WPF 远程操作服务器上面的文件
  10. 读《瓦尔登湖》,寂寞的共鸣