Share to: share facebook share twitter share wa share telegram print page

 

Plataforma Java

La plataforma Java és un grup de programes, relacionats entre ells (plataforma), de Sun Microsystems que permet el desenvolupament i l'execució de programes escrits en llenguatge Java. Aquesta plataforma no és específica de cap processador ni sistema operatiu, més aviat, ho és d'un motor d'execució (anomenat una màquina virtual) o un compilador, amb un conjunt de llibreries estàndards que disposen d'implementacions per diversos maquinaris i sistemes operatius, que tenen l'objectiu que l'execució sigui idèntica sobre qualsevol d'ells.

Hi ha diverses edicions de la plataforma, entre elles:

Des de desembre de 2006 la versió disponible de la Plataforma Java és la 1.6.0 (tal com anomenem la versió per desenvolupadors), o 6 (dita així quan ens referim a la versió en producció). Ambdues són la mateixa versió.

Cadascun dels diversos programes que conformen la Plataforma Java proveeix una part determinada de les seves funcionalitats principals. Per exemple, per un costat hi ha el compilador Java que converteix el codi font Java en bytecode Java (un llenguatge intermedi entre les fonts del programador i el codi màquina executable). El compilador forma part del Java Development Kit. Per un altre costat hi ha l'entorn d'execució de Java (JRE) que generalment ofereix una implementació de la màquina virtual amb un JIT el bytecode a codi nadiu (executable) de la màquina.

Existeix un ampli ventall de llibreries ja precompilades a bytecode de java. També hi ha diverses maneres d'implantar-les, com un applet d'una pàgina web, o un component J2EE. Hi ha bastants més components, alguns dels quals trobarem en edicions específiques de la plataforma, com podem observar al diagrama de la dreta.

Els components essencials de la plataforma són: el compilador de Java, les llibreries i l'entorn d'execució.

La Màquina Virtual de Java

El cor de la Plataforma Java és el mateix concepte de "màquina virtual", que executa programes amb bytecode de Java. El bytecode d'un programa és el mateix, independentment del sistema operatiu o maquinari sobre el que s'executi. El compilador JIT tradueix el bytecode en instruccions de codi nadiu del processador i el desa en la memòria del codi de la màquina durant l'execució. Aquesta traducció és directa, ja que el bytecode és proper al codi màquina, de manera que la part enfarfegosa de traducció està resolta des del moment de la compilació. A l'inici Sun proveïa un intèrpret de bytecode, però això feia que les aplicacions fossin lentes. Des de la versió 1.2 del JRE, proveeix el JIT, que després d'un decalatge de temps, que entendríem com un escalfament, ofereix una execució que tendeix a ser tan ràpida com el codi executable. Tanmateix, aquesta forma de treball depèn de cada implementació del JRE.

Llibreries de classe

La majoria de sistemes operatius ofereixen una gran quantitat de codi reusable ja implementat, per simplificar la feina del programador. Aquest codi acostuma a ser posat a disposició com un conjunt de llibreries carregables dinàmicament que les aplicacions poden carregar en temps d'execució. Donat que la Plataforma Java no depèn de cap sistema operatiu en concret, les aplicacions no poden confiar en les llibreries existents. En lloc d'això, proveeix un conjunt de llibreries de classe estàndard i comprensible, que contenen moltes de les mateixes funcions de codi reusable habitualment trobades als sistemes operatius actuals.

Les classes de les llibreries serveixen tres propòsits a la Plataforma Java. Com altres llibreries de codi estàndard, proveeixen al programador un conjunt de funcionalitats conegudes que realitzen tasques conegudes, com per exemple, el manteniment de llistes d'elements o la realització d'anàlisi gramatical de cadenes de caràcters. A més, les llibreries proveeixen una interfície abstracta a tasques que normalment dependrien fortament del maquinari i sistema operatiu. Tasques com ara l'accés a la xarxa i l'accés a fitxers estan sovint lligades a les capacitats de la plataforma. Les llibreries de Java java.net i java.io implementen el codi natiu internament, llavors proveeix una interfície estàndard perquè les aplicacions java portin a terme aquestes tasques. Finalment, algunes llibreries subjacents, podrien no suportar les funcionalitats que java ofereix. En aquests casos, les llibreries poden emular aquestes funcionalitats fent ús de qualsevol cosa a l'abast, o proveir una forma consistent de comprovar la presència de la funcionalitat en concret.

El 13 de novembre de 2006, Sun va anunciar que hi hauria un llançament de tot el codi Java, sota la llicència GPL, a març de 2007.[1] Seguint aquesta promesa, Sun va portar a terme aquest llançament el 8 de maig de 2007 , excepte algunes parts limitades que Sun havia llicenciat a terceres parts que no volien que el seu codi font tingués llicència de codi obert.[2] L'objectiu de Sun és el de reemplaçar aquestes parts de codi tancat que queden per implementacions alternatives per aconseguir que tota la llibreria de la plataforma sigui oberta.

Hi ha també un projecte en marxa, de la Free Software Foundation per escriure un conjunt lliure de llibreries. S'anomena GNU Classpath.

Llenguatges de programació

La paraula java per ella mateixa, es refereix al llenguatge de programació Java, que fou designat per usar amb la Plataforma Java. Els llenguatges de programació estan típicament a fora de l'àmbit del concepte "plataforma", encara que el llenguatge de programació Java està llistat com a part del cor de la plataforma Java. El llenguatge i el runtime són considerats normalment com una unitat.

Malgrat tot, terceres parts han produït un nombre de compiladors i intèrprets que tenen per objectiu la MVJ. Alguns d'aquests estan fets per llenguatges existents, mentre que d'altres ho estan en vistes a extensions del llenguatge Java. S'hi inclouen:

  • AspectJ Java orientat a aspectes
  • Generic Java (GJ), que fou incorporat pel Java oficial dintre de Java SE 5.0
  • Groovy, llenguatge de scripts
  • BeanShell, llenguatge de scripts amb la mateixa gramàtica de Java
  • Jython, intèrpret de Python que inclou un compilador de Python a Java
  • NetREXX, d'IBM
  • Nice , orientat a objectes
  • Pizza, que afegeix funcionalitats a Java (abandonat)
  • Scala, orientat a patrons i programació elegant.
  • JRuby
  • Sleep, un intèrpret que barreja funcionalitats de Perl i d'Objective-C
  • Rhino, motor de Javascript

Plataformes similars

L'èxit de Java i el seu concepte d'Escriu un cop, executa arreu, ha portat a esforços similars. Un exemple notable és la plataforma Microsoft .NET , apareguda el 2002, que incorpora molts dels aspectes de Java que han tingut èxit. .NET en la seva forma completa (implementació de Microsoft) només és disponible amb totes les seves funcionalitats sobre plataformes Windows, mentre Java és disponible al complet sobre moltes plataformes. .NET va ser construït de zero per donar suport a múltiples llenguatges de programació, mentre la Plataforma Java, es construí per donar suport al llenguatge de programació Java (encara que posteriorment, altres llenguatges van ser desenvolupats sobre la base de la JVM, a partir de llavors).

.NET inclou una implementació de Java anomenada J Sharp (antigament coneguda com a J++) que no és compatible amb l'especificació de Java i la llibreria associada sovint es refereix a la versió antiga del llenguatge, JDK 1.1.

Referències

  1. «Sun Obre les Fonts de la Plataforma Java». Sun Microsystems, 13-11-2006. Arxivat de l'original el 2008-12-19. [Consulta: 13 novembre 2006].
  2. «JDK és aquí!». Sun Microsystems, 08-05-2007. [Consulta: 9 maig 2007].

Vegeu també

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9