长沙北大青鸟大计教育
在线测试

Java+中什么是半静态语言?原理及价值

发布时间:2013-04-27

  什么是半静态语言呢?全新的基于JVM的脚本语言是Groovy和Scala。这两门语言现在都越来越流行,不同的是,Groovy是动态脚本语言,而是Scala是静态语言,那什么是半静态语言呢?本文将由阿里巴巴技术部中文站架构师何坤(Raymond He)系统地向大家介绍这篇《详解半静态语言原理及价值》。

  引言

  动态类型语言在企业开发和互联网领域应用广泛,如Ruby ,Velocity, Python等。 动态类型语言在运行时进行类型推断,以解释方式执行,修改即生效,开发灵活性高;而静态类型语言(如:Java,C/C+/C++) 在执行前做类型检查,需要编译运行,对于互联网前端开发不够灵活。

  因此,许多大型互联网站选择 Freemarker, Velocity这样的动态模板语言作为页面开发语言,在一定程度上满足了前端敏捷开发的需求。

  然而,对于大型电子商务网站,不仅具有一般互联网需求频繁变更的特点,更显著特点则是业务繁多,业务模型和业务关系复杂。 因此,在此类应用开发中,Velocity 的开发也遇到了一些的问题。

  前端模板开发问题

  1、降低软件质量

  Velocity是弱类型动态语言,运行时才能检查出类型错误。由于动态类型等特点,有的错误在遇到特定参数时,才能激发执行路径,软件质量不能很好的保证。

  2、测试成本高

  由于无法像静态语言一样,在运行前进行类型检查,因此软件的测试周期长,测试成本高。

  3、开发不敏捷

  缺乏一些敏捷开发功能如IDE内实时验证、代码提示、代码重构等。虽然能修改即生效,但对于企业级开发,效率较低。

  4、维护性差

  对于一个大型系统,在重构业务模型(Java Model)或代码时, 无法知道哪些Velocity模板会受到影响;常常需要花费大量时间搜索相关模板,然后修改、测试。例如:笔者所在公司的一个基础产品升级,由于受影响模板众多,重构复杂,项目评估达上千人日。

  这些动态语言天生的缺点在企业级和大型网站应用中非常突出,严重的影响了开发质量和开发效率。因此,在技术上亟待一种新的高质量、高效率的开发技术。

  静态语言的优势

  综合考虑后,我们发现动态类型语言(Dynamic Language)“解释执行方式和修改即生效”的最大之一优点仍是不能舍弃的。必须从问题出发,找到一条平滑的线路来解决问题。

  遇到上述问题时,我们不由自主的会赞美Java的优点:

  1、静态语法和静态类型实时检查。

  如果赋值类型不匹配,方法不存在,参数类型错误等信息能马上在IDE中显示;

  2、代码提示:

  调用属性,方法时能代码提示,开发非常高效;

  3、代码热链接:

  通过变量和类名热链接到对应的Java类;

  4、代码重构:

  修改一个Java类时,受影响的Java代码会被实时重新验证,马上会显示红色的错误; 更强大的是重构,对Java类,方法敏性重命名,会自动修改所有相关代码中对它的引用。

在线申请

北大青鸟免费试听课程

 我已同意《隐私政策说明》
马上申请

学校地址: 长沙市天心区团结路6号

报名热线: 4008-0731-86 / 0731-82186801

Copyright © 2006 北大青鸟长沙大计教育
长沙市岳麓区大计职业技能培训学校有限公司版权所有

湘ICP备14017520号-3