51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8269|回复: 13
打印 上一主题 下一主题

[讨论] 未来几年动态语言谁将成为主流

[复制链接]
  • TA的每日心情

    2014-11-21 09:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2006-9-21 11:24:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    什么是动态语言呢?

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

      当前静态语言有: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的模板技术很多都支持简单的编程,如逻辑控制等。当然现在还不能称其为一种语言,但是相信,这一切随着动态语言的发展并将成为一种新的语言。

      动态语言必将大行其道,但是不是独行,而将与静态语言相辅相成。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-11-1 16:13:58 | 只看该作者
    回复 4# ppcorn

    看完后,把我搞得也混乱啦!

    我喜欢python,这还是喜欢python。虽然我也一直在用perl,这个粘合剂语言怎么可能说过时了,哎!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-8-26 17:29:44 | 只看该作者
    感觉确实如楼上所说的,各个行业有各个行业比较适合的语言。
    不过就动态语言来说,现在python和ruby相对来说用的最多了吧
    动态语言就是简单啊~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-8-17 10:17:50 | 只看该作者
    不清楚哪个会成为主流,但是我打算开始学习python。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-5-18 13:58:49 | 只看该作者
    难道LZ的动态语言,是指解释型语言
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-4-4 22:06:49 | 只看该作者

    回复 4# 的帖子

    确实感觉作者的的文章比较乱。
    php是语言,没错,可是后面的两点,从作者的表述来看,应该是“平台”,脚本语言运行的平台。

    当前最流行的通用型 脚本语言我觉得是perl, python, ruby, 个人认为ruby是最有潜力的。从语法和语言的设计来说,ruby也是技高一筹。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-2-2 11:33:01 | 只看该作者
    RUby现在很火
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-1-3 15:58:37 | 只看该作者

    Ruby

    唯一一款面向对象的脚本语言,特别在Web方向上。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-11-30 18:28:27 | 只看该作者
    动态语言,按我的理解应该是脚本这一类,linux/unix 下的shell脚本,LR/WR/等里面的TSL等都是测试人员应该熟悉的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-4-16 10:12:54 | 只看该作者
    TCL/TK   and   python
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-4-7 08:19:22 | 只看该作者
    python很好,我很喜欢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-4-4 11:24:08 | 只看该作者
    原帖由 ppcorn 于 2006-12-5 11:25 发表
    这篇文章让我产生了混乱,但是我不知道是不是因为文章的作者比较混乱。
    第一:动态语言的概念。根据文章的定义,不需要编译,应该是指传统的脚本语言。
    第二:asp.net不是一种语言,其核心语言是C#,也可以是 ...

    赞同.说Perl过时,是有点过份.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2006-12-5 11:25:10 | 只看该作者
    这篇文章让我产生了混乱,但是我不知道是不是因为文章的作者比较混乱。
    第一:动态语言的概念。根据文章的定义,不需要编译,应该是指传统的脚本语言。
    第二:asp.net不是一种语言,其核心语言是C#,也可以是VB.net,可是上文中,asp.net是动态,C#是静态。而且在我印象中,asp.net和jsp类似,都是在第一次调用的时候,服务器端编译的。
    第三:似乎文章作者关心的是B/S的架构的东西。所以对Perl,tcl等等在通信设备中大行其道的语言毫无了解,甚至于对perl用了过时一词,悲哀。

    [ 本帖最后由 ppcorn 于 2006-12-5 17:01 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2006-9-27 17:51:12 | 只看该作者
    我也顶TCL  因为我自己搞的测试工具用的TCL。。。
    不过他是由C发展来的算不算动态呢?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 07:07 , Processed in 0.074192 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表