Java
Leâ
Quang Vaên
Ñeà caäp
ñeán Internet maø khoâng noùi veà
Java laø moät söï thieáu soùt lôùn.
Java laø ngoân ngöõ ñieän toaùn
môùi troøn 900 ngaøy nhöng taùc
duïng cuûa noù trong tin hoïc, ñaëc
bieät laø trong Internet, raát quan troïng. Moät
trong nhöõng öu ñieåm cuûa ngoân
ngöõ ñieän toaùn naøy laø
vieát moät (laàn) nhöng duøng nhieàu
(laàn vaø cho nhieàu maùy khaùc nhau).
Chính vì tính chaát ña naêng vaø
ña daïng naøy maø ngöôøi duøng
ñaõ gaëp khoù khaên khi tìm hieåu
veà Java. Nhöõng töø nhö Java, JavaScript,
Java Bean, Virtual Machine, v.v. . . ñaõ khieán baïn
ñoïc bôû ngôõ vaø khoâng
bieát seõ baét ñaàu töø
ñaâu. Baøi naøy seõ höôùng
daãn caùc baïn töø caên baûn
do ñoù khoâng caàn coù kieán thöùc
naøo ñeå ñoïc vaø hieåu noäi
dung .
Nhöõng
con soá veà Java
-
Java laø ngoân ngöõ
ñieän toaùn chæ vöøa ñuùng
900 ngaøy nhöng taùc duïng cuûa noù
trong tin hoïc gaáp 5 laàn ngoân ngöõ
C++ ñaõ co,ù sau hôn 10 naêm.
-
Theo cô quan nghieân cöùu
Zona, treân theá giôùi hieän nay coù
treân 900.000 thaûo chöông vieân (programmer)
xöû duïng thöôøng xuyeân Java,
so vôùi 100.000 ngaøn thaûo chöông
vieân xöû duïng C++ sau hôn 10 naêm
(naêm 1993). IBM xöû duïng hôn 2000 chuyeân
vieân tröïc tieáp lieân heä ñeán
ngoân ngöõ naøy; trong khi coâng ty coá
vaán kyõ thuaät Andersen phaûi duøng hôn
1000 chuyeân vieân veà Java môùi giaûi
quyeát ñöôïc nhöõng yeâu
caàu cuûa khaùch haøng.
-
Java khoâng nhöõng
laø ngoân ngöõ ñieän toùan
cho chöông trình aùp duïng (application software)
maø coøn ñeå thöïc hieän nhöõng
chöông trình nhoû (applet) ñaëc bieät
xöû duïng treân Internet vaø Intranet. Hieän
ñaõ coù nhieàu chöông trình
cho heä ñieàu haønh (operation software) hoaøn
toaøn thöïc hieän baèng Java.
-
Rockwell International ñaõ
trình baøy tröôùc coâng chuùng
chip ñieän töû ñaàu tieân ñeå
duøng cho ngoân ngöõ Java, tröôùc
caû coâng ty Sun (coâng ty phaùt minh ngoân
ngöõ Java) döï ñònh saûn xuaát
chip veà Java vaøo naêm 1998. Theo Rockwell, chip naøy
chæ tieâu duøng 2% naêng löôïng
maø caùc chip khaùc caàn coù. ÖÙng
duïng thöïc tieãn cuûa chip naøy laø
ñieän thoaïi caàm tay, pager, Internet-TV vaø
maùy ñieän toaùn xaùch tay. Sun Microsystems
ñaõ thöïc hieän Java Web Server, moät
chöông trình ñieàu haønh phuïc
vuï cho maïng hoaøn toaøn vieát baèng
ngoân ngöõ Java.
-
Môùi ñaây
Java ñaõ laø ñeà taøi tranh luaän
tröôùc toøa giöõa Sun vaø Microsoft
(coâng ty mua baûn quyeàn xöû duïng
ngoân ngöõ ñieän toaùn Java). Sun
toá caùo Microsoft khoâng theo ñuùng
yeâu caàu veà quyeàn xöû duïng
ngoân ngöõ Java. Corel laø moät coâng
ty duïng lieäu lôùn nhaát Canada ñaõ
chuû tröông duøng Java cho taát caû
caùc aán baûn môùi hay caùc saûn
phaåm saép thöïc hieän. Gaàn ñaây
giôùi tin hoïc ñaõ khaù söõng
soát khi hay tin Corel xeùt laïi chính saùch
naøy.
-
Sun Microsystems ñaõ
thöïc hieän chip coù khaû naêng hoaït
ñoäng hoaøn toaøn vôùi Java. Coâng
ty QNX ñaõ mua baûn quyeàn xöû duïng
ngöõ Java ñeå thöïc hieän chöông
trình Photon cho browser ñaëc bieät, côû
1.2 Mbyte, coù khaû naêng khoâng thua keùm
Navigator vaø Internet Explorer .
Nhöõng
ñaëc tính caên baûn cuûa Java
Java ñöôïc
öa chuoäng bôûi nhieàu thaûo chöông
vieân, ñöôïc xöû duïng cho
nhieàu laûnh vöïc vaø ñaëc bieät
ñöôïc nhoùm saùu coâng ty uûng
hoä Java (Sun, Netscape, Intel, IBM, Lotus, JavaSoft) coâng
boá nhöõng keá hoaïch lôùn
xöû duïng ngoân ngöõ naøy, ñaõ
phaàn naøo chöùng minh Java coù raát
nhieàu öu ñieåm.
-
Danh xöng Java khoâng coù
moät yù nghóa kyõ thuaät naøo. Caùch
ñaây ba naêm, trong giai ñoaïn hình
thaønh, ngoân ngöõ naøy ñöôïc
ñaët teân laø Oak. Nhöng danh xöng Oak
ñaõ ñöôïc caàu chöùng
do ñoù Sun phaûi tìm moät teân khaùc.
Nhaân moät laàn nghæ giaûi lao, chuyeân
vieân cuûa nhoùm ñaõ lieân keát
caø pheâ Java vôùi ngoân ngöõ
ñang hình haønh vaø töø ñoù
choïn Java laøm teân cho ngoân ngöõ
naøy. Java do James Gosling phaùt minh; sau naøy coù
theâm Guy Steele vaø Bill Joy "tieáp tay" ñeå
trieãn khai.
-
Java coù nhöõng
tính chaát gaàn vôùi ngoân ngöõ
ñieän toaùn C++ vaø Smalltalk. Veà
nguyeân taéc caên baûn Java "thaân caän"
vôùi Smalltalk, nhöng veà ngöõ phaùp
Java gioáng C++. Trong giôùi ñieän
toaùn Smalltalk, ñöôïc bieát nhieàu
(94-96) vì tính chaát ña naêng nhöng
ñaõ khoâng ñöôïc phoå
thoâng trong ñaïi chuùng. C++ ñöôïc
nhieàu ngöôøi bieát ñeán
trong 10 naêm qua vaø ñaõ laø ngoân
ngöõ cho nhieàu chöông trình ñieàu
haønh vaø aùp duïng quan troïng. Nhöng
tình hình naøy ñaõ thay ñoåi
nhieàu keå töø khi coù Java. Java seõ
laø ngoân ngöõ öa chuoäng nhieàu
nhaát vaø seõ thoáng trò thò
tröôøng.
-
Theá
naøo laø dieãn dòch (interpret) vaø
theá naøo laø bieân dòch (compile)?
Thoâng thöôøng ñoái vôùi
moät ngoân ngöõ ñieän toaùn,
ngöôøi xöû duïng chæ phaûi
duøng dieãn dòch hay bieân dòch. Vôùi
Java caùc baïn seõ ñöôïc nghe
ñeán caû hai töø treân. Môùi
nghe qua caùc baïn seõ cho laø maâu thuaãn,
nhöng xeùt kyõ veà kyõ thuaät, vaán
ñeà seõ trôû thaønh deã
hieåu. Trong giai ñoaïn trieãn khai, maõ
soá cuûa Java ñöôïc bieân dòch
bôûi compiler ñeå taïo thaønh maõ
soá coù teân laø byte-code. Maõ soá
byte-code ñoäc laäp vôùi moïi heä
thoáng ñieàu haønh cuõng nhö moïi
heä thoáng maùy ñieän toaùn, coù
theå ñöôïc gôûi ñi trong
lieân maïng cuõng nhö qua Internet. Khi byte-code
ñeán maùy ñieän toaùn (IBM, Apple,
v. v...) maõ soá naøy seõ ñöôïc
dieãn dòch bôûi interpreter ñeå
bieán thaønh maõ soá thích hôïp
vôùi duïng lieäu vaø nhu lieäu cuûa
ngöôøi xöû duïng. Trong baát cöù
maùy ñieän toaùn naøo coù khaû
naêng nhaän ñöôïc byte-code ñeàu
phaûi coù moät chöông trình ñieän
toaùn xöû söï nhö moät duïng
lieäu aûo coù teân laø maùy (ñieän
toaùn) aûo (Virtual Machine). Ñaây laø
öu ñieåm quan troïng nhaát cuûa Java.
Baát cöù chöông trình ñoïc
(browser) naøo hoå trôï Java ñeàu
coù khaû naêng dieån dòch byte-code vaø
browser naøy ñaõ thöïc söï laøm
nhieäm vuï cuûa moät interpreter. Nhôø
ñoù maø chöông trình ñoïc
coù theå ñoïc ñöôïc vaên
baûn vaø dieån dòch ñöôïc
Applet (coù Java) "loàng" (embedded) beân trong maû
soá HTML.
-
Raát khoù ñeå
keát luaän laø Internet giuùp Java trôû
thaønh phoå thoâng trong ñaïi chuùng
hay Java ñaõ giuùp cho Internet "thoaùt xaùc"
töø tính chaát "tænh" (passive) sang khaû
naêng "ñoäng" (active) ñeå hoå trôï
cho ña phöông tieän (multimedia). Ngay töø
luùc ñaàu giôùi traùch nhieäm
taïi Sun chuû tröông thöïc hieän Java
cho gia duïng ñieän töû nhö truyeàn
hình, microwave, ñieän thoaïi caàm tay,
v.v. . .. Nhöng sau khi thaát baïi trong moät cuoäc
ñaáu thaàu cung caáp nhu lieäu cho coâng
ty truyeàn thoâng vaø nhaân luùc Internet
ñang boäc phaùt maø nhoùm chuyeân
vieân taïi Sun ñaõ coù yù kieán
bieán noù thaønh ngoân ngöõ ñieän
toaùn phuïc vuï cho Internet vaø lieân maïng
noùi chung.
-
Moät öu ñieåm
khaùc cuûa Java laø ngoân ngöõ naøy
hoå trôï multi-threaded programming. Theá naøo
laø multi-threaded programming? Ñaïi cöông
khaû naêng naøy giuùp cho maùy ñieän
toaùn laøm ñöôïc nhieàu vieäc
cuøng luùc. UNIX, Windows NT vaø Windows 95 ñeàu
coù khaû naêng naøy. Kyõ thuaät naøy
raát khoù thöïc hieän vôùi caùc
ngoân ngöõ ñieän toaùn khaùc
vì phaûi thaûo chöông theá naøo
ñeå CPU ñieàu haønh nhieàu vieäc
cuøng luùc maø khoâng "vaáp" phaûi
trôû ngaïi.
-
Java raát "thaân thieän"
(friendly). Baïn coù theå thöïc hieän
ñöôïc caùc chöông trình
ñôn giaûn vôùi Java sau vaøi giôø
tìm hieåu ngoân ngöõ ñieän toaùn
naøy. Nhieàu boä phaän vieát saün seõ
giuùp baïn "gaén" chuùng vaøo chöông
trình phuø hôïp vôùi nhu caàu
ñaëc bieät cuûa baïn. Trong vaøi tröôøng
hôïp baïn chæ caàn söûa phaàn
vaên baûn (text) töø Anh ngöõ sang
Vieät ngöõ laø coù ngay "taùc phaåm"
cho chöõ Vieät! Caùc thaûo chöông
vieân duøng Java raát öa thích khaû
naêng "vieát moät laàn nhöng duøng
ñöôïc baát cöù ôû
ñaâu" (Write once, Run anywhere). Thoâng thöôøng
moät chöông trình vieát vôùi
caùc ngoân ngöõ ñieän toaùn
khaùc chæ duøng ñöôïc cho moät
loaïi maùy hay trong moät heä ñieàu
haønh; muoán duøng cho heä hay maùy ñieän
toaùn khaùc baïn phaûi dieån dòch
cho thích nghi vôùi moâi tröôøng
môùi. Vôùi Java, baïn khoâng phaûi
lo laéng gì caû, chæ caàn naïp vaøo
maùy vaø xöû duïng ngay.
-
Java coù khaû naêng
ngaên chaän nhöõng phaù hoaïi heä
thoáng nhôø khaû naêng töï kieåm
soaùt loåi (byte-code verifier). Ñaây laø
moät yeâu caàu quan troïng ñeå ñaûm
baûo an toaøn heä thoáng maùy ñieän
toaùn cuõng nhö an toaøn cho maïng .
Java vaø
ña ngoân ngöõ
Hieän nay Java chöa hoå
trôï 100% ña ngoân ngöõ. Tuy nhieân
trong boä Java 1.1 ñaõ coù nhöõng
caûi tieán nhaèm bieán noù thaønh
ngoân ngöõ ñieän toaùn cho quoác
teá. Tuy nhieân giaûi phaùp naøy raát
giôùi haïn, ñaëc bieät laø chöa
hoå trôï Vieät ngöõ. Moät kyõ
thuaät môùi ñang hình thaønh seõ
giuùp chuùng ta thaûo chöông Java vôùi
Vieät ngöõ. Bitstream môùi ñaây
coù ñeà ra kyõ thuaät JET (Java-based
Extendibled Typography) giuùp thöïc hieän phoâng
chöõ cho applet, chöông trình aùp
duïng cho maùy ñieän toaùn vaø cho
gia duïng tin hoïc. Nhôø coù JET chuùng
ta coù theå duøng Java ñeå taïo ra
nhöõng chöông trình ñieän toùaù
ñeå ngöôøi xöû duïng xem
ñöôïc maø khoâng nhaát thieát
phaûi coù phoâng chöõ duøng bôûi
ngöôøi thöïc hieän. Tuy Bitsteram chöa
phoå bieán JET nhöng döïa treân nhöõng
kinh nghieäm xöû duïng saûn phaåm cuûa
Bitstream cho Vieät ngöõ trong ba naêm qua chuùng
toâi vöõng tin laø JET seõ ñem laïi
nhieàu thích thuù cho chöõ Vieät.
Caùc baïn seõ ñöôïc cung caáp
theâm chi tieát veà ñeà taøi naøy
trong caùc Tin Hoïc saép ñeán .
Nhöõng
bieán chuyeån môùi lieân quan ñeán
Java
Nhaân cuoäc Hoäi thaûo veà Chip ñieän
töû (15/10/1997) Coâng ty Sun vöøa trình
baøy chip ñieän töû ñaàu tieân
duøng Java (MicroJava 701). MicroJava 701 laø chip ñaàu
tieân treân thò tröôøng coù
khaû naêng xöû duïng Java byte-code. Coâng
ty naøy cuõng vöøa phoå bieán Java
Studio moät nhu lieäu nhaèm daûn dò hoùa
vieäc thöïc hieän caùc applet vaø chöông
trình Java vôùi JavaBeans .
Coâng ty Encanto Networks ñaõ mua baûn quyeàn
veà Java cuûa Sun Microsystems ñeå thöïc
hieän Internet Box, nhö e-go, e-commerce. Ñaây laø
saûn phaåm raát tieän lôïi cho coâng
ty muoán thöïc hieän thöông vuï treân
Internet vì noù coù ñaày ñuû
nhu lieäu vaø duïng lieäu caàn thieát
töø lieân laïc khaùch haøng, thu nhaän
ñôn ñaët haøng, hoå trôï
kyõ thuaät, nhaän tieàn, an toaøn thöông
vuï, v.v. .
Coâng ty Hummingbird Communication
ñaõ duøng Java ñeå thöïc hieän
viewer hay reader cho taäp tin thuoäc nhoùm DigitalPaper,
nhôø ñoù kích thöôùc
cuûa viewer raát nhoû so vôùi tröôùc
ñaây.
Coâng ty Sun Microsystems
vöøa phoå bieán Java Kit aán baûn
1.2
Java seõ coøn laø
ñeà taøi "noùng" trong thôøi gian
saép ñeán vaø nhieàu saûn phaåm
môùi thöïc hieän vôùi ngoân
ngöõ Java seõ ñöôïc "trình
laøng".
Hình beân traùi
trình baøy chi tieát veà : Java Interpreter
(chaäm) so vôùi Just-in-time Compiler (nhanh hôn)
vaø Java Compiler (nhanh nhaát). Sau cuøng laø
Java Chip coù khaû naêng nhanh nhö Java Compiler