Tải bản đầy đủ (.pdf) (25 trang)

Java FAQ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (500.21 KB, 25 trang )

Java là gì? Và tại sao bạn cần quan tâm?

Tất cả đều đã nghe nói về Java. Nhưng liệu có ai không còn câu hỏi nào về hiện tượng này? Bây
giờ, khi "bức tranh" Java đang đến ngay trước mắt mọi người, hãy thử xem qua công nghệ này
và giải đáp các thắc mắc phổ biến nhất

H: Java là gì?

Đ: Đây là ngôn ngữ lập trình mới do một nhóm nhỏ các nhà khoa học của hãng Sun
Microsystems sáng tạo nên. Theo như truyền thuyết của những người tạo ra ngôn ngữ này, thoạt
tiên Java được gọi là Oak và người ta định dùng nó để lập trình cho bộ TV (set-top box). Tất cả
các khả năng hiện tại cũng như những lời đao to búa lớn chỉ mới có sau này. Từ nền tảng Oak
lúc đó, hãng Sun đã phát triển cả một chi nhánh tên là JavaSoft.


H: Có phải JavaScript chỉ là một tên khác của Java?

Đ: Không đúng. JavaScript là ngôn ngữ kịch bản để thông dịch (interpreted scripting language).
Java là ngôn ngữ lập trình đích thực để biên dịch (complied programming language). Java và
JavaScript chỉ có chung vài điểm nhỏ về ngữ pháp có thể làm các nhà lập trình quan tâm. Xét về
tổng thể chúng là hai công cụ khác nhau hoàn toàn.

H: Thế JavaBeans là gì?

Đ:JavaBeans là một mẫu đơn thể khả chuyển, độc lập hệ máy (portable), platform-independent
component model). Các lập trình viên dùng chúng để tạo các đoạn phần mềm mà người khác có
thể dùng được trong chương trình của họ.

H: Nếu Java cũng chỉ là một ngôn ngữ lập trình như bao ngôn ngữ khác, tại sao có nhiều
lời đao to búa lớn thế?


Đ: Về kỹ thuật, Java chỉ là ngôn ngữ lập trình nhưng có mục tiêu rất xa: nó cho phép lập trình
viên tạo các bản sao chương trình mà người dùng có thể chạy trên hầu hết các hệ máy và hệ
điều hành. Khả năng này thường được gọi là "viết một lần, chạy mọi nơi" (write once, run
anywhere) là một lợi thế cực lớn. Nó biến Java thành công nghệ chủ chốt trong máy tính mạng
(NC) và là thành phần sống còn của lập trình Web.


H: Tôi không viết chương trình và chỉ dùng Microsoft Windows thì tôi đâu cần phải quan
tâm đến khả năng "viết một lần, chạy mọi nơi"?

Đ: Do tầm quan trọng của Java đối với các nỗ lực phát triển NC, nó cũng là yếu tố không nhỏ
trong vấn đề Tổng chi phí sở hữu (total cost of ownership - TCO). Sự tranh luận này đã buộc
Microsoft và các công ty khác chú ý hơn đến vấn đề phiền phức là nâng cấp và bảo trì cả một
"hạm đội" các hệ thống Windows. Công ty Microsoft đã tung ra bộ Zero-administration (không
cần quản trị) và người ta hy vọng hãng sẽ bổ sung nhiều tính năng tươ
ng tự trong các phiên bản
mới của Windows. Microsoft cũng đang phát triển dòng máy NC riêng. ở dòng này máy đầu cuối
là một loại đặc biệt chạy Windows và máy chủ đa người dùng cũng chạy Windows.

Ngoài ra, nếu bạn dùng một trình duyệt Web tương đối mới, rất có khả năng máy bạn đã chạy
một vài Java applet. Rất nhiều các dải chữ chạy hay hoạt hình trong các trang Web được viết
bằng Java. Đến cuối năm nay sẽ có nhiều công ty bắt đầu dùng Java để tạo các trang phức tạp
hơn và tương tác hơn như các hướng dẫn cho người dùng cài đặt hay dùng thử các sản phẩm
phần mềm.

H: Sự khác biệt giữa Java app (ứng dụng Java) và Java applet là gì?

Đ: ứng dụng (app) là một chương trình độc lập mà bạn có thể chạy trên máy của mình. Các ứng
dụng phi-Java có rất nhiều, trong đó có cả tá bạn đang dùng như Microsoft Word hay Excel. Cho
đến nay mới có rất ít ứng dụng Java. Java applet thường chỉ là các chương trình nhỏ hơn nhiều.

Chúng chỉ chạy bên trong trình duyệt Web của bạn.

H: Nếu mới chỉ có ít ứng dụng Java và các lập trình viên hiện nay chủ yếu dùng Java để
tạo minh họa trang Web thì "lợi thế lớn" ở đâu?

Đ: Minh họa trang Web chỉ là bước đầu. Ngôn ngữ dùng cho mạng máy tính này khai thác sự
liên kết tốt hơn rất nhiều việc đơn thuần dùng chung tập tin. Hai dự án nổi bật cho hướng này là
Kona của Lotus (xem ) và Alta của Corel. Cả hai dự án đều tập hợp
các ứng dụng gọn nhẹ, gồm soạn thảo văn bản, bảng tính, tu sửa hình đồ họa hay trình diễn các
PIM. Tất cả chúng ta đều chạy trên máy tính mạng hay bấ
t kỳ hệ thống Windows (hay phi
Windows) nào hỗ trợ Java. Những chương trình này không được trông đợi sẽ thay thế hoàn toàn
các bộ chương trình văn phòng.

Chúng sẽ là các chương trình gọn hơn, đơn giản hơn mà bạn hay cần đến trong văn phòng. Ưu
thế của bộ này là bạn không phải cài đặt hay bảo trì cả một mớ phần mềm văn phòng trên máy
của mình. Khía cạnh hấp dẫn nhất của Kona và Alta, theo dự kiến là khả năng đật cấu hình. Mai
này nếu bạn có một bộ phần mềm như vậy trong máy, bạn có thể tùy ý sửa chữ
a. Ví dụ nếu bạn
dùng SmartSuite 98 của Lotus, bạn được phép thêm bớt các thành phần ActiveX và Kona. Alta
thậm chí cho phép bạn tùy biến giao diện của chương trình bằng một trình soạn thảo HTML bất
kỳ trên thị trường.

Đây có lẽ là bước đầu của việc chuyển đổi từ các cấu hình phần mềm độc nhất, định sẵn sang
các thành phần cho phép tùy đặt cấu hình. Nếu bạn muốn một giải pháp trọn bộ, tiêu chuẩn hóa
thì cũng có sẵn. Nhưng nếu bạn đã biết rõ mình cần và không cần gì, bạn có thể lắp ghép các
thành phần, điều chỉnh hệ thống theo như nhu cầu. Tuy vậy cuộc cách m
ạng này sẽ chưa diễn ra
chừng nào Java chưa hoàn tất cam kết "viết một lần, chạy mọi nơi".


H: Khái niệm "100% Pure Java - Java chính gốc" là gì?

Đ: Đây là một loại chứng thư của Sun cấp cho chương trình viết bằng Java thỏa yêu cầu không
phụ thuộc vào mã của hệ điều hành và sẽ chạy trên bất cứ máy ảo Java nào (JVM - Java Virtual
Machine).

H: Làm sao một chương trình có thể chạy mọi nơi?

Đ: Một ứng dụng cổ điển, như Lotus 1-2-3, bản thân nó đã tự chạy được. Cuộc sống của phần
mềm bắt đầu khi người ta viết ra bằng một ngôn ngữ lập trình nào đó như C chẳng hạn. Chương
trình phát triển sẽ dịch nó sang mã nhị phân (binary format) để bộ xử lý của máy bạn chạy trực
tiếp được. Do máy Mac và PC dùng bộ xử lý khác nhau, chúng không thể dùng chung một b
ản
chương trình gốc (native executable), trừ phi dùng một phần mềm nào đó giải lập kiến trúc của
máy kia. Nói chung việc giả lập thường làm giảm tốc độ và dễ gây ra vấn đề do kém tương thích.
Các chương trình Java được dịch sang kiến trúc của riêng nó, gọi là định dạng bytecode. Để
chạy chương trình Java, bạn cần một phần mềm nữa phiên dịch mã bytecode cũng như cung
cấp cho nó môi trường và các dịch vụ cần thi
ết. Tầng phần mềm này chính là JVM. Máy ảo Java
biến tất cả mọi nền phần cứng và phần mềm trở nên giống nhau dưới con mắt của chương trình
Java. Về hiệu quả, FVM giống một trình điều khiển thiết bị của chương trình Java.

Chạy chương trình Java trên JVM vẫn còn chậm hơn một chút so với chạy chương trình viết
thẳng cho hệ máy đó. Dầu vậy, công nghệ JVM đang tiến bộ mau chóng về mặt tốc độ và
khoảng cách sẽ được thu ngắn lại rất nhiều trước cuối năm nay. Symatec và Microsoft đã bán ra
rất đúng lúc các trình biên dịch và Sun sẽ tung ra HotSpot VM trong quý 4 năm 1997. Với sự kết
hợp này, người ta mong đợi chương trình Java sẽ chạy nahanh như các trình viết bằng C. Các
hãng phần mềm coi hướng phát triển bằng JVM là rất hấp dẫn vì họ có thể đẩy các chương trình
Java chạy trên mọi hệ máy. Chỉ cần họ viết một JVM cho h
ệ máy đó. Cho đến nay, đã có JVM

cho rất nhiều hệ máy, từ máy tính lớn (mainframe) đến hầu hết tất cả các kiểu máy để bàn kể cả
PC và Mac.

H: Liệu VM có là một mốt nhất thời?

Đ: Tôi e rằng không. Trước hết, máy để bàn ngày nay có đủ sức mạnh để hỗ trợ phần việc mới -
chạy chương trình qua JVM. Do đó vấn đề cần quan tâm là chương trình sẽ chạy nhanh hơn
trong Java hay trong C++. Nếu bạn dùng các chương trình kiểu như soạn thảo văn bản thì bạn
sẽ không nhận ra sự khác biệt. Xét ở tình huống khác, nếu làm việc với bảng tính lớn, cần tính
toán nhiều, bạ
n sẽ nhận ra sự khác biệt về tốc độ và bạn có thể sẽ không muốn dùng ứng dụng
Java. Tuy vậy, một khi HotSpot VM ra đời, sự khác biệt tốc độ sẽ biến mất.

Và khuynh hướng là người ta ngày càng dùng nhiều hơn công nghệ VM. Trong năm 1997, IBM
sẽ xuất xưởng máy ảo đa năng, hỗ trợ ba ngôn ngữ: Java, BASIC và Smalltalk. Nếu như thử
nghiệm này thành công, hy vọng sẽ có thêm nhiều sản phẩm hỗ trợ công nghệ VM.

H: Công nghệ Java đã hoàn chỉnh?

Đ: Không nó chưa hoàn chỉnh. Java là ngôn ngữ trẻ kéo theo một cái đuôi khổng lồ. Tuy vậy nó
đang phát triển và thay đổi ở tốc độ chóng mặt.

H: Tại sao tôi phải để ý đến Java?

Đ: Các công cụ phát triển phần mềm là các chương trình cực kỳ phức tạp và thường có lỗi. Khi
các nhà phát triển dùng các công cụ này chế tạo phần mềm thương mại, những lỗi này có thể
tạo ra "khe nút" trong sản phẩm. Các công cụ lập trình, sau mỗi ấn bản lớn thường đòi hỏi một
vài lần chỉnh sửa để giải quyết lỗi cho bớt đi đến mức chấp nh
ận được. Khi công cụ thay đổi
nhanh quá, các công ty viết ra sẽ không còn thời gian mày mò tìm lỗi. Nếu có điều kiện vào

Internet, bạn sẽ thấy nhiều cuộc trao đổi về các chương trình Java chạy khác nhau hay không
chạy trên các trình duyệt khác nhau hay dưới hệ điều hành khác. Hy vọng những vấn đề này sẽ
chóng qua.

Một vấn đề nữa là việc học lập trình. Lập trình viên chưa bao giờ biết tường tận công cụ của họ
vì mỗi lần thay đổi lớn họ lại phải học cái mới. Trước mắt, dùng phần mềm Java rút gọn dường
như hơi phiêu lưu so với dùng phần mềm thường. Một số phần mềm Java cần phải tăng khả
năng tái dùng các thành phần củ
a chúng, như vậy lập trình viên sẽ có thời gian tập trung vào
việc năng suất chất lượng và tính uyển chuyển của sản phẩm. Nhưng không ai có thể làm được
điều này chừng nào các công cụ chưa chấm dứt việc bị sửa đổi như chong chóng hiện nay.

H: Tôi có thể tìm ra các lợi ích gì nữa từ các thành phần?

Đ: Có thể. Đã nhiều năm chúng tôi biết có dự định rằng người sử dụng có thể tùy biến thay đổi
các bộ phận của phần mềm như kiểm tra chính tả và tu sửa đồ họa nhưng trong thực tế thì chưa
thấy. Lý do chính là các công ty phần mềm chưa thấy sự khuyến khích thỏa đáng. Java và
ActiveX đi theo hướng này. Các sản phẩm như Kona của Lotus và Alta của Corel sẽ chỉ cho th
ấy
người dùng có thật sự cần tính năng này không.

H: An ninh trên Internet là một vấn đề không thể bỏ qua. Còn Java thì sao?

Đ: Các đoạn mã Java đương nhiên an toàn hơn ActiveX và không như các điều khiển ActiveX,
nó không tạo ra bất cứ thay đổi nào trong cấu hình hệ thống. Nhưng vấn đề an ninh vẫn cón cho
cả Java, ActiveX lẫn các hệ điều hành và trình duyệt Web. Sắp tới, ít nhất Java chắc vẫn tiếp tục
an toàn hơn mức trung bình. Đoạn mã Java độc ác nhất vẫn không thể chạm vào các đĩa cứng
hay Registry của máy bạn. Các than phiền phổ
biến nhất về "đống cát" Java là nó quá cứng
nhắc. Nó không cho phép các nhà phát triển thậ được làm những việc đáng ra được quyền làm.

Ví dụ, Java applet không thể đọc được tài liệu trong máy cục bộ. Tương lai sẽ sáng sủa hơn vì
Sun sẽ hỗ trợ một hình thức chứng thư, bạn thêm chút tự do cho đoạn mã Java từ các nguồn tin
cậy.

H: Java sẽ tiến tới đâu?

Đ: Có hai việc đã rõ ràng. Thứ nhất, Java sẽ tiếp tục biến đổi ở mức độ đáng kinh ngạc hiện nay
ít nhất trong 6 tháng tới vì Sun và các công ty khác đang nỗ lực đáp ứng nhu cầu các nhà phát
triển. Về lâu về dài, đây là điều tốt cho người sử dụng. Điểm thứ hai, Sun, Netscape, IBM cùng
nhiều công ty khác đã đầu tư rất nhiều vào Java nên không ai dám nghĩ rằng họ lại có giây phút
do dự
trong việc biến Java thành một ngôn ngữ thành công dài lâu.

Hiện nay Java đã tồn tại, nếu chỉ xét đến mảng dùng để tạo đoạn mã trong trang Web. Java đã
thực sự trở thành một trong những ngôn ngữ căn bản của Web và nó hữu dụng đến mức khó mà
thay thế. Tương lai của Java ở góc độ là một công cụ tạo các ứng dụng kinh doanh lớn thì còn
mờ mịt hơn nhiều. Câu trả lời chắc phụ thuộc vào việc Sun sẽ cố
gắng đến đâu trong một hai
năm tới trong việc sửa đổi Java về căn bản. Các yếu tố khác là sự phổ biến của máy tính mạng,
sự thành công của các sản phẩm như Kona và Alta. Sun đã tạo và hỗ trợ một số tính năng mới
rất đáng kể: công nghệ InfoBus của Lotus cho phép các thành phần Java chia sẻ dữ liệu dễ dàng
và một nhóm làm việc Java tên là JFC chuyên giúp lập trình viên đẩy nhanh việc phát triển ph
ần
mềm. Cuộc cách mạng CN là phần khó giải nhất của câu đố này. Dầu vậy những bước đi đầu
tiên cũng đã có vẻ rõ ràng. Nó sẽ thâm nhập vào các thiết bị đầu cuối của các máy tính lớn
truyền thống trong các cơ sở giáo dục. Tất nhiên, việc NC sẽ chiếm 0,1% hay 25% thị trường
máy để bàn vẫn còn chưa biết được. Dầu sao đi nữa, Java vẫn sẽ là phần quan trọ
ng của toàn
cảnh NC, loại máy đang mở rộng thị trường cho các chương trình chuyên Java mà bạn cũng có
thể chạy trên Windows.


Cần biết về Java
Java hoà hợp tất cả lại với nhau



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 độ chưa 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.

Java ra đời như thế nào

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.

Câu hỏi hóc búa về java

Đó là lịch sử mà cũng có thể chỉ là hoang đường, nhưng 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.

Theo Sun, Java là:

• Đơn giản (simple). Java đơn giản vì, mặc dù dựa trên cơ sở C++ nhưng 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 lưu 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ô.
Nhưng 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 nhưng 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ộ. Nhưng 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 trưng 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.

Java là ngôn ngữ nóng

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 (), 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, nhưng 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.

JAVA và chàng khổng lồ Goliath

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 lưng 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.

Nhưng 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.

Chip


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,
nhưng có nhiều chức năng ứng dùng đặc trưng. 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.

Thưởng thức hương vị cà phê

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 chưa 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, chưa có nới nào tiếp cận
được mục tiêu đó, nhưng 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.

Nhưng 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.

Java và lập trình trong Internet.
1.Mạng Internet dưới góc độ công nghệ.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×