CÇn biÕt vÒ
Java
Xem bai viet bang font Unicode
Ng«n ng÷ lËp tr×nh Java lµ mét trong nh÷ng chñ ®Ò ®îc nãi ®Õn nhiÒu nhÊt trong thÕ giíi hiÖn nay, vµ logo cña Java - mét t¸ch cµ phª bèc khãi, cïng c¸c applet Java, trµn ngËp kh¾p n¬i trªn World Wide Web. VËy, hiÖn tîng Java cã g× ®Æc biÖt, vµ t¹i sao nã l¹i cã thÓ lµm thay ®æi bé mÆt cña thÕ giíi ®iÖn to¸n?
Mét thùc tÕ ®îc c«ng nhËn lµ Java, ng«n ng÷ lËp tr×nh cña Sun Microsystems, cã mét søc m¹nh ®Çy Ên tîng. ChØ míi xuÊt hiÖn hai n¨m tríc, Java ®· ®îc ngµnh c«ng nghiÖp nµy chÊp nhËn víi tèc ®é cha tõng cã, kÓ tõ khi hÖ ®iÒu hµnh Windows bïng næ.
Uy lùc cña Java ®· biÕn Sun Microsystems (tõ sau ®©y gäi t¾t lµ Sun), ngêi khai sinh ra nã, tõ mét nhµ cung cÊp c¸c c«ng nghÖ m¸y server ®¾t tiÒn thµnh c¸i tªn quen thuéc trong tõng nhµ vµ lµ ®èi thñ nÆng ký trong dßng ch¶y cña c«ng nghÖ tÝnh to¸n.
Sun m« t¶ Java nh lµ mét ng«n ng÷ lËp tr×nh ®¬n gi¶n, híng ®èi tîng, hiÓu - m¹ng, cã thÓ biªn dÞch, m¹nh, an toµn, ®éc lËp víi cÊu tróc, dÔ di chuyÓn, hiÖu suÊt cao, ®a luång, vµ cã tÝnh ®éng. Nh÷ng ®iÒu ®ã kh«ng dÔ gi¶i thÝch. VËy th×, cô thÓ Java lµm ®îc g×?
VÒ c¬ b¶n, nã gióp c¸c nhµ ph¸t triÓn phÇn mÒm thùc hiÖn ®îc hai viÖc:
Thø nhÊt, hä cã thÓ x©y dùng nªn c¸c applet Java, ®ã lµ nh÷ng tr×nh øng dông mini ®îc ph©n phèi qua Internet vµ ch¹y trong mét tr×nh duyÖt Web hiÓu Java. C¸c applet Java t¨ng cêng cho trang Web kh¶ n¨ng t¬ng t¸c phong phó h¬n vµ tÝnh ®a ph¬ng tiÖn tèt h¬n so víi khi dïng HTML b×nh thêng.
Thø hai, c¸c nhµ ph¸t triÓn phÇn mÒm cã thÓ x©y dùng c¸c tr×nh øng dông hoµn chØnh b»ng Java, nh bé xö lý v¨n b¶n, b¶ng tÝnh, hoÆc bé ch¬ng tr×nh v¨n phßng tæng hîp (nh Corel ®ang lµm ch¼ng h¹n). ¦u ®iÓm cña c¸ch lµm nµy lµ c¸c tr×nh øng dông chØ cÇn viÕt mét lÇn mµ ch¹y ®îc trªn hÇu hÕt mäi lo¹i m¸y tÝnh.
Sù thµnh c«ng cña Java trong viÖc ph¸t ®éng kh¶ n¨ng s¸ng t¹o cña c¶ ngêi dïng céng t¸c lÉn c¸ thÓ lµ ë chç hä sÏ cµng cã Ên tîng h¬n khi so s¸nh mét thùc tÕ r»ng Java ®¬n thuÇn lµ mét ng«n ng÷ lËp tr×nh, trong khi c¸c c«ng nghÖ vµ s¶n phÈm kh¸c th× mçi c¸i cßn ph¶i kÕt hîp víi nhiÒu tÝnh n¨ng huyÔn hoÆc kh¸c.
Tuy nhiªn, Java lµ mét ng«n ng÷ lËp tr×nh cã nh÷ng kh¸c biÖt. §Ó thùc sù hiÓu ®îc søc m¹nh cña Java vµ c¸c nguyªn nh©n lµm cho nã nhanh chãng ®îc a chuéng, b¹n ph¶i xem xÐt hoµn c¶nh khai sinh ra nã vµ bÇu kh«ng khÝ mµ nã ®· sèng ®Ó n¾m b¾t lÊy kh¶ n¨ng s¸ng t¹o cña nÒn c«ng nghiÖp m¸y tÝnh.
N¨m 1990, CEO cña Sun lµ Scott McNealy ®îc nh©n viªn Patrick Naughton b¸o tin r»ng anh ta ®îc phÐp nghØ viÖc ®Ó lµm cho Next Software (c«ng ty hiÖn ®· ®îc Apple Computer mua l¹i). Thay v× tr¶ lêi nh thêng lÖ, McNealy ®· yªu cÇu Naughton ghi ra tÊt c¶ nh÷ng ®iÒu mµ anh ta cho lµ sai lÇm cña Sun vµ ®Ò nghÞ nh÷ng biÖn ph¸p gi¶i quyÕt "nh c¬ng vÞ cña ngêi cã thÈm quyÒn cao nhÊt".
B¶ng liÖt kª cña Naughton ®· ®¸nh tróng nh÷ng ®iÓm yÕu nhÊt cña Sun, vµ béc lé c¸c vÊn ®Ò mµ nhiÒu ngêi kh¸c ®· nhËn thÊy tõ l©u - kiÕn tróc phÇn mÒm míi qu¸ tÇm, chØ bËn t©m vµo mét m¶nh nhá cña thÞ trêng, cïng hµng lo¹t "sai lÇm" kh¸c. Tríc ngµy Naughton chuyÓn sang Next, Sun ®· thuËn theo nh÷ng ý kiÕn bÊt ®ång cña anh ta vµ lËp nªn nhãm "Green" gåm s¸u nhµ biªn so¹n phÇn mÒm hµng ®Çu - nhiÖm vô cña hä lµ "th©m nhËp thùc tÕ" vµ lªn ®êng víi c«ng nghÖ phÇn mÒm cã s½n cho thÞ trêng tiªu thô.
ChuyÖn kÓ r»ng nhãm "Green" ®· tr÷ Coca Cola vµ s«c«la (thùc phÈm cña nh÷ng nhµ biªn so¹n phÇn mÒm) ®Çy tñ l¹nh råi b¾t ®Çu th¶o tung c¸c lo¹i thiÕt bÞ ®iÖn tö, tõ hép ®iÒu khiÓn tõ xa vµ Game Boys cña Nintendo ®Õn TV vµ ®Çu ch¹y b»ng video. Môc ®Ých cña nhãm lµ t×m c¸ch cho c¸c thiÕt bÞ ®iÖn tö "nãi" víi nhau ngay c¶ trong trêng hîp chóng sö dông c¸c chip kh¸c nhau.
PhÇn mÒm ®Çu tiªn, tiÒn th©n cña Java , ®îc ®a ra víi tªn gäi kh«ng mÊy truyÒn c¶m: Oak. §©y lµ mét ng«n ng÷ híng ®èi tîng h¹ cÊp, cã ®«i chót gÇn víi ng«n ng÷ lËp tr×nh C++. Mét thiÕt bÞ ®iÒu khiÓn tõ xa cã giao diÖn ngêi dïng kiÓu hiÓn thÞ vµ mét nh©n vËt ho¹t h×nh gäi lµ Duke (nay trë thµnh vËt biÓu tîng cña Java trªn WWW), c¶ hai ®Òu lËp tr×nh theo Oak, ®îc nhãm x©y dùng lªn vµ giíi thiÖu. Sun hµi lßng víi kÕt qu¶ nµy, vµ ®a "Green" lªn thµnh mét c«ng ty riªng lÊy tªn lµ First Person.
Cuéc tÊn c«ng më ®Çu cña First Person vµo lÜnh vùc th¬ng m¹i ®· hoµn toµn thÊt b¹i. Sau nh÷ng cuéc ®µm ph¸n kÐo dµi, hîp ®ång ®Ó l¾p r¸p c¸c hép ®Æt trªn TV cho h·ng Time-Warner ®· thÊt b¹i ë phót cuèi cïng. Phi vô liªn quan ®Õn viÖc chuyÓn ®æi bµn ®iÒu khiÓn trß ch¬i video cao cÊp cña h·ng 3DO thµnh hép ®Æt trªn m¸y còng gÆp cïng ®Þnh mÖnh nh vËy.
Cho m·i ®Õn gÇn cuèi 1993, khi Marc Andreessen, nh©n viªn cña Netscape, viÕt ra Mosaic, tr×nh duyÖt Web ®Çu tiªn, th× Oak míi thÓ hiÖn chÝnh m×nh. First Person cho r»ng Oak sÏ lµ mét ng«n ng÷ hoµn chØnh ®Ó x©y dùng c¸c néi dung ®a ph¬ng tiÖn trùc tuyÕn. Naughton ®· r¸p nèi l¹i bé khung cña tr×nh duyÖt Web ®Çu tiªn hoµn toµn ®îc viÕt theo Oak. §ã lµ sù ra ®êi cña WebRunner - sau nµy trë thµnh HotJava.
PhÇn c¬ b¶n trong híng chiÕn lîc míi ®èi víi Oak lµ ban ph¸t tù do s¶n phÈm nµy trªn Internet. Oak ®îc ®Æt tªn l¹i lµ Java vµo n¨m 1995 vµ ®· ®îc ®a lªn Internet. Java thùc sù thu hót ®îc sù quan t©m cña céng ®ång trùc tuyÕn khi Marc Andreessen m« t¶ nã nh lµ phÇn "l¹nh" (cool piece) cña c«ng nghÖ, mét bé phËn cña Netscape Navigator 2.0, vµ lµm cho nã g©y ®îc sù chó ý cña hµng triÖu ngêi dïng.
§ã lµ lÞch sö mµ còng cã thÓ chØ lµ hoang ®êng, nhng mét c¸ch chÝnh x¸c Java lµ g×? T¹i sao nã l¹i lµm cho Web sèng ®éng, kÝch thÝch m¹nh mÏ c¸c nhµ lËp tr×nh C++ b¶o thñ tù nguyÖn rêi bá lo¹i ng«n ng÷ khã næi tiÕng ®ã, ch©m mét ngßi löa vµo c¸c Intranet céng t¸c, vµ lµm thay ®æi hoµn toµn bé mÆt thÕ giíi Internet? C¸ch tr¶ lêi tèt nhÊt cho nh÷ng c©u hái nµy lµ mæ xÎ tõng tõ trong ®Þnh nghÜa cña Sun ®Ó hiÓu thÊu ®¸o toµn bé hiÖn tîng Java.
§¬n gi¶n (simple). Java ®¬n gi¶n v×, mÆc dï dùa trªn c¬ së
C++ nhng Sun ®· cÈn thËn lîc bá c¸c tÝnh n¨ng khã nhÊt cña
C++ ®Ó lµm cho ng«n ng÷ nµy dÔ sö dông h¬n. Lµ mét ng«n ng÷
lËp tr×nh hoµn toµn míi, nã buéc ph¶i cã d¸ng vÎ vµ sù c¶m
nhËn t¬ng tù nh c¸c ng«n ng÷ phæ biÕn hiÖn hµnh ®ång thêi
®ßi hái kho¶ng thêi gian huÊn luyÖn l¹i tèi thiÓu vµ th©n thiÖn
h¬n víi ngêi dïng.
Do ®¬n gi¶n, ng«n ng÷ nµy còng rÊt nhá - nªn nhí r»ng tõ ®Çu
nã ®· ®îc x©y dùng ®Ó dïng cho ®iÖn tö d©n dông nh ®Çu
ch¹y b»ng video vµ hép ®iÒu khiÓn tõ xa, nh÷ng thiÕt bÞ cã
kh«ng gian lu tr÷ rÊt h¹n chÕ.
Híng ®èi tîng (Object - oriented). C¸c ng«n ng÷ lËp tr×nh
híng ®èi tîng cã hµng lo¹t m« ®un (®èi tîng) cã thÓ thay
®æi vµ ®îc x¸c ®Þnh tríc mµ lËp th×nh viªn cã thÓ gäi ra
®Ó thùc hiÖn nh÷ng nhiÖm vô cô thÓ. Trong Java, c¸c m« ®un nµy
®îc gäi lµ c¸c líp (class) vµ chóng ®îc gi÷ trong th viÖn
líp, t¹o nªn c¬ së cña Java Development Kit (Bé c«ng cô ph¸t
triÓn Java).
Mét trong nh÷ng u ®iÓm cña viÖc lËp tr×nh híng ®èi tîng
lµ biªn so¹n kh¸ nhanh. Còng t¬ng tù nh ®å ch¬i trÎ con, s¶n
phÈm cña lËp tr×nh kh«ng híng ®èi tîng lµ mét tßa l©u ®µi
lµm b»ng nhùa liÒn. VÒ sau nÕu con b¹n muèn cã mét chiÕc « t«
nhùa, th× hoÆc b¹n ph¶i kiÕm mét chiÕc xe nhùa (cã nghÜa lµ
ph¶i mua mét ®å ch¬i míi), hoÆc nÊu ch¶y toµ l©u ®µi ®ã råi
lÊy nhùa cña nã mµ ®óc thµnh chiÕc « t«.
Nhng trong lÜnh vùc híng ®èi tîng, con b¹n cã nh÷ng khèi
Lego (lo¹i ®å ch¬i gåm nhiÒu khèi ®Ó trÎ con x©y dùng thµnh
nhiÒu ®å vËt kh¸c nhau), vµ dïng nh÷ng khèi ®ã ®Ó x©y thµnh
mét toµ l©u ®µi, chÕ t¹o mét chiÕc « t« hoÆc bÊt kú c¸i g×
mµ nã muèn. Nãi c¸ch kh¸c, gièng nh c¸c khèi Lego, c¸c líp cña
Java ®Òu cã thÓ sö dông l¹i nhiÒu lÇn.
HiÓu m¹ng (network-savvy). Java ®îc lËp ra ®Ó ho¹t ®éng trªn m¹ng vµ cã c¸c thñ tôc ®Ó cã thÓ qu¶n lý c¸c giao thøc m¹ng nh TCP/IP, FTP vµ HTTP. Nãi c¸ch kh¸c, Java ®îc x©y dùng ®Ó thùc hiÖn hoµn toµn thÝch hîp trªn Internet. Ch¬ng tr×nh Java thËm chÝ cã thÓ x©m nhËp vµo c¸c ®èi thîng kh¸c th«ng qua Internet b»ng c¸ch sö dông URL (®Þa chØ Web) ®Ó ®Þnh vÞ chóng.
M¹nh (robust). Kh¶ n¨ng m¹nh ph¶i phï hîp víi thiÕt kÕ cña ng«n ng÷, vµ híng nã vµo viÖc kh¾c phôc nh÷ng h háng bé nhí vµ ®¶m b¶o tÝnh to¸n vÑn d÷ liÖu. VÝ dô, Java cã tÝnh n¨ng "automatic garbage collection" (tù ®éng thu gom r¸c) - cã nghÜa lµ bé nhí ®îc gi¶i phãng mét c¸ch tù ®éng - nªn lËp tr×nh viªn kh«ng ph¶i bËn t©m vÒ viÖc qu¶n lý bé nhí vµ nhê ®ã Ýt cã xu híng lµm nh÷ng viÖc g©y háng bé nhí.
An toµn (secure). Kh¶ n¨ng híng m¹ng cña Java tù ®éng ®a ra yªu cÇu vÒ an toµn. §Æc tÝnh an toµn cña ng«n ng÷ lËp tr×nh nµy b¾t nguån tõ viÖc nã cã nh÷ng phÇn h¹n chÕ ®îc cµi s½n nh»m ®Ò phßng c¸c ch¬ng tr×nh Java thùc hiÖn nh÷ng chøc n¨ng nh ghi vµo æ cøng cña ngêi dïng hay cho phÐp virus tõ m¹ng hoÆc tõ m«i trêng ph©n t¸n th©m nhËp vµo.
§éc lËp víi cÊu tróc (architecture neutral). §©y lµ thuéc tÝnh
®Æc s¾c nhÊt cña Java. Cã nghÜa lµ Java kh«ng phô thuéc vµo hÖ
m¸y (platform - lo¹i m¸y, H§H) - c¸c tr×nh øng dông ®îc biªn
so¹n b»ng Java cã thÓ dïng ®îc trªn hÇu nh mäi dßng m¸y
tÝnh, tõ PC Windows hoÆc OS/2, cho ®Õn Macintosh cña Apple hoÆc c¸c
tr¹m lµm viÖc Unix.
§Ó ®¸nh gi¸ hÕt ý nghÜa cña tÝnh ®éc lËp víi hÖ m¸y nµy,
h·y tëng tîng b¹n lµ mét nhµ biªn so¹n phÇn mÒm, b¹n míi
®a ra mét tr×nh duyÖt Web dïng cho Windows 3.1. Do yªu cÇu, b¹n
ph¶i ph¸t triÓn mét s¶n phÈm gièng nh vËy nhng dµnh cho ngêi
sö dông c¸c hÖ ®iÒu hµnh kh¸c nh Mac OS, Unix hay c¸c version
kh¸c cña Windows (vÝ dô 95 vµ NT). §Ó tiÕp cËn nh÷ng thÞ trêng
®ã, b¹n ph¶i söa l¹i ch¬ng tr×nh trªn c¬ së hÖ míi nÕu
kh«ng muèn nãi lµ b¹n cã thÓ so¹n th¶o l¹i toµn bé. Nhng víi
Java b¶n chØ ph¶i biªn so¹n mét lÇn vµ nã sÏ ho¹t ®éng trªn
mäi hÖ thèng, mäi hÖ ®iÒu hµnh, miÔn lµ b¹n cã mét tr×nh biªn
dÞch Java ho¹t ®éng tronglóc ch¹y.
Di ®éng (portable). §èi víi mét ph¹m vi réng, Java lµ lo¹i cã thÓ di chuyÓn nhê kh¶ n¨ng ®éc lËp víi hÖ m¸y. §ång thêi, c¸c lo¹i d÷ liÖu, giao diÖn, còng nh d¸ng vÎ vµ c¶m nhËn cña Java ®Òu gièng nhau trªn mäi hÖ m¸y. HÖ thèng c¸c thµnh phÇn cña java còng cã tÝnh di ®éng cao - nã ®îc viÕt b»ng Java.
Cã thÓ th«ng dÞch (interpreted). TÝnh chÊt cã thÓ th«ng dÞch
cña Java cã liªn quan trùc tiÕp víi tÝnh kh«ng phô thuéc vµo hÖ
m¸y. Ch¬ng tr×nh viÕt b»ng C++ ®îc dÞch thµnh m· m¸y, thùc
chÊt ng«n nh÷ ®Æc trng riªng cho dßng bé xö lý. Cho nªn nÕu
b¹n dÞch ch¬ng tr×nh trªn mét m¸y Pentium, nã sÏ kh«ng ch¹y
®îc trªn dßng m¸y kh¸c nh PowerPC ch¼ng h¹n. §ã lµ lý do
t¹i sao c¸c phÇn mÒm ®îc biªn so¹n riªng cho Windows vµ cho
Macintosh.
Kh¶ n¨ng ®éc lËp víi cÊu tróc kh«ng cho phÐp Java gi¶i quyÕt
vÊn ®Ò nµy. Lý do lµ v× cã hai phÇn cho hÖ thèng ph¸t triÓn
øng dông Java -tr×nh biªn dÞch (compiler) vµ tr×nh th«ng dÞch
(interpreter). Thay v× m· m¸y, tr×nh biªn dÞch sÏ biÕn ch¬ng
tr×nh cña b¹n thµnh c¸c m· byte (bytecode), vµ ®ã lµ lo¹i kh«ng
phô thuéc hÖ m¸y. Nh÷ng g× mµ hÖ thèng cña b¹n cÇn lµ mét
tr×nh th«ng dÞch m· bytecode Java ®Ó biÕn m· byte ®ã thµnh ra m·
mµ bé xö lý hiÓu ®îc (t¬ng tù nh ph¬ng ph¸p ho¹t ®éng
cña c¸c ch¬ng tr×nh Basic). Thµnh c«ng cña c¸c applet Java trªn
World Wide Web lµ nhê chóng ch¹y ®îc trªn mäi m¸y tÝnh ®ang
dïng browser hiÓu Java. Netscape Navigator víi tr×nh th«ng dÞch m·
bytecode cµi s½n bªn trong lµ mét vÝ dô.
Tèc ®é cao (high perfprmance). Khi Sun Microsystems m« t¶ Java cã tèc ®é cao, cã lÏ hä muèn nãi vÒ m· bytecode ®îc th«ng dÞch hiÖu qu¶ nh thÕ nµo. VÒ tèc ®é c¸c applet hay ch¬ng tr×nh Java th× nãi chung ®Òu chËm h¬n c¸c ch¬ng tr×nh Java th× nãi chung ®Òu chËm h¬n c¸c ch¬ng tr×nh ®îc biªn dÞch viÕt b»ng C++, v× ch¬ng tr×nh nµy ®· ®îc tèi u ho¸ tõ tríc cho hÖ m¸y nhÊt ®Þnh. Java ®· ph¶i tr¶ gi¸ vÒ hiÖu suÊt cho tÝnh kh«ng phô thuéc hÖ cña nã.
§a luång (multithreaded). §a luång cã nghÜa lµ ng«n ng÷ Java cho phÐp x©y dùng tr×nh øng dông, trong ®o, nhiÒu qu¸ tr×nh cã thÓ x¶y ra ®ång thêi. TÝnh ®a luång cho phÐp c¸c nhµ lËp tr×nh cã thÓ biªn so¹n phÇn mÒm ®¸p øng tèt h¬n, t¬ng t¸c tèt h¬n, vµ thùc hiÖn theo thêi gian thùc.
TÝnh ®éng (dynamic). Java ®éng v× nã ®îc thiÕt kÕ ®Ó ®¸p øng víi m«i trêng t¸c nghiÖp lu«n trong t×nh tr¹ng thay ®æi. Khi cã yªu cÇu míi xuÊt hiÖn trªn thÞ trêng, c¸c lo¹i ®èi tîng míi cã thÓ ®îc bæ sung vµo ngay.
Dï bá qua c¸c tÝnh chÊt u viÖt kh¸c, Java còng kh«ng ph¶i lµ ngÉu nhiªn ®îc xem lµ mét s¶n phÈm cña WWW tõ nguyªn thuû. §iÒu ®Çu tiªn mµ mäi ngêi tr¶i qua ®èi víi Java lµ mét hép mµu tr¾ng n»m ngay gi÷a trang Web khi t¶i xuèng mét applet Java. B¹n sÏ thÊy applet Java trong v« sè c¸c b¨ng qu¶ng c¸o trªn WWW, nã gióp c¸c h×nh ¶nh, ©m thanh, vµ video trë nªn hÊp dÉn h¬n, kh«ng ®éc quyÒn, vµ cã thÓ lµm theo yªu cÇu.
Applet Java ®îc dïng lµm c¬ së cho nh÷ng gi¶i ph¸p th¬ng m¹i ®iÖn tö, còng nh ®Ó t« ®iÓm cho nh÷ng tr×nh øng dông hiÖn thùc ¶o b»ng h×nh ®éng vµ t¬ng t¸c víi ngêi dïng. Tuy nhiªn, Java còng ®ang chuyÓn m×nh ®Ó cã tÇm vãc cao h¬n c¸i vèn cã hiÖn nay lµ mét mµn cöa sæ ®a ph¬ng tiÖn cho Web. Java ®ang v¬n lªn ®Ó thµnh mét hÖ m¸y tÝnh mµ trªn ®ã c¸c nhµ lËp tr×nh cã thÓ x©y dùng nªn tr×nh øng dông kh«ng phô thuéc nÒn.
Java ®ang thùc hiÖn mét c«ng viÖc vÜ ®¹i lµ b¶o ®¶m thµnh c«ng cho nh÷ng bíc chuyÓn míi liªn quan ®Õn c¸c ng«n ng÷ lËp tr×nh ®· x¸c lËp. C¸c nhµ biªn so¹n phÇn mÒm chñ chèt ®· ®a ra, hoÆc ®ang lµm viÖc tÝch cùc trªn c¸c phiªn b¶n Java cña nh÷ng øng dông chÝnh (Corel Office for Java) hoµn toµn b»ng Java. Corel Office lµ mét phÇn mÒm d¹ng m« ®un cã thÓ ph¸t triÓn, vµ ®îc x©ydùng nh»m cho phÐp hîp t¸c nhãm vµ ph©n phèi tµi liÖu qua m¹ng. Corel Office for Java (phiªn b¶n beta) cã thÓ t¶i xuèn tõ Web site cña Corel (http://www.corel.com), vµ ch¹y díi d¹ng tr×nh øng dông ®¬n víi JDK 1.02 cña JavaSoft hoÆc sö dông mét tr×nh duyÖt Web hiÓu Java nh Netscape Navigator 3.01, Netscape cña Sun. Office for Java còng cã thÓ ch¹y díi kªnh Castanet (xem phÇn cuèi).
Lotus còng ®· gia nhËp hµng ngò Java nhê cã hËu thuÉn cña IBM. Theo s¸t gãt Corel, Lotus ®ang lµm viÖc trªn phiªn b¶n Java cña phÇn mÒm SmartSuite, nhng b»ng c¸ch tiÕp cËn kh¸c. SmartSuite sÏ ®îc t¹o l¹i díi d¹ng nhiÒu thµnh phÇn Java nhá (tªn gäi chung lµ Kona) ®îc g¾n víi nhau, vµ cã thÓ tuú biÕn theo ý muèn ngêi dïng. VÝ dô, nÕu b¹n chØ cÇn dïng mét Ýt tÝnh n¨ng trong c¸c tr×nh øng dông xö lý v¨n b¶n vµ b¶ng tÝnh, Kona sÏ cho phÐp b¹n t¶i xuèng chØ c¸c phÇn nhá cÇn thiÕt, tr¸nh ®îc phÇn mÒm d (bloatware).
Java còng lµ vÞ cøu tinh cho IBM. LÇn ®Çu tiªn trong nhiÒu n¨m, c«ng ty nµy t×m thÊy con ®êng ®Ó cho c¸c m¸y mainframe, workstation, server, vµ PC cã thÓ dïng chung cïng mét phÇn mÒm; ®ã lµ ®a Java vµo trong c¸c hÖ ®iÒu hµnh kh«ng t¬ng hîp tríc ®©y cña m×nh.
Java kh«ng nh÷ng ®· g©y x¸o trén trong ®Êu trêng phÇn mÒm do lµm cho Microsoft lo l¾ng vÒ tÝnh v« ®Þch cña nã, mµ cßn lµ chÊt xóc t¸c cho m¸y tÝnh m¹ng cña Oracle (Network Computer - NC) thanh hiÖn thùc. NC lµ mét PC hay mét thiÕt bÞ thu gän dïng ®Ó ch¹y m¹ng, hoÆc nèi víi Internet qua modem. Java ®ang nhanh chãng th©m nhËp vµo cÊu tróc ®iÖnto¸n cho phÐp c¸c thiÕt bÞ ghÐp m¹ng cã thÓ nãi chuyÖn víi nhau. M¸y tÝnh m¹ng sÏ cã kh¶ n¨ng sèng ngoµi m¹ng hoÆc Web b»ng c¸ch t¶i xuèng c¸c thµnh phÇn Java nhá cã thÓ dïng nhiÒu lÇn, tøc lµ c¸c applet, c¸c tr×nh øng dông theo yªu cÇu. Nh÷ng h·ng lín nh IBM, Apple, Netscape vµ Oracle ®ang cïng lµm viÖc víi Sun ®Ó biÕn c¸c s¶n phÈm nµy thµnh hiÖn thùc.
NhiÒu m¸y NC sÏ ch¹y trªn JavaOS, hÖ ®iÒu hµnh chuyªn ®Ó ch¹y c¸c applet Java. HÖ ®iÒu hµnh nµy ®îc ch¹y trªn m¸y tÝnh m¹ng JavaStation cña Sun, lo¹i m¸y thin client, ®îc nèi víi server trung t©m lín qua m¹ng néi bé hoÆc ®êng dÉn lín (fat pipe). Mét sè chuyªn gia c«ng nghiÖp ®· b¸c bá luËn ®iÓm cho r»ng NC lµ sù trë l¹i cña terminal c©m nh÷ng n¨m 1960 vµ 1970. Sè mÖnh cña NC sÏ phô thuéc vµo sù ph¸t triÓn cña Java còng nh nh÷ng c¶i thiÖn trong ngµnh viÔn th«ng.
Kh«ng cßn nghi ngê g×, Java - nÕu gi÷ ®óng lêi høa - sÏ lµ mèi ®e do¹ ®èi víi trôc kinh doanh cña Microsoft vµ Intel (®îc gäi lµ liªn minh Wintel). Vai trß nÒn t¶ng ®iÖn to¸n cña Java ®· ®Æt nã vµo vÞ trÝ c¹nh tranh trùc tiÕp víi Microsoft Windows, cßn tÝnh kh«ng phô thuéc hÖ vµ trung tÝnh vÒ cÊu tróc th× lµm gi¶m kh¶ n¨ng kinh doanh cña Intel v× chip cña c¸c h·ng s¶n xuÊt kh¸c vÉn ho¹t ®éng tèt trong m«i trêng Java.
NÒn c«ng nghiÖp m¸y tÝnh ®ang ®îc chµng khæng lå Wintel kÐo ch¹y theo m×nh sÏ g©y ra c¬n ®ãi hÖ ®iÒu hµnh vµ tr×nh øng dông, dÉn ®Õn sù ®ßi hái vÒ c¸c bé vi xö lý cao cÊp cña Intel. Sù thèng trÞ cña Wintel ®èi víi nÒn c«ng nghiÖp nµy, mét phÇn ®· ®îc ®¸p l¹i b»ng sù tËp hîp cña c¸c h·ng ph©n phèi chÝnh sau lng Java. Java ®îc xem nh lµ mét c«ng nghÖ cøu tinh, Ýt nhÊt còng lµm chËm bíc Wintel vµ h¬n n÷a lµ më ra thÞ trêng cho m×nh. Mét sè c«ng ty nh IBM, Apple, Lotus vµ Borland ®· bÞ mÊt thÞ phÇn cho Microsoft, nay nhê tiÒm n¨ng cña Java ®· ®ang ®a c¸c s¶n phÈm cña m×nh ra khái t×nh tr¹ng tr× trÖ vµ c©n b»ng l¹i lùc lîng trong cuéc chiÕn c¹nh tranh.
Nhng tÊt nhiªn Microsoft kh«ng bao giê cam chÞu. Th¸ng ba n¨m 1996, Microsoft ®· thua ®Ëm ë hiÖp mét do viÖc xin cÊp phÐp c«ng nghÖ Java tõ Sun bÊt thµnh - nhiÒu ngêi nghÜ r»ng Java Virtual Machine (m¸y ¶o Java cña Microsoft) sÏ cã tèc ®é nhanh nhÊt trªn thÞ trêng khi nã ®îc ®a ra díi d¹ng mét phÇn cña Windows 97.
Còng gièng nh sù nhËn thøc chËm ch¹p vÌ tÇm quan träng cña Internet tríc ®©y, Microsoft hëng øng Java rÊt trÔ - hoÆc ®¬n gi¶n lµ hä bá qua trong sù hy väng råi nã sÏ qua ®i? ChØ sau khi Netscape ®a Java vµo Navigator, Microsoft míi buéc ph¶i ®a tÝnh n¨ng hç trî Java vµo Internet Explorer. HiÖn nay c«ng ty phÇn mÒm dÉn ®Çu thÕ giíi nµy ®ang rót ng¾n kho¶ng c¸ch vµ lµm cho Java trë nªn mét tÝnh n¨ng quan träng trong hÖ ®iÒu hµnh tiÕp sau cña hä.
Microsoft tÊn c«ng trªn tÊt c¶ c¸c mÆt trËn. C«ng nghÖ ActiveX cña c«ng ty nµy ®îc ®Þnh híng ®Ó c¹nh tranh trùc tiÕp víi Java hoÆc JavaBeans (mét tËp Java phô dïng ®Ó ®¶m b¶o cho c¸c tr×nh øng dông Java cµi l¹i víi nhau theo mét ph¬ng ph¸p chung). VÒ c¬ b¶n, nã lµ mét më réng cña Object Linking and Embedding (nhóng vµ liªn kÕt ®èi tîng - OLE) cho phÐp c«ng nghÖ cò nµy cã thÓ ho¹t ®éng trªn Internet rÊt gièng víi applet Java. VÊn ®Ò ActiveX lµ bÞ buéc chÆt vµo nÒn Windows ch¹y chip Intel. Java th× ngîc l¹i, viÕt mét lÇn, ch¹y kh¾p n¬i, vµ ®ã lµ u ®iÓm næi tréi so víi ActiveX.
Java cña Sun còng cè g¾ng tiÕn vµo c¸c s¶n phÈm cøng - chip. Chip picoJava ®îc thiÕt kÕ ®Ó thùc hiÖn tr×nh øng dông Java nhanh h¬n gÊp vµi ba lÇn so víi lo¹i CPu th«ng thêng nh chip thuéc hä x86 cña Intel - kÓ c¶ Pentium. PicoJava vµ c¸c thµnh viªn kh¸c trong cÊu tróc JavaChip ®Òu ®îc tèi u ho¸ ®èi víi Java. PicoJava I thùc hiÖn Java trùc tiÕp kh«ng ®ßi hái ph¶i cã tr×nh biªn dÞch Java hoÆc tr×nh phiªn dÞch Just In Time (JIT).
Sun ®· kiªu h·nh tuyªn bè r»ng c¸c thiÕt bÞ ®îc x©y dùng xung quanh chip nµy sÏ ch¹y applet Java b»ng lo¹i chip thuÇn chñng. Bé xö lý sÏ qu¶n lý ®iÒu nµy b»ng viÖc thÝch øng 100% víi Java Virtual Machine (M¸y ¶o Java cña Sun - JVM). JVM cho phÐp applet ch¹y trong c¸c browser nh Netscape Navigator vµ Internet Explorer. Nh÷ng chuÈn kiÓm tra riªng cña Sun cho thÊy r»ng picoJava I ch¹y nhanh h¬n gÊp 15 ®Õn 20 lÇn so víi 486 cã tr×nh phiªn dÞch ë cïng tèc ®é xung nhÞp, vµ nhanh h¬n 5 lÇn so víi Pentium cã tr×nh phiªn dÞch JIT ë tèc ®é xung nhÞp b»ng nhau. Chip 25 USD nµy híng vµo NC, m¸y trî gióp c¸ nh©n (Personal Digital Assistan), c¸c ®iÖn tho¹i th«ng minh, vµ ®å dïng ®iÖn tö tiªu dïng gi¸ rÎ kh¸c.
Mét chip Java kh¸c, gäi lµ microJava, dù kiÕn ra ®êi vµo cuèi 1997, dùa trªn c¬ së picoJava, nhng cã nhiÒu chøc n¨ng øng dïng ®Æc trng. Chip nµy nh¾m vµo NC vµ c¸c thiÕt bÞ t¬ng tù, thiÕt bÞ viÔn th«ng, vµ trß ch¬i gi¸ rÎ. C¸c nhµ s¶n xuÊt cÇn x©y dùng c¸c thiÕt bÞ hiÖu suÊt cao cã thÓ tr«ng chê vµo chip UltraJava cña Sun. §iÒu nµy sÏ kÝch thÝch sù ra ®êi cña c¸c m¸yhÝnh m¹ng, ph©n phèi c¸c gi¶i ph¸p gi¶i trÝ ®a ph¬ng tiÖn dùa vµo Java, vµ lµm m¹nh thªm c¸c øng dông h×nh ¶nh vµ då ho¹ ba chiÒu.
Java còng nç lùc më réng c¸c hÖ ®iÒu hµnh. Java OS1.0 cña Sun lµ mét hÖ ®iÒu hµnh nhá vµ cã c¸ch kh¸c ®Ó ch¹y c¸c tr×nh øng dông Java víi tèc ®é nhanh. Nã thùc hiÖn Java trùc tiÕp trªn nÒn phÇn cøng ®îc t¨ng cêng bëi c¸c bé xö lý Sun SPARC hoÆc Intel x86 vµ Advanced RISC Machines Strong ARm. Sun ®ang nh¾m vµo tét sè lîng lín c¸c thiÕt bÞ kh¸c nhau, tõ NC cho ®Õn m¸y cÇm tay. Toµn bé m«i trêng øng dông Java (Java Application Environment) chØ cÇn mét kh«ng gian 2,5MB, cßn hÖ ®iÒu hµnh th× cã thÓ thu gän ®Ó võa vµo c¸c thiÕt bÞ cÇm tay. Mét sè c«ng ty nh IBm, Toshiba vµ Wyse Technology ®· ®îc phÐp dïng Java OS trong c¸c s¶n phÈm cña m×nh.
Sun næ sóng trªn mäi mÆt trËn t¹i thêi ®iÓm nµy, vµ ®Èy m¹ng cuéc chiÕn chèng Microsoft. Cuèi th¸ng hai võa råi, c«ng ty nµy ®· ph¸t ®éng mét cuéc tÊn c«ng hai mòi vµo l·nh ®Þa cña Microsoft b»ng c¸ch loan b¸o hä ®· x©y dùng ®îc nh÷ng s¶n phÈm cã kh¶ n¨ng chuyÓn ®æi PC Windows giµ cçi thµnh NC hoÆc tr¹m lµm viÖc Java.
S¶n phÈm ®Çu tiªn trong sè nµy, mang tªn Project Rescue, ®îc c«ng bè t¹i héi nghÞ JavaOne vµo ®Çu th¸ng T n¨m nay sÏ cho phÐp c¸c tr×nh øng dông Java ch¹y trªn DOS. PhÇn mÒm Project Rescue (bao gåm c¶ JVM) cµi ®Æt trªn æ cøng cña PC vµ hoµ hîp víi H§H cã s½n (hÇu hÕt lµ Windows 3.x). T¹i dÊu nh¾c DOS, b¹n chØ cÇn gâ "JAVAOS" ®Ó vµo m«i trêng Java ®å ho¹, bao gåm giao diÖn ngêi dïng ®å ho¹ cïng phÇn mÒm browser. HÖ thèng Java nµy còng sÏ bæ sung thªm kh¶ n¨ng ghÐp m¹ng cho m¸y tÝnh, do ®ã m¸y tÝnh hoµn toµn bá qua H§H Windows, mÆc dï nã vÉn n»m trªn æ cøng. Nhê hiÖu qu¶ nµy mµ PC Windows biÕn thµnh m¸y NC ch¹y c¸c øng dông Java lÊy tõ server.
Mét s¶n phÈm kh¸c cã tªn JavaBlaster, lµ card bæ sung bªn trong víi gi¸ 99 USD, sÏ ®îc cÊm vµo khe më réng ISA hoÆc PCI. Card nµy dùa trªn c¬ së bé xö lý microJava cña Sun. JavaBlaster ®îc hy väng sÏ lµ ph¬ng ph¸p rÎ tiÒn Óª biÕn ®æi PC thµnh NC. Phiªn b¶n PCI cña card JavaBlaster sÏ ®a ra gi¶i ph¸p ngang cÊp (kh«ng ph¶i n©ng cÊp), trong ®ã c¸c m¸y PC Pentium lo¹i míi cã thÓ ®îc dïng thay thÕ nh c¸c tr¹m lµm viÖc Java. Hai sù khëi ®Çu nµy mét phÇn mÒm vµ mét phÇn cøng - hy väng sÏ bæ sung cho nhau.
VËy th×, Java lµ g×? Java kh«ng chØ lµ mét ng«n ng÷ lËp tr×nh mµ cßn h¬n thÕ n÷a. §ã lµ c¸ch suy nghÜ míi hoµn toµn vÒ ®iÖn to¸n. ë nã cã kh¶ n¨ng gióp cho nÒn c«ng nghiÖp m¸y tÝnh ph¸ vì sù thèng trÞ cña Wintel. ë nã cã kh¶ n¨ng ghÐp nèi mäi lo¹i thiÕt bÞ vµo m¹ng, nªn chóng ta cã thÓ t¬ng t¸c víi nhau theo nh÷ng ph¬ng ph¸p mµ tríc ®©y cha tõng cã.
Java ®îc b¾t ®Çu nh mét ý tëng, mét hy väng lµ ®Õn ngµy nµo ®ã, mäi thiÕt bÞ sÏ cã thÓ nãi ®îc víi nhau th«ng qua mét hÖ thèng m¹ng. HiÖn nay, víi Java, cha cã níi nµo tiÕp cËn ®îc môc tiªu ®ã, nhng nã ®· lµm cho c¸c nhµ biªn so¹n phÇn mÒm suy nghÜ vÒ nh÷ng g× cã thÓ ®¹t ®îc.
Java mang cuéc sèng ®Õn cho WWW khi mµ Web ®· cho tiÒn th©n cña nã lµ Oak mét viÔn c¶nh cuéc sèng tèt ®Ñp h¬n. Java ®· ®îc thÊm s©u vµo trong sù hiÓu biÕt cña nÒn c«ng nghiÖp nµy, cßn nhanh h¬n c¶ DOS hoÆc Windows trong thêi hoµng kim cña chóng tríc ®©y.
Nhng sù thµnh c«ng l©u dµi cña Java kh«ng cã g× ®¶m b¶o - gièng nh mét thÇn ®ång nhá tuæi, ph¶i trëng thµnh nhanh chãng trong khi kh«ng ®îc phÐp ®èt ch¸y giai ®o¹n. NÕu vît qua ®îc, nã sÏ chøng minh r»ng m¹ng lµ m¸y tÝnh.
1999 – 2000
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com