Khái niệm (gốc từ en.wikipedia.org chưa có thời gian dịch lại)
Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun Microsystems’ Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture.
The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun made available most of their Java technologies as free software under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.
Lịch sử
The Java language was created by James Gosling in June 1991 for use in one of his many set-top box projects.[4] The language was initially called Oak, after an oak tree that stood outside Gosling’s office-and also went by the name Green-and ended up later being renamed to Java, from a list of random words.[5] Gosling’s goals were to implement a virtual machine and a language that had a familiar C/C++ style of notation.[6] The first public implementation was Java 1.0 in 1995. It promised “Write Once, Run Anywhere” (WORA), providing no-cost runtimes on popular platforms. It was fairly secure and its security was configurable, allowing network and file access to be restricted. Major web browsers soon incorporated the ability to run secure Java applets within web pages. Java quickly became popular. With the advent of Java 2, new versions had multiple configurations built for different types of platforms. For example, J2EE was for enterprise applications and the greatly stripped down version J2ME was for mobile applications. J2SE was the designation for the Standard Edition. In 2006, for marketing purposes, new J2 versions were renamed Java EE, Java ME, and Java SE, respectively.
In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process.[7][8][9] Java remains a de facto standard that is controlled through the Java Community Process.[10] At one time, Sun made most of its Java implementations available without charge although they were proprietary software. Sun’s revenue from Java was generated by the selling of licenses for specialized products such as the Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and Runtime Environment (JRE) that is a subset of the SDK, the primary distinction being that in the JRE, the compiler, utility programs, and many necessary header files are not present.
On 13 November 2006, Sun released much of Java as free and open source software under the terms of the GNU General Public License (GPL). On 8 May 2007 Sun finished the process, making all of Java’s core code free and open-source, aside from a small portion of code to which Sun did not hold the copyright.
Giới thiệu về java
Thật rất hiếm khi ta đọc một tạp chí về máy tính mà không có bài viết về Java. Thậm chí xu hướng chính của những tờ báo lớn như thời báo NewYork, tin tức Wasington hay là tuần báo Thương Mại cũng đã viết rất nhiều bài báo viết về Java. Java có thể hữu ích mà cũng có thể là không, nó còn tuỳ thuộc vào tầm nhìn xa trông rộng của bạn. Bạn có còn nhớ truyền thanh công cộng quốc tế lần cuối cùng đã phát một câu truyện dài 10 phút bàn về ngôn ngữ máy tính? Hay là người ta đã đầu tư 100 triệu USD tiền vốn để tạo ra những sản phẩm đơn lẻ mà những sản phẩm này lại được sử dụng để cho ra ngôn ngữ máy tính một cách xác thực. CNN, CNBC bạn có thể kể tên ra những phương tiện thông tin tuyên truyền rộng rãi, dường như là mọi người chỉ bàn luận về việc là Java sẽ làm công việc này hay công việc kia như thế nào.
Chúng tôi cho rằng bạn quyết định mua quyển sách này chứng tỏ bạn là một lập trình viên đã quyết định một cách nghiêm túc và thêm vào đó nếu bạn muốn hiểu được nhanh chóng được mạng Internet và cố gắng để khám phá ra những điều còn ẩn chứa ở sau mạng đó. Chúng tôi sẽ đưa ra một số chi tiết về Java như ngôn ngữ lập trình (tất nhiên bao gồm cả những đặc trưng của Java mà nó được sử dụng trên Internet). Sau đó chúng tôi sẽ cố gắng để phân chia các sự kiện hiện tại từ thị hiếu bằng cách giải thích những gì mà Java có thể làm được và không thể làm được trên Internet.
Cuối cùng chúng tôi muốn cho các bạn biết thêm một cách thực hiện hợp lí để điều chỉnh những sự cường điệu có thể được điều chỉnh hợp lí mặc dù sự cường điệu này hiện nay chưa được thoả đáng. như chúng tôi đã cho các bạn biết bản kiểm tra thử nghiệm đầy đủ Beta được một năm và nó vẫn còn đang trong thời kì phôi thai. Nhưng nó chỉ là sự khởi đầu của java như những đứa trẻ một hai tuổi mới chập chững tập đi. Chúng tôi hy vọng rằng vào cuối năm 1997 Java sẽ trở thành một công cụ có đầy đủ các tính năng phục vụ (đáp ứng) cho mọi loại chương trình. Chúng tôi cũng mong muốn rằng Java sẽ trở nên tiện lợi hơn so với các chương trình Visual Basic và C++. Phần lớn công việc tính toán sẽ không phải kì công nữa,Visual Basic là ngôn ngữ lập trình phổ biến nhất trên thế giới và C++là ngôn ngữ thông dụng cho lập trình hệ thống và lập trình cho các chương trình ứng dụng phổ biến ngày nay. Cụ thể Java1.1 theo suy nghĩ của chúng tôi sẽ là phiên bản đầu tiên của Java, mà nó có thể sử dụng một cách hiện thực chứ không chỉ như các khái niệm. (Chương trình đã được lập ra với những phiên bản trước của java đòi hỏi sự nỗ lực rất lớn của con người để đưa chúng vượt xa khỏi phạm vi hoạt động chỉ như những thứ đồ chơi).
công cụ lập trình Java
Cũng như là ngôn ngữ máy, sự quảng cáo cường điệu về Java là quá khả năng thực hiện cuả nó: Java tất nhiên là một ngôn ngữ lập trình rất tốt. Nó có tiềm năng để trở thành một ngôn ngữ lập trình tuyệt vời nhưng điều đó có thể là quá chậm. Chỉ có một ngôn ngữ là vượt ra ngoài các “trường”. nó thực sự khó khăn để có được sự tương thích với mã tồn tại bên ngoài đã thiết lập. Thêm vào đó, thậm chí trong trường hợp ở những chỗ sự thay đổi là có thể xảy ra mà không làm hỏng các mã đã tồn tại đó. Nó là khó có thể để tạo ra được một ngôn ngữ được đòi hỏi như Java, để có thể quay lại và nói rằng “ồ chúng ta có thể đã sai trong việc chọn giữa ngôn ngữ X và Y chúng ta có thể chọn lựa đúng hơn”. Theo tổng kết, trong khi chúng tôi mong đợi có sự cải thiện trong java, thì về cơ bản cấu trúc của ngôn ngữ Java sau này sẽ có nhiều tính chất giống như cấu trúc của java hiện nay.
Chúng tôi đã nói một số vấn đề, một câu hỏi đặt ra là liệu rằng có sự cải thiện nào gây ấn tượng không thì theo suy nghĩ của chúng ta sự cải thiện được java1.1 đưa ra là gì? Câu trả lời cho vấn đề này là java1.1 không có sự thay đổi chính nào trên nền của ngôn ngữ java, mà sự thay đổi ấn tượng nhất là trong thư viện của nó. JavaSoft đã thay đổi mọi tên của rất nhiều các chức năng trong thư viện (tạo cho chúng gợi nhớ hơn), thay đổi cách thức làm việc trong đồ hoạ (bằng cách thay đổi các mô hình sự kiện và viết lại một số phần tạp nham lộn xộn), thêm vào một số phần quan trọng như việc in ấn không có trong java1.0. java1.1 thực sự là một công cụ hữu dụng, nó thực sự mạnh mẽ hơn và ít rắc rối hơn phiên bản trước của java.
Ưu nhược điểm của Java:
Một ưu điểm rõ ràng là thời gian chạy chương trình thư viện được cung cấp trên một nền tảng đôc lập: bạn có thể dùng cùng một mã trên Window95, Solaris, Unix, Macintosh. Nó là thực sự cần thiết cho lập trình trên Internet.
(Mặc dù thực hiện trên các môi trường lập trình khác nhau như trên môi tường khác nhau như môi trường Windows95, Solaris chúng ta không phải viết lại mã chương trình nguồn. Cho ví dụ chúng ta viết một chương trình java1.1 không cần phải có một bản khác trên máy Mac.)
Một ưu điểm lập trình khác là Java có cú pháp tương tự so với C++ ở chỗ mà làm cho chương trình được tối ưu mà không dẫn đến sự bất hợp lý. đối với các lập trình viên Visual Basic sẽ có thể thấy một số cú pháp khó chịu và mất một số cú pháp hay trong Visual Basic
Chú ý: Nếu bạn biết ngôn ngữ khác như ngôn ngữ C++ thì bạn sẽ thấy một số thuật ngữ trong phần này không tương đương. hãy xem qua các phần này bạn sẽ thâý hoàn toàn thoải mái với các thuật ngữ cho đến hết chương 6.
Java cũng là một ngôn ngữ hướng đối tượng, thậm chí hơn so với C++. Tất cả mọi điều trong Java, ngoại trừ một ít kiểu số cơ bản như các số còn lại đều là đối tượng (Thiết kế chương trình hướng đối tượng sẽ sớm thay thế lập trình cấu trúc vì nó có thuận lợi cho việc lập trình giải quyết các công việc phức tạp). Nếu bạn chưa quen với việc lập trình hướng đối tượng (OOP) thì trong chương 4 và 6 sẽ cung cấp tất cả những gì bạn cần phải biết).
Tuy nhiên vẫn có một số sự khác nhau, và một số cải tiến. Những vùng số riêng biệt của C++ vẫn không thể có đủ vì thế có những điểm chú ý sau:
• Dễ dàng hơn trở lại mã chương trình gỡ lỗi của Java hơn việc sử dụng chương trình gỡ lỗi của C++.
Tại sao? Người thiết kế Java thấy rằng mã nguồn chương trình C++ làm rất khó gỡ lỗi. Họ cung cấp thêm cho Java đặc điểm mà có khả năng tạo ra được mã với hầu hết các loại lỗi. (Một số ước tính sơ bộ cho thấy cứ xấp xỉ 50 dòng của C++ thì có ít nhất 1 lỗi). Sau đây là một số đặc trưng được thêm vào:
• Chúng loại trừ khả năng thiết lập bộ nhớ và giải phóng bộ nhớ.
Bộ nhớ được dùng trong Java tự động thu thập rác rưởi. Vì vậy bạn không cần phải lo lắng gì về việc có thể có phần bộ nhớ có thể bị mất đi một cách lãng phí.
• Chúng đưa ra các mảng chính xác và loại trừ các phép toán con trỏ. Bạn sẽ không phải lo lắng về sự ghi đè một vùng của dữ liệu bộ nhớ bởi vì khi làm việc với con trỏ nếu có lỗi thì nó sẽ ngừng ngay.
• Chúng loại trừ khả năng gây phức tạp của các phép gán với việc kiểm tra điều kiện tương đương trong lệnh điều kiện.
Bạn thậm chí không thể dịch if(ntries=3)….(Các lập trình viên Visual Basic có thể không thấy được lỗi, nhưng thực ra nó có lỗi cũng giống như cách phát mã trong C++
• Chúng loại bỏ sự đa thừa kế, loại bỏ được sự rắc rối này là nhờ trong java có sự phân cấp quản lí đa thừa kế. (Nếu sự kế thừa là một khái niệm mới đối với bạn thì ở chương 5 sẽ giải thích cho bạn điều đó).
thuật ngữ của Java như trang giấy trắng
tác giả của java đã viết và đưa ra thuật ngữ như trang giấy trắng mà lời giải thích đi kèm. Trang giấy trắng này được tổ chức theo 11 thuật ngữ sau:
Simple Portable
Object Oriented 9 Interpreter
Distribute HighPerformance
Robust Multilthreaded
Secure Dynamic
Architecture Neutral
Chúng ta sẽ nêu rõ các thuật ngữ này phần sau. Trong phần này chúng ta
• Tổng kết thông qua các khái niệm từ thuật ngữ trang giấy trắng những gì mà các thiết kế java nói về thuật ngữ này
• Chúng tôi cho bạn biết những gì chúng tôi nghĩ về thuật ngữ này dựa trên các kinh nghiệm của chúng tôi với phiên bản hiện tại của java.
Đơn giản (simple):
chúng tôi muốn tạo ra một ngôn ngữ có thể lập trình dễ dàng mà không cần phaỉ đào tạo rất nhiều và nó phải là chuẩn mực cho mức độ ngôn ngữ bậc cao thời nay. Vì chúng tôi nghĩ C++ không phù hợp lắm, cho nên chúng tôi đã thiết kế ngôn ngữ java nó rất giống C++ nhưng Java là ngôn ngữ dễ hiểu hơn, Java đã loại trừ những điều không cần thiết, khó hiểu, và rắc rối của C++, theo chúng tôi java mang đến cho bạn rất nhiều sự hài lòng hơn mong đợi
Cú pháp của java thực ra là rất giống với cú pháp của C++ trong các phiên bản mới đây. người thiết kế không cần có sự khác đi các đầu files, phép toán con trỏ (hay thậm chí một con trỏ cú pháp), cấu trúc (struct), union, định nghĩa chồng toán tử (overloading), các lớp cơ sở, vân vân. (Bạn hãy xem những chú ý để biết thêm sự khác nhau giữa C++ và Java. Tuy nhiên nó cải thiện một số sự ngớ ngẩn của C++ như câu lệnh switch, Nếu bạn biết C++ bạn sẽ thấy dễ dàng thay thế nó bằng câu lệnh của java.2
Nếu bạn là một lập trình viên Visual Basic bạn sẽ thấy java thật không đơn giản. Có rất nhiều cú pháp lạ (Hãy chú ý tới các cú pháp này). quan trọng hơn bạn phải viết thật nhiều các chương trình bằng ngôn ngữ java, Visual Basic có rất nhiều điểm hay như việc nó cung cấp sẵn cơ sở hạ tầng cho rất nhiều chương trình ứng dụng hầu như làm việc tự động. Các hàm phải viết tương tự. Trong điểm này thì java là ngôn ngữ hay hơn, chỉ như là một ngôn lập trình hướng đối tượng, nhưng có rất nhiều điểm tinh tế để giải quyết các vấn đề phức tạp. Chúng đã được cung cấp rất nhiều trong các thư viện và trong môi trương tích hợp sẵn.
Một điểm khác nữa là java rất nhỏ. Java có thể tạo ra các phần mềm chạy độc lập trên các máy tính nhỏ kích thước bộ biên dịch cơ sở và các lớp cung cấp chỉ có 40K; thêm vào đó các thư viện chuẩn và các sâu chuỗi được cung cấp chỉ việc thêm có 175K
Hướng đối tượng (Object-oriented ):
Giống như C++, Java sử dụng các lớp để tổ chức mã trong các module logic. Trong thời gian chạy, một chương trình tạo các đối tượng từ các lớp. Các lớp Java có thể kế thừa từ các lớp khác, nhưng sự kế thừa nhiều lớp, theo một khía cạnh nào đó, một lớp kế thừa các hệ thống và các trường từ nhiều hơn một lớp thì không được phép.2
Chú ý:
Nếu bạn chưa từng có kinh nghiệm với việc lập trình hướng đôí tượng bạn hãy đọc các chương 4 và 6 cẩn thận các chương này giải thích thế nào là lập trình hướng đối tượng và tại sao nó lại hữu dụng hơn so với các ngôn ngữ lập trình hướng thủ tục giống như Basic và C
Kiểu tĩnh (Statically typed):
Tất cả các đối tượng sử dụng trong một chương trình phải được khai báo trước khi chúng được sử dụng. Điều này giúp cho chương trình dịch Java có thể xác định và báo cáo các xung đột.
Dịch (Comp2iled):
Trước khi bạn chạy một chương trình viết bằng Java, chương trình phải được dịch bởi chương trình dịch Java. Kết quả sẽ được đưa ra trong một file “byte_code” tương đương với một file mã máy, có thể được thực hiện trong bất kỳ hệ tính toán nào mà có trình thông dịch Java. Trình thông dịch này đọc file “byte_code” và dịch các lệnh byte_code sang các lệnh trong ngôn ngữ máy mà có thể được thực hiện trực tiếp bằng máy.
Đa dòng (Multithreaded):Đa luồng
Những chương trình Java có thể bao gồm nhiều dòng, điều này làm cho chương trình có thể điều khiển được nhiều công việc một cách đồng thời. Ví dụ một chương trình đa dòng có thể đưa một hình ảnh ra màn hình trong khi vẫn nhận dữ liệu từ bàn phím trong dòng chính. Tất cả các ứng dụng đều có ít nhất một dòng.
Tập hợp các dữ liệu vô nghĩa (Garbage collected):
Các chương trình Java tự động tập hợp các dữ liệu vô nghĩa của chính nó, điều này có nghĩa là các chương trình không yêu cầu xoá các đối tượng mà chúng phân bố trong bộ nhớ. Điều này trút đi gánh nặng cho các chương trình trong vấn đề quản lý bộ nhớ.
Mạnh mẽ (Robust):
Java vừa là 1 trình thông dịch vừa là trình biên dịch.Vì trình thông dịch kiểm tra tất cả các sự truy nhập hệ thống thực hiện trong một chương trình do đó các chương trình Java không thể phá hỏng hệ thống. Thay vào đó, khi một chuỗi các lỗi bị phát hiện, các chương trình Java tạo ra một sự loại bỏ. Sự loại bỏ này có thể bị giữ lại và quản lý bởi chương trình mà không có bất cứ một sự mạo hiểm nào phá hỏng hệ thống.
An toàn (Secure):
Hệ thống Java không chỉ kiểm tra mọi sự truy cập bộ nhớ mà còn bảo đảm không virus nào có thể làm ngưng trệ một applet đang chạy. Vì các con trỏ không được hỗ trợ trong ngôn ngữ Java nên các chương trình không thể truy cập vào các vùng của hệ thống khi chúng không được phép.
Mở rộng ( Extensible):
Các chương trình Java hỗ trợ cho các hệ thống riêng mà các hàm được viết bằng một ngôn ngữ khác, thường là C++,Vísual Basic. Hỗ trợ cho các hệ thống riêng giúp cho người lập trình viết các hàm mà có thể thực hiện nhanh hơn các hàm tương đương viết bởi Java. Các hệ thống riêng được liên kết động với chương trình Java. Khi Java được tinh chế hơn về mặt tốc độ, các hệ thống riêng có thể sẽ trở nên không cần thiết.
Dễ hiểu (Well understood):
Ngôn ngữ Java dựa trên công nghệ đã được phát triển trong nhiều năm. Vì lý do này Java có thể được hiểu một các nhanh chóng và dễ dàng bởi bất kỳ ai với những kinh nghiệm thu được từ những ngôn ngữ lập trình hiện đại như C++.
• JAVA và Internet
ý tưởng về sự liên hệ ơ đây thật đơn giản. Người dùng sẽ tải từng mã byte Java từ trên Internet xuống và dùng chúng ngay trên máy của họ. Các chương trình Java làm việc trên những trang WEB được sử dụng trên những trang Web gọi là các applets (nó thực sự là các mã byte hay đôi khi là các file nguồn, mà bạn chỉ việc tải xuống và chạy), để sử dụng các applet, bạn cần các trình duyệt trang WEB có khả năng thực hiện các chương trình Java, trình duyệt này sẽ diễn dịch các mã byte cho bạn. vì hãng Sun đăng kí bản quyền cho các chương trình nguồn và khẳng định không có sự thay đổi trong ngôn ngữ và trong cấu trúc cơ sở của cấu trúc thư viện. bạn có thể đảm bảo các chương trình java applet sẽ chạy trên các trình duyệt mà được quảng cáo có khả năng thực hiện các chương trình java. chú ý Nestcape 2.x và Nestcape 3.x cũng như InternetExplorer 3.0 chỉ có thể thực hiện các chương trình java1.02. chủ yếu các công ty thông báo họ cung cấp khả năng thực hiện các chương trình java1.1. Tuy nhiên, chủ yếu người sử dụng đã nâng cấp trình duyệt mà có khả năng thực hiện các chương trình java1.1. các applet nếu cần có thể sử dụng java 1.02.(để thực hiện các chương trình java 1.02 trong java1.1, chúng tôi đề nghị các bạn hãy xem quyể hai của cuốn cojejava book.
Chúng tôi cho rằng nguyên tắc cơ bản bao trùm lên sự quảng cáo ban đầu của Java đó là ta có thể thu lợi nhuận hấp dẫn trong các chương trình với mục đích ứng dụng đặc biệt, Bạn sẽ sớm viết một chương trình, chuyển đổi nó thành các applets, và lấy thù lao từ người sử dụng, có thể đóan chừng, chủ yếu người sử dụng thể loại chương trình này một cách không thương xuyên. thương mại trên mạng là vấn đề lớn, nó dường như là chắc chắn và hấp dẫn (một số người đôi khi nói qua một số giới hạn cho phép. họ đoán thời điểm khi nào người sử dụng sẽ tải xuống các chương trình từ mạng dựa trên số người sử dụng cơ bản.điều này thật là tuyệt cho các công ty phần mềm.
Sau đây là một số ưư điểm của applets khi dùng trên World Wide Web,điều đó ta sẽ thấy nó là hiện thực bây giờ và trong tương lai:
1:Kể từ khi Java là một ngôn ngữ lập trình thực sự, nó có thể làm cho có sự gần gũi hơn giữa cách viết của các ngôn ngữ như là JavaScript hoặc VBScript mà điều đó là chưa bao giờ hy vọng.Ngoài ra nó còn có thể vẽ các hình ảnh tinh vi trong không gian và xử lí các số lựơng lớn dễ dàng.
2:Applets có thể dùng bộ giao diện người dùng đồ hoạ(GUI). Nó bao gồm các hộp chữ, nút bấm, hộp danh sách…Thậm chí trong Java1.1 bạn có thể đưa ra tổ hợp giao diện cho riêng bạn.Nó cũng có thể hỗ trợ cho các chức năng gõ phím hay di chuyển chuột và những cái tương tự.
3: Nó có thể xử lí hệ thống nhanh hơn khi có vài nghìn máy truy cập tới máy chủ cùng một lúc.Hơn thế nữa khi bạn cần một lượng dữ liệu lớn chyển tới máy bạn thì bạn không cần phải lo lắng về tốc độ truyền dữ liệu.Trong trường hợp bạn cần phải đưa hình ảnh động lên trang Web thì bạn không cần phải lo lắng. Chắc chắn điều đó là dễ dàng nhưng nếu hình ảnh đó cần tới 1 megabyte của file GIF thì với đường truyền tốc độ 28.8K sẽ không thể làm cho bạn hài lòng được.Vấn đề cần phải thay thế ở đây (nếu có thể)là gì? Đó là phải thay thế một đường truyền tốc độ nhanh, có hiệu lực thực sự. Các applet xử lí dữ liệu trong khi truyền thay cho việc phải tải nó xuống máy bạn để giải quyết.
4: Mục đích đặc biệt của Java applets là cho phép trình duyệt làm với Java giải quyết được với nhiều loại thông tin mang tính động.Khi bạn viết những lời giải thích thì không cần nén và bạn có thể gửi đi cùng với các files đã nén.Đây là một đặc trưng riêng của Java mà Netscape 2.0 và 3.0 không làm được cũng như là đối với Internet Explorr 3.
• Applets trong công việc
Quyển sách này bao gồm một số các applets mẫu;các nguồn tốt nhất cho các applets ở trong trang Web cuối cùng. Một số các applets trên Web chỉ được nhìn thấy khi bạn làm việc với trang Web đó; một số khác bao gồm các mã nguồn.Khi bạn trở nên quen thuộc với Java thì các applets có thể là một cách tuyệt vời cho việc học thêm hơn nữa của bạn về Java.Một Web site tốt cho việc tìm kiếm các applets là Gamelan: http://www.gamelan.com.
Khi bạn đặt một applet vào trong một trang Web thì bạn cần phải biết hoặc lamf việc với một người biết về ngôn ngữ nhãn phụ siêu văn bản (HTML). Để cho Java applet thường xuyên và dễ dàng quản lí thì số của đoạn HTML là cần thiết. Không có vấn đề gì về lập trình khi ta dùng một đoạn HTML để thiết kế một trang Web.
Khi bạn tải một applet xuống thì nó làm việc như là gắn hình ảnh vào trang Web.Applet trở thành một phần của trang và đoạn văn bản trở nên bóng bẩy xung quanh chỗ dùng applet.Có một điểm là hình ảnh rất sống động. Nó có tác dụng trở lại đối với câu lệnh của người dùng, thay đổi sự xuất hiện của nó và gửi dữ liệu giữa máy người dùng applet và máy chủ của nó.
*Lịch sử vắn tắt java
Java được nghĩ ra một thời gian khá lâu trước khi sự thích hợp của nó đối với Web được chú ý đến. Bạn có lẽ sẽ ngạc nhiên khi biết Java được phát triển cho những yêu cầu sử dụng khác. (Đầu tiên Java được định hướng để đóng vai trò là công nghệ then chốt trong một số ngành công nghiệp nhưng lại không đạt được thành công). Trong thực tế, thậm chí “Java” không phải là cái tên đầu tiên của ngôn ngữ này.
Cuối năm 1990, một người có tên là James Gosling đã nhận được một bài toán về các chương trình để điều khiển các thiết bị điện tử tiêu dùng. Gosling và các đồng nghiệp của ông tại công ty Sun Microsystems bắt đầu thiết kế phần mềm này bằng C++, một ngôn ngữ mà phần lớn các nhà lập trình đều tán dương bởi bản chất hướng đối tượng của nó. Tuy nhiên, Gosling đã nhanh chóng nhận ra rằng C++ không phù hợp với dự án mà ông và đồng nghiệp của ông đang làm. Họ mắc phải rắc rối với những khía cạnh phức tạp của C++ như là sự kế thừa của nhiều lớp và các lỗi chương trình như sự hổng bộ nhớ. Gosling đã sớm quyết định rằng ông sẽ phải nghĩ đến một ngôn ngữ máy tính đơn giản khác mà sẽ tránh được tất cả những rắc rối ông đã gặp đối với C++.
Mặc dù Gosling không quan tâm đến sự phức tạp của ngôn ngữ như C++ nhưng ông thực sự thích cú pháp cơ sở và đặc điểm hướng đối tượng của ngôn ngữ. Vì vậy, khi thiết kế ngôn ngữ mới ông đã dùng C++ như mô hình và bỏ đi tất cả những điểm của C++ làm cho ngôn ngữ này khó sử dụng trong dự án điều khiển thiết bị điện tiêu dùng của ông. Khi hoàn thành dự án thiết kế ngôn ngữ, ông đã có một ngôn ngữ lập trình mới mà ông đặt tên là Oak. (Oak có nghĩa là cây sồi).
Oak được sử dụng đầu tiên trong một dự án có tên là Green. Đội phát triển cố gắng thiết kế một hệ thống điều khiển sử dụng trong nhà. Hệ thống điều khiển này giúp người sử dụng thao tác với một danh sách các thiết bị như TV, đầu video, đèn và máy điện thoại, tất cả từ một máy tính gọi là *7 (Star Seven).
Bước tiếp theo cho Oak là dự án video theo yêu cầu (video on demand _ VOD ), trong đó ngôn ngữ được sử dụng như nền tảng cho phần mềm điều khiển một hệ thống TV. Mặc dù cả *7 và VOD đều không trở thành những hàng hoá thực tế nhưng chúng cũng đem lại cho Oak một cơ hội để phát triển và trưởng thành. Cùng thời gian này Sun Micosystems khám phá ra rằng tên “Oak” đã được dùng trong một công nghệ khác và họ đã đổi tên “Oak” thành “Java” (Java là tên một hòn đảo ở Indonesia, nơi có trồng loại cà phê nổi tiếng), như vậy trong tay họ có một ngôn ngữ vừa mạnh vừa đủ đơn giản.
Quan trọng hơn, Java là một ngôn ngữ cơ sở trung lập, điều này có nghĩa là các chương trình phát triển với Java có thể chạy trên bất kỳ hệ thống máy tính nào mà không cần thay đổi. Hệ cơ sở cố định (platform-independence) này có được do việc sử dụng một format đặc biệt để dịch các chương trình Java. File format này gọi là byte_code, có thể được đọc và xử lý bởi bất kỳ hệ thống máy tính nào có trình thông dịch Java. Trình thông dịch Java, tất nhiên phải được viết một cách đặc biệt cho hệ thống mà trên đó nó sẽ chạy.
Năm 1993, sau khi World Wide Web thay đổi từ các văn bản dạng Text sang một môi trường giàu đồ hoạ, đội phát triển Java nhận thấy rằng ngôn ngữ mà họ phát triển sẽ rất hoàn hảo cho các chương trình Web. Đội đã đề cập đến khái niệm về các Applet trên Web. Đây là một chương trình nhỏ có thể được chứa trong các trang Web và thậm chí sẽ tiến xa hơn như tạo ra được một Web browser (bây giờ gọi là HotJava) mà đã chứng minh được sức mạnh của nó.
Trong quý hai năm 1995, Sun Microsystems đã chính thức công bố Java. Ngôn ngữ mới này đã nhanh chóng trở thành một công cụ mãnh mẽ để phát triển các ứng dụng trên Internet. Netscape Communications, công ty phát triển Netscape Navigator
đã thêm chức năng hỗ trợ Java trong bản Netscape Navigator 2.0 mới. Các công ty phát triển phần mềm Internet khác cũng theo hướng này, trong đó có cả Microsort. Microsort cũng đưa chức năng hỗ trợ Java vào Internet Explorer 3.0. Sau hơn năm năm phát triển, Java đã tìm được ngôi nhà cho mình.
Những quan niệm chung về Java
Có một số quan niệm chung về Java trong bản báo cáo đi kèm theo những bài bình luận sau đây:
Java là phần mở rộng của HTML
Java là một ngôn ngữ lập trình; HTML là một cách để miêu tả cấu trúc của một trang Web. Chúng không có một điểm chung nào ngoại trừ HTML được mở rộng thêm cho Jav2a applets trong trang Web.
Java là một ngôn ngữ lập trình dễ học.
Không có một ngôn ngữ nào vừa mạnh mẽ lại dễ dàng như là Java. Bạn thường phải phân biệt sự dễ dàng như thế nào khi lập chương trình trò chơi và khó khăn thế nào khi làm việc thực sự. Chính vì điều đó mà 4 chương đầu của quyển sách này sẽ giải quyết vấn đề đó. Bạn không cần biết nhiều công dụng và chức năng trong hơn 250 trang của ( siêu văn bản) Application Programming User’s Guid nhưng bạn cần phải biết một số trong đó rõ ràng theo thứ tự khi bạn dùng Java trong các vấn đề thực tế.
Java là một môi trường dễ dàng cho việc lập trình
Java sẽ trở thành một ngôn ngữ lập trình phổ biến cho mọi nền tảng
Tất cả các chương trình java đều chạy bên trong trang Web.
Sự giới hạn của java cần cho CGI:
Trước khi Java bùng nổ trên Web chỉ có một cách để tạo ra các trang Web tương tác có giới hạn là sử dụng Common Gateway Interface mà nhiều ngươì chỉ biét tên gọi CGI của nó.
(Java là ngôn ngữ lập trình độc lập Platform)
TẠI SAO THIÊN HẠ LẠI CHUỘNG JAVA NHƯ VẬY
Nếu bạn đã từng dạo quanh Internet, lướt trên các trang Web chắc hẳn bạn đã đụng nhiều đến những bài viết, quảng cáo, trang trình diễn về Java. Ngay gần đây nhiều cuộc hội tảo về CNTT người ta cũng thường nhắc tới Java. Vậy tại sao người ta lại chuộng Java như vậy ?
Java là ngôn ngữ lập trình hướng đối tượng, phục vụ đắc lực cho lập trình mạng, Java đã góp phần đắc lực vào công cuộc cách mạng phần mềm. Ngày nay việc trao đổi thông tin giữa những máy tính với nhau là nhu cầu không thể thiếu được, đặc biệt là việc mạng hoá toàn cầu thì vai trò của Java ngày càng chiếm ưu thế.
Vậy Java so với các ngôn ngữ lập trình khác có gì đặc biệt ?
Trong quá trình phát triển của ngôn ngữ lập trình thì các ngôn ngữ ra đời trước gần với cấu trúc máy tính hơn, ngược lại các ngôn ngữ lập trình sau thì càng gần với con người hơn, gần với ngôn ngữ con người hơn. Các ngôn ngữ lập trình được chia thành hai loại : Ngôn ngữ lập trình bậc thấp (như Assembler) và ngôn ngữ lập trình bậc cao (Turbo Pascal, C, Java…). Với một công việc cần giải quyết thì người lập trình phần đông sẽ chọn ngôn ngữ lập trình bậc cao, nó tiện cho việc giao tiếp, mô tả, đặc biệt là giao diện đồ hoạ thì lại không thể thiếu được trong các ứng dụng ngày nay. Java có không ít những yếu điểm nhưng cũng có những thế mạnh của nó, là một ngôn ngữ lập trình mạng, có thể viết những ứng dụng hệ thống trên mạng, như viết ứng dụng truyền tệp dữ liệu giữa các máy với nhau trên mạng. Với công việc như trên thì có nhiều công cụ, phương pháp để giải quyết nhưng khi dùng ngôn ngữ Assembler thì chương trình có thể lên tới vài trăm dòng như vậy sẽ rất vất vả với những nhà lập trình, nhưng nếu dùng Java thì công việc được giảm đi rất nhiều, khi đó chỉ cần tới vài chục dòng lệnh ngắn gọn là xong.
Liệu Java có khó học hơn assembler không ? Vấn đề này hoàn toàn phụ thuộc vào người học. Mỗi ngôn ngữ lập trình đều có những cái khó đối với người học. Ngôn ngữ Assembler khi sử dụng thì người lập trình cần phải hiểu được cơ chế cấp phát, sắp xếp bộ nhớ, các vòng lặp của bộ xử lý. Còn cái khó của Java lại là cách thức lập trình hướng đối tượng, các trường, xử lý sự kiện, xử lý đã luồng và tương tác giữa các hệ điều hành với nhau trên mạng…, Java còn có ưu điểm hỗ trợ đồ hoạ tốt, trợ giúp trực tuyến cho người lập trình. Ngược lại thì các ưu điểm trên của Java thì Assembler lại không có được. Sơ qua như vậy ta cũng biết được Java có rất nhiều ưu điểm, phù hợp với sự phát triển công nghệ, công cuộc mạng hoá toàn cầu chắc hẳn mọi ngươif sẽ chuộng hơn.
(Theo en.wikipedia.org – www.vnpower.org)
