วันเสาร์ที่ 21 มิถุนายน พ.ศ. 2551

จาวา

Summary
จาวา (Java) คืออะไร ? ถ้าเราดูความหมายของคำว่า จาวา จะมีความหมายหลายอย่าง ได้แก่

  • ภาษาจาวาที่ใช้เขียนโปรแกรมจาวา
  • Java platform ที่ใช้ในการรันโปรแกรมจาวา
  • เครื่องดื่มกาแฟ (แสลงในภาษาอังกฤษ) นี่เป็นเหตุผลว่าทำไมเรามักเห็นปกหนังสือจาวามีแก้วกาแฟอยู่เสมอ
  • เกาะชวาในประเทศอินโดนิเซีย (เกาะชวา จะเขียนในภาษาอังกฤษเป็น Java)

ความหมายที่เราคุ้นเคยก็คงจะเป็นภาษาจาวาและ Java platform ที่รันโปรแกรมจาวา แต่ถ้าเรามองจาวาในมุมกว้าง จาวาจะเป็น technology ที่ใช้ในการพัฒนาโปรแกรมแบบต่าง ๆ ซึ่งได้แก่ application, applet, web application (servlet & JSP), EJB, และ midlet โดยโปรแกรมเหล่านี้จะมีลักษณะพิเศษที่ต่างจากโปรแกรมที่เขียนขึ้นในภาษาอื่น อย่าง C หรือ C++ คือสามารถทำงานได้หลาย platform* (อย่างเช่น Windows, Solaris, Linux) โดยไม่จำเป็นต้องเขียนใหม่ หรือ compile ใหม่ ทำให้เราสามารถใช้โปรแกรมเดิมที่เคยพัฒนามาแล้วบน platform หนึ่งไปใช้งานบน platform อื่น ๆ ได้โดยง่าย ซึ่งช่วยประหยัดเวลาและทรัพยากรในการที่จะทำให้โปรแกรมหนึ่งทำงานได้มากกว่าหนึ่ง platform ตัวอย่างเช่น ถ้าเราเขียนโปรแกรมจาวาขึ้นมาบน Windows โปรแกรมที่เราเขียนขึ้นนี้ก็สามารถที่จะทำงานบน Solaris, Linux หรือ Mac ได้โดยไม่ต้องแก้ไขอะไรเลย ไม่ต้อง compile ใหม่ เราสามารถนำ class files ของโปรแกรมที่เราเขียนขึ้นไปใช้งานบน platform อื่น ๆ ได้ทันที


เทคโนโลยีจาวา มีองค์ประกอบหลักที่สำคัญสองอย่าง ที่ทำให้โปรแกรมจาวาสามารถทำงานได้มากกว่าหนึ่ง platform คือ

  • ภาษาจาวา ซึ่งเป็นภาษาแบบวัตถุที่ใช้ในการเขียนและพัฒนาโปรแกรมจาวา
  • Java platform คือ platform หรือสภาพแวดล้อมที่ใช้ในการรันโปรแกรมจาวา โปรแกรมจาวาจะทำงานบน Java platform เท่านั้น Java platform จะประกอบไปด้วยสองอย่าง คือ Java VM (JVM) และ runtime library โปรแกรมจาวาที่เราเขียนขึ้นจะทำงานบน platform ใดก็ได้ที่มี Java platform ทำงานอยู่

ทำไมหลายคนถึงเลือกใช้จาวา ? จาวามีข้อดีหลัก ๆ อยู่หลายข้อ ดังนี้

  • โปรแกรมจาวาที่เขียนขึ้นสามารถทำงานได้หลาย platform โดยไม่จำเป็นต้องแก้ไขหรือ compile ใหม่ ทำให้ช่วยลดค่าใช้จ่ายและเวลาที่ต้องเสียไปในการ port หรือทำให้โปรแกรมใช้งานได้หลาย platform
  • ภาษาจาวาเป็นภาษาเชิงวัตถุ ซึ่งเหมาะสำหรับพัฒนาระบบที่มีความซับซ้อน การพัฒนาโปรแกรมแบบวัตถุจะช่วยให้เราสามารถใช้คำหรือชื่อ ต่าง ๆ ที่มีอยู่ในระบบงานนั้นมาใช้ในการออกแบบโปรแกรมได้ ทำให้เข้าใจได้ง่ายขึ้น
  • ภาษาจาวามีความซับซ้อนน้อยกว่าภาษา C++ ทำให้ใช้งานได้ง่ายกว่าและลดความผิดพลาดได้มากขึ้น
  • ภาษาจาวามีการตรวจสอบข้อผิดพลาดทั้งตอน compile time และ runtime ทำให้ลดข้อผิดพลาดที่อาจเกิดขึ้นในโปรแกรม และช่วยให้ debug โปรแกรมได้ง่าย
  • ภาษาจาวาถูกออกแบบมาให้มีความปลอดภัยสูงตั้งแต่แรก ทำให้โปรแกรมที่เขียนขึ้นด้วยจาวามีความปลอดภัยมากกว่าโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น
  • มี IDE, application server, และ library ต่าง ๆ มากมายสำหรับจาวาที่เราสามารถใช้งานได้โดยไม่ต้องเสียค่าใช้จ่าย ทำให้เราสามารถลดค่าใช้จ่ายที่ต้องเสียไปกับการซื้อ tool และ s/w ต่าง ๆ


อย่างไรก็ตาม จาวาเองก็มีข้อเสียอยู่ด้วยเหมือนกัน ได้แก่

  • ทำงานได้ช้ากว่า native code (โปรแกรมที่ compile ให้อยู่ในรูปของภาษาเครื่อง) หรือโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น อย่างเช่น C หรือ C++ ทั้งนี้ก็เพราะว่าโปรแกรมที่เขียนขึ้นด้วยภาษาจาวาจะถูกแปลงเป็นภาษากลางก่อน แล้วเมื่อโปรแกรมทำงานคำสั่งของภาษากลางนี้จะถูกเปลี่ยนเป็นภาษาเครื่องอีกทีหนึ่ง ทีล่ะคำสั่ง (หรือกลุ่มของคำสั่ง) ณ runtime ทำให้ทำงานช้ากว่า native code ซึ่งอยู่ในรูปของภาษาเครื่องแล้วตั้งแต่ compile โปรแกรมที่ต้องการความเร็วในการทำงานจึงไม่นิยมเขียนด้วยจาวา
  • tool ที่มีในการใช้พัฒนาโปรแกรมจาวามักไม่ค่อยเก่ง ทำให้หลายอย่างโปรแกรมเมอร์จะต้องเป็นคนทำเอง ทำให้ต้องเสียเวลาทำงานในส่วนที่ tool ทำไม่ได้ ถ้าเราดู tool ของ MS จะใช้งานได้ง่ายกว่า และพัฒนาได้เร็วกว่า (แต่เราต้องซื้อ tool ของ MS และก็ต้องรันบน platform ของ MS)

*platform คือสภาพแวดล้อมที่โปรแกรมทำงานอยู่ ส่วนมากเราจะพูดถึง platform หนึ่ง ๆ โดยอิงจากระบบปฏิบัติการที่ใช้ (operating system) และ hardware ที่ใช้ อย่างเช่น

  • Windows platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Windows ซึ่งทำงานโดยใช้ CPU x86 ของ Intel
  • Linux platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Linux ซึ่งทำงานโดยใช้ CPU ตระกูล x86 ของ Intel
  • Solaris/SPARC platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Solaris ซึ่งทำงานโดยใช้ CPU SPARC
  • Solaris/x86 platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Solaris ซึ่งทำงานโดยใช้ CPU ตระกูล x86 ของ Intel

ไม่มีความคิดเห็น: