Jython是两种广泛流行语言Java和Python的组合,继承了Java和Python二者的特性而显得很独特,本文将着重介绍Jython语言的由来和特点。

Jython言语结合了Python的灵敏高效与Java的强壮。Jython是两种广泛盛行言语Java和Python的组合。Java已被广泛地承受,这可从许多公司都已装备了根据Java的运用得以见证。

略谈Jython言语:什么是Jython?(jython使用)  jython语言 什么是Jython Jython 第1张

其他Java有巨大的可利用的类库,并有很翔实的文档。Python则具有很好的灵敏性,开发快速,简略运用。在两种言语之间做出挑选是很难的事,但有了Jython,就不再需求做这种挑选了。Jython能够完成在Java或Python中完成的任何类、算法和形式而不需考虑其他言语,它能在这两种言语之间坚持简直无缝的操作。

扩展其他言语像Perl或Python,需求专用的API或繁杂的封装器。假如不加改造,任何C代码都不可能在Perl或Python中运用,而任何的Java代码却能在Jython中运转。因为与Java的无缝集成,你能够在Jython中引进、运用任何Java类并创立派生类。不只包括那些为某个特定API而写的类或与某个特定东西打包的类,并且包括任何Java类。其他你还能将Jython编译成Java的字节代码使其在Java的结构内运转。你乃至能够在Java中引进、运用任何Python类并创立派生类。

在Jython和Java中也有一些小的不同,正确了解这些不同对了解Jython是很有协助的。Java是一种类型丰厚的言语,而Jython则运用动态类型而没有显着的类型界说。Java有一些包括类的包,而Jython有包、模块、类和函数。Java有必要编译,而Jython能交互式地运转,解说一个非编译的脚本或编译成字节码。Java类有像private和Protected的存取符,而Jython仅有最小的存取约束而没有显着的像Private的修饰符。

最风趣的作业是Jython和Java的不同并不构成很大的费事,相反却能互补。Jython的交互形式供给了一个测验和研讨Java类的快速办法,而Java的接口和抽象类给Jython派生类供给了一个指定协议的很好的办法。Jython的动态类型对快速原型和灵敏性有很大的协助,而Java的静态类型也添加了运转时的功率和类型的安全性。这些互补因为其无缝性而显得很好。添加程序的花费来平衡这些特性将对程序的功用有副效果。走运的是Jython使它们简略、易于了解,并且不需求额定的花费。

什么是Jython?

要了解Jython,首先要了解Python。Python是用C编写的高档的、面向目标的、敞开源代码的编程言语。Cuido vanRossum是Python的原创者,继而在Python的快速开展中发生了一大群高水平的设计者和程序员。运用Python的开发人员添加敏捷,并一直在持续添加。但是Sun的Java编程言语也是深人人心的。跟着用Java完成的项目的数量接近了用C/C++完成的项目,Python的Java完成也变得很有必要。Jython,开端叫做JPython,便是:Python言语的Java完成。为防止混杂,

Jython是一种完好的言语,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python言语在Java中的彻底完成。Jython也有许多从CPython中承继的模块库。最风趣的作业是Jython不像CPython或其他任何高档言语,它供给了对其完成言语的全部存取。所以Jython不只给你供给了Python的库,一起也供给了一切的Java类。这使其有一个巨大的资源库。

Jython和Python强调了代码的简明性、便利性和易读性。Jython运用缩排来对代码块定界以防止运用在Java中的大括号。Jython用新的一行来表明一个新的句子的开端,并有几个重要的差异,如答应在每个句子后省掉分号。Jython没有像在Java中的public、private和protected存取符,这样就给程序员供给了快速开发所需求的灵敏性,并将注意力会集在程序逻辑上。正像前面所说到的,Jython不用显着的静态的类型界说,故程序员不需求从程序逻辑转移到类型界说上来。

Jython的前史要追溯到JimHugunin,他是Guidovan Rossum在国家研讨动力中心(CNRI)的搭档。JimHugunin认识到Python编程言语用Java完成的重要性,并完成了开端名为JPython的言语。因为要开发aspectj(http://aspectj.org/),JimHugunin不能持续致力于JPython了。所以当Python的开发者预备脱离CNRI时,由其时也在CNRI的Barry Warsaw持续领导开发。

Python和Jython项目组从CNRI脱离后,在Sourceforge上转变为一种更敞开的言语模型。在此期间,一个对Jython(JPython)做了首要奉献的人FinnBock领导了Jython项目小组。正是因为FinnBock所做的出色奉献使Jython现在成为一个如此有价值的东西。相似Jython这样的敞开源代码项目与开发和保护它们的人相同出色,从这个含义上说Jython因为有FinnBack的奉献和辅导而很走运。其他一个对Jython做了***有价值奉献的人是SamuelePedroni。Samuele的奉献首要在Jython的类装载、导入机制等等。Finn和Samuele现在是Jython的两个首要开发者。

为什么需求Jython?

Jython因为承继了Java和Python二者的特性而显得很共同。本节介绍一下这些特性及其含义。

对Java类的无缝存取

在Java中完成Python能够看到风趣的Java反射API的效果。反射使Jython能无缝地运用任何Java类。Jython从CPython中承继了许多长处,但CPython不像其他专为Python所写的相同,在C和Python之间有一些问题约束了C库函数的运用。在Jython中真实处理了这个问题,使其编程的功率和生产力得到了很大的进步。

因为与Java的无缝集成,Jython能使任何布置了Java运用和结构的公司获益而不需求额定的作业。承受任何一种部分的编程言语,对任何一个公司而言都是不简略的,需求深思熟虑,因为这牵涉到全体结构、服务器和外围的东西。Jython作为Java的一个无缝集成的言语,能够在已存在的Java运用上无缝添加而不需求严重挑选。许多公司都花费了许多资金来树立Java的运用,这使选用CPython、Perl、Ruby、PHP和其他不能透明地集成已有Java完成的高档言语的效益下降,吸引力下降。而Jython有才能对已存在的Java结构进行弥补,且二者能无缝地结合。

功率

核算编程言语的功率是一个很广泛的课题,它要考虑程序员的时刻、整体杂乱性、代码的行数、可用性、可保护性和运转功率。当然许多人不同意赋予这些变量的权重,经常是在不同的情况下侧重有所不同。Jython的运转速度是能够与其他高档言语比较的,但速度并不是高档言语的方针和特色。差异在于当加快一个需求的运用时,将Jython代码翻译成Java更有用,这是因为Jython与Java的无缝集成性。其他对一切有用的Jaya类的直接拜访添加了改善已存在的类的可能性。

动态类型

在Jython中你不用像在Java中那样声明类型,因为类型是在运转时决议的。Jython的列表和映射类型是高档的多态的Java类的实例。多态意味着目标能对不同的数据类型作业。例如Jython的list类型能够是一个数字的序列、字符串的序列、字符的序列或它们的组合。动态和多态性的列是对编程的极大的奉献,从许多已抛弃显式的静态类型界说的高档言语中可看出它削减了代码的行数,下降了杂乱性,进步了程序的功率。

内省和动态履行

Jython有一些答应便利的目标内省和代码的动态履行的内部函数。内省是发现一个目标信息的才能,而动态履行是履行在运转时发生的代码的才能。该功用很大程度上削减了代码的行数并添加了程序的可靠性,使其愈加便利保护。这也能使数据和程序结构或逻辑更好的集成而不影响重用性,因为一切的东西都是在运转时决议的。

***类函数和函数编程

Jython与Python相同有***类函数。***类函数是指能像变量相同的可调用的目标。***类函数在对事情处理和其他情况下有含义,这导致添加了Java内部类的功用。尽管Java的内部类与***类函数相似,但它在便利性与灵敏性方面有很大的缺乏,这是因为Jython中的***类函数削减了Jython中的语法开支。

Jython也包括了一切函数编程所需求的东西。这意味着强制的面向目标的函数编程在Jython中得到支撑。这明显在教学上很有含义,它使Jython程序员能挑选最适合于特定问题的编程言语而不是由言语强加。函数化的东西如列表包括、lambda表单、map、filter和reduce也对削减代码的行数、下降杂乱性和姓名重绑定数(姓名重绑定有很大副效果)起到很大的效果。

学习周期短

任何Java程序员在数日内就能了解Jython。因为有许多内容,关键在于细节的学习,但仅仅用几天的时刻就能具有Jython的快速开发功用确实是很有价值的。关于那些从事测验和技术支撑的小组一般并没有许多时刻去学习杂乱的Java代码,但经过对Jython的学习能在开支很少的情况下很快进步公司的技术水平和功率。

写一次,处处可用

因为Jython是用Java编写的且因为其可编译成Java字节码,因而Jython也具有Java的“写一次,处处可用”的特色。Jython能运转在任何可兼容的Java1.1‘或更高的Java虚拟机(JVM)版别的平台上。其他你可将Jython运用编译成自足的字节码,它能运转在任何兼容的JVM上。在Linux上编译的运用能运转在有兼容JVM的任何其他平台上。

Java安全性

Java的安全性是特其他并且越来越重要。从沙箱到信号,Jython有才能运用Java的特其他安全结构。

代码明晰性

代码的明晰性是Python***的长处,当然也是Jython***的长处。不用要的标点和行都防止了。Jython代码在可读性和明晰性方面近似于自然言语。这起源于Python对代码块和句子的简略描绘的许诺。缩排符号代码块,换行符符号新的句子。

【修改引荐】

  1. Jython的装置以及运用JDBC驱动程序衔接DB2
  2. 用于衔接多个数据库的Jython装置
  3. JDBC事务处理机制探秘
  4. 运用JDBC的五个精华功用
  5. 详解JDBC与Hibernate差异
转载请说明出处
知优网 » 略谈Jython言语:什么是Jython?(jython使用)

发表评论

您需要后才能发表评论