[Hỏi-Đáp] Java là gì? Và tại sao bạn cần quan tâm?

Trung Kiên

New member
Xu
0
[FONT=&amp]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ượngnà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

[/FONT]
[FONT=&amp]H:Java là gì?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]Đâ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ủanhữ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ạicũ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.

[/FONT]
[FONT=&amp]H: Cóphải JavaScript chỉ là một tên khác của Java?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]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êndịch (complied programming language). Java và JavaScript chỉ có chung vài điểmnhỏ 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.[/FONT]
[FONT=&amp]H: ThếJavaBeans là gì?

[/FONT]

[FONT=&amp]Đ:[/FONT][FONT=&amp]JavaBeans là một mẫuđơn thể khả chuyển, độc lập hệ máy (portable), platform-independent componentmodel). 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ọ.

[/FONT]
[FONT=&amp]H: NếuJava 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ềulời đao to búa lớn thế?
[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Về kỹ thuật, Java chỉ là ngôn ngữ lập trình nhưng có mụctiê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ườidù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ínhmạng (NC) và là thành phần sống còn của lập trình Web.

[/FONT]
[FONT=&amp]H: Tôikhông viết chương trình và chỉ dùng Microsoft Windows thì tôi đâu cần phải quantâm đến khả năng "viết một lần, chạy mọi nơi"?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]Do tầm quan trọng của Java đối với các nỗ lực phát triểnNC, nó cũng là yếu tố không nhỏ trong vấn đề Tổng chi phí sở hữu (total cost ofownership - 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áchệ thống Windows. Công ty Microsoft đã tung ra bộ Zero-administration (khôngcầ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 NCriê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ủ đangười dùng cũng chạy Windows.[/FONT]
[FONT=&amp]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ạymột vài Java applet. Rất nhiều các dải chữ chạy hay hoạt hình trong các trangWeb đượ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ùngcài đặt hay dùng thử các sản phẩm phần mềm.[/FONT]
[FONT=&amp]
H: Sựkhác biệt giữa Java app (ứng dụng Java) và Java applet là gì?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]ứ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ụngJava. Java applet thường chỉ là các chương trình nhỏ hơn nhiều. Chúng chỉ chạybên trong trình duyệt Web của bạn.[/FONT]
[FONT=&amp]
H: Nếumớ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?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Minh họa trang Web chỉ là bước đầu. Ngôn ngữ dùng chomạ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ùngchung tập tin. Hai dự án nổi bật cho hướng này là Kona của Lotus (xemhttps://www.kona.lotus.com) và Alta của Corel. Cả hai dự án đều tập hợp các ứngdụ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ìnhdiễ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ốngWindows (hay phi Windows) nào hỗ trợ Java. Những chương trình này không đượctrông đợi sẽ thay thế hoàn toàn các bộ chương trình văn phòng.[/FONT]
[FONT=&amp]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. Ưuthế 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ănphò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ếnlà 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 đượcphép thêm bớt các thành phần ActiveX và Kona. Alta thậm chí cho phép bạn tùybiế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.[/FONT]
[FONT=&amp]Đâ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 sangcá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ầngì, 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".[/FONT]

[FONT=&amp]H:Khái niệm "100% Pure Java - Java chính gốc" là gì?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]Đây là một loại chứng thư của Sun cấp cho chương trìnhviế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ạytrên bất cứ máy ảo Java nào (JVM - Java Virtual Machine).[/FONT]

[FONT=&amp]H: Làmsao một chương trình có thể chạy mọi nơi?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]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ônngữ lập trình nào đó như C chẳng hạn. Chương trình phát triển sẽ dịch nó sangmã nhị phân (binary format) để bộ xử lý của máy bạn chạy trực tiếp được. Do máyMac và PC dùng bộ xử lý khác nhau, chúng không thể dùng chung một bản chươngtrình gốc (native executable), trừ phi dùng một phần mềm nào đó giải lập kiến trúccủ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êngnó, gọi là định dạng bytecode. Để chạy chương trình Java, bạn cần một phần mềmnữ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ầncứ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ệuquả, FVM giống một trình điều khiển thiết bị của chương trình Java.[/FONT]
[FONT=&amp]Chạy chươngtrì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ếtthẳ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 HotSpotVM trong quý 4 năm 1997. Với sự kết hợp này, người ta mong đợi chương trìnhJava 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áttriể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ênmọi hệ máy. Chỉ cần họ viết một JVM cho hệ máy đó. Cho đến nay, đã có JVM chorấ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.[/FONT]
[FONT=&amp]
H:Liệu VM có là một mốt nhất thời?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]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ầnquan tâm là chương trình sẽ chạy nhanh hơn trong Java hay trong C++. Nếu bạndù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ánnhiề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ếnmất.[/FONT]
[FONT=&amp]Và khuynhhướ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ếunhư 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ôngnghệ VM.[/FONT]
[FONT=&amp]
H:Công nghệ Java đã hoàn chỉnh?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Không nó chưa hoàn chỉnh. Java là ngôn ngữ trẻ kéo theomột cái đuôi khổng lồ. Tuy vậy nó đang phát triển và thay đổi ở tốc độ chóngmặt.[/FONT]
[FONT=&amp]
H: Tạisao tôi phải để ý đến Java?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Các công cụ phát triển phần mềm là các chương trình cựckỳ 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" trongsả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ầnchỉ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ếucó điều kiện vào Internet, bạn sẽ thấy nhiều cuộc trao đổi về các chương trìnhJava 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.[/FONT]
[FONT=&amp]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ầnmề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ậylậ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ínhuyể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áccông cụ chưa chấm dứt việc bị sửa đổi như chong chóng hiện nay.[/FONT]
[FONT=&amp]
H: Tôicó thể tìm ra các lợi ích gì nữa từ các thành phần?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Có thể. Đã nhiều năm chúng tôi biết có dự định rằng ngườisử 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 typhần mềm chưa thấy sự khuyến khích thỏa đáng. Java và ActiveX đi theo hướngnày. Các sản phẩm như Kona của Lotus và Alta của Corel sẽ chỉ cho thấy ngườidùng có thật sự cần tính năng này không.[/FONT]
[FONT=&amp]
H: Anninh trên Internet là một vấn đề không thể bỏ qua. Còn Java thì sao?[/FONT]

[FONT=&amp]Đ:[/FONT] [FONT=&amp]Các đoạn mã Java đương nhiên an toàn hơn ActiveX và khôngnhư các điều khiển ActiveX, nó không tạo ra bất cứ thay đổi nào trong cấu hìnhhệ thống. Nhưng vấn đề an ninh vẫn cón cho cả Java, ActiveX lẫn các hệ điềuhà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ơnmứ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ứnghay 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àmnhững việc đáng ra được quyền làm. Ví dụ, Java applet không thể đọc được tàiliệ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ứcchứng thư, bạn thêm chút tự do cho đoạn mã Java từ các nguồn tin cậy.

[/FONT]
[FONT=&amp]H:Java sẽ tiến tới đâu?[/FONT]
[FONT=&amp]Đ:[/FONT] [FONT=&amp]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áccô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, đâylà điều tốt cho người sử dụng. Điểm thứ hai, Sun, Netscape, IBM cùng nhiều côngty 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âyphút do dự trong việc biến Java thành một ngôn ngữ thành công dài lâu.[/FONT]
[FONT=&amp]Hiện nayJava đã 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 ứngdụ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àoviệ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ủacá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ủacâ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âmnhậ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ẫncò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àncả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.[/FONT]
 

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top