Ĝavo (angle,
Java) estas komputika lingvo inventita de
[Sun Microsystems]
? por fari TTT-paĝojn pli intelligentaj: anstataŭ la kutima parado de tekstoj, bildoj, sonoj kaj filmo
? (k.e. fiksita informo), Ĝavo ebligas vin aldoni
apletojn (angle:
applets) aŭ komputilan
intelligentecon al TTT-paĝo (per la
HTML <APPLET>).
Kiel C++, Ĝavo estas objektema? ido de C. Sed malsimile al C++, ĝi estas tradukita en
duonkodo? (angle: bytecode), kiu poste estas interpretita de TTT-legilo kiu regas Ĝavon. La duonkodo estas
sendependa de iu maŝino aŭ operaciumo?: anstataŭ, la TTT-legilo devas
interpreti la kodon por sia sistemo. La legilo, alivorte, ŝajnigas
maŝinon kies maŝinkodo? estas la duonkodo de Ĝavo. Tia maŝino estas
konata kiel la [Ĝava Virtuala Maŝino]?. Kion la legiloj nun ŝajnigas
per programoj hodiaŭ, eble retmaŝinoj efektivigos per silicio
morgaŭ.
En 2000, Microsoft? enkondukis novan lingvon, C#?, por rivali Ĝavon. Ĝi estas ido de C++, kiu penas kuraci la difektaĵojn de Ĝavo.
Plejparte, se vi jam regas la C++, por lerni Ĝavon vi devas
lerni la klasaron de Ĝavo, kiu estas
pli plena ol tio de la C++. Por verki en Ĝavo idiotisme kaj trafe, vi
devas lerni el la ekzemploj de efektivaj programoj, kiel kun iu ajn lingvo
maŝina aŭ homa. Multe de fontkodo ekzistas surrete.
La ĉefaj malsamoj inter la programado de Ĝavo kaj la
C++:
- En teorio?, Ĝavo estas la sama sur ĉiu operaciumo, sed en nuna
praktiko, la malsamo de la grafika interfaco estas sufiĉe
grava. Via apleto povas belaspekti sur Vindozo? sed esti maluzebla sur
Unikso? aŭ Makintoŝo?! La nova klasaro Swing? parte solvis la problemon.
- Malsamo de TTT-legiloj: Ĝavo estas ankoraŭ nematura, tial la
nunaj interpretistoj estas ankoraŭ malneta kaj interpretas
Ĝavon ne tute same. Pro tio, projekto de unu semajno povas daŭri unu
monaton por funkciigi vian programon sub ĉiu legilo kaj eĉ
versio de legilo. Microsoft?, malamikema al Ĝavo kiel ebla
rivalanta platformo, misinterpretas aŭ aliinterpretas Ĝavon.
- Por malebligi virusojn?, Ĝavo malebligas la skribadon al dosiero kaj al absoluta adreso de memoro.
- Ĝavo havas ampleksan klasaron kiel bazo de la lingvo.
- Kiel Lispo kaj Smalltalk?, Ĝavo enhavas rubilo?, do vi ne devas liberigi la memoron de viaj objektoj.
- Ĝavo ne subtenas multoblan heredadon -- klaso heredas sole de unu patra klaso.
Ĉar lernolibroj traktas pri Ĝavo ideala, ne reala, ili kutime
diskutas pri #3-#5 (kiuj sekvas de la difino de la lingvo), sed ne pri
- 1-#2. Post tempo, la graveco de #1 kaj #2 malaperos ĉar interpretistoj
pliboniĝos. La tria malsamo, kvankam kapdolorema, estas tute necesa por
ia ajn surreta programado.
Se vi sole regas je Lispo, C, Pascal?, ktp, vi devos lerni pri [objektema programado]?: aĉetu lernolibron (de Ĝavo, de la C++ aŭ
de objektema programado mem) kun bona enkonduko pri ĝi.
Specoj de Programoj
En Ĝavo, estas kvar ĉefaj specoj de programoj:
- apleto?:
(angle, applet)
kutime apartenas al TTT-paĝo kaj estas rulita de la TTT-legilo.
- servleto?:
(angle, servlet)
kutime apartenas al TTT-ejo? kaj estas rulita de la servilo? (la
komputilo? kiu servas la paĝojn de TTT-ejo). Servletoj ne havas
grafikan interfacon. Servletoj estas la respondo de Ĝavo al
CGI?. CGI kutime estas realigita per la lingvo Perl, kies kodo estas malfacile legi kaj ripari. Servletoj kreas TTT-paĝojn kaj kuketojn? (angle, cookies).
JSP estas realigita per servletoj.
- apliko?:
(angle, application)
sendepende de TTT-paĝo aŭ eĉ de la Interreto?. Rulita de iu ajn
komputilo.
- fabo?:
(angle, bean) programero, kiu provizas specifan funkcion, kiun vi povas aldoni al via programo (apleto, servilo, apliko aŭ eĉ alia fabo) per
bildprogramado? (angle, visual programming). Per bildprogramilo, vi povas vidi la propraĵojn, eventojn, metodojn de
la fabo kaj ĝian interrilaton kun aliaj faboj, kaj ŝanĝi ĉi tiujn
de la fabo.
Unu speco de fabo, kiu estas rulita de servilo kaj ne estas
videbla, estas la EJB?: angla mallongigo por Enterprise
JavaBean, ĝava fabo por entrepreno (t.e., retkomerco?).
Versioj
La ĉefaj diferencoj inter versioj:
Ĝavo 1.0 (majo 1995; 212 klasoj): la baza lingvo
Ĝavo 1.1 (decembro 1996; 504 klasoj):
- nova modelo por eventoj
- internaj klasoj: klasoj difinita interne de alia klaso
- faboj: stilo de kodado kiu ebligas programadon per videblaj unuoj
de kodo
- RMI?: ebligas vokadon de kodon sur aliaj maŝinoj trans la reto
- JDBC?: ebligas demandi al datumbazo per SQL.
- subskriboj enĉifritaj
Ĝavo 1.2 (decembro 1998; 1781 klasoj) -- alinomata Ĝavo 2
- Swing?: nova, pli racia klasaro por la grafika interfaco
- grafika trenado kaj faligado
- Collections: nova, pli racia klasaro por aroj -- listoj, mapoj,
setoj, ktp
Ankaŭ estas revizioj 1.3 (2130 klasoj) kaj 1.4 (2738 klasoj) de Ĝavo, sed ili estas veraj revizioj, revizioj de Ĝavo 2, kaj ne grandaj ŝanĝoj al la lingvo.
Vidu ankaŭ:
/Priparolu