Pages

วันอาทิตย์, กุมภาพันธ์ 24, 2556

[Blog] Java ดราม่าสำเร็จรูป ?


หลายๆ ครั้ง ที่เห็น หลายๆ Blog มีความพยามวาดภาพให้คนที่มาอ่าน
คอยจิ้น ( Imagine ) ตามไปว่า #จาวาค้างส์ บ้าง #จาวาพรุนส์ บ้าง
ก็พอเข้าใจ แต่สิ่งที่ไม่ค่อยเห็นด้วยในหลายๆ ครั้ง
คือความพยาม "ชี้นำ" โดยเอาข้อมูลที่ "พูดไม่หมด"
มาเป็นประเด็นให้คนที่มาอ่าน "ตามกระแส" จนบางครั้ง
ก็เป็นดราม่าใหญ่โตถึงขนาด แบน Account กันเลยทีเดียว ...

เคยออกตัวไว้ใน Blog เก่าๆ นานแล้วว่าใช้ Java เพื่อทำมาหากิน
และ Oracle ไม่ใช่พ่อ ดังนั้น ไม่มีเหตุผลอะไรที่ต้องเขียน "อวย" 
แต่ด้วย ปัญหาสุดฮอต เรื่อง Java โดนเจาะในตอนนี้ 
ในฐานะ Software Developer ที่ทำอยู่กับ Java
สิ่งที่ควรนำเสนอก็ ควรจะเขียนแบบไม่ Bias
มากกว่า "เลิกใช้มัน ไปใช้อย่างอื่นเถอะ" ซึ่งฟังแล้วดูเหมือน

Java เป็น Death Star ส่วน Oracle เป็น Dart Vader 
( ส่วนสาวกจะเปรียบดั่ง เสื้อแดง ปะทะ เสื้อเหลือง ก็มิปราณ ....  )
 
Java พรุนส์ จริงหรือ ? 
ว่ากันด้วยสัจธรรมของ Software Development  ที่ว่า
"ไม่มี Software ใดที่ไม่มี Bug"  ...
Java ก็เช่นกัน แต่ถ้าตามอ่าน Oracle Securiy Alert เป็นประจำ
หรือ ศึกษาที่มาของปัญหา ก่อนที่จะเอา Emo มาบรรเลงบน Keyboard
จะพบว่า การโดน"เจาะ" หนักๆ ที่ค้นพบจะกระทบ ...

issues CVE-2013-0422 (US-CERT Alert TA13-010A - Oracle Java 7 Security Manager Bypass Vulnerability) and another vulnerability affecting Java running in web browsers. These vulnerabilities are not applicable to Java running on servers, standalone Java desktop applications or embedded Java applications. They also do not affect Oracle server-based software.
นั่นหมายความว่า จะกระทบเครื่อง Server ที่เป็น Java ได้ก็ต่อเมื่อ
มี Developer รู้เท่าไม่ถึงการไปเล่น Web Browser แล้วเปิดเวปที่มี Vulnerability
บนเครื่อง Server ...  เท่านั้น ซึ่งก็ดูจะ Non-Sense มากกับองค์กรนั้นๆ
ที่ให้ Developer ไปเล่น web ที่มีโอกาสโดน attack บน Server ที่สำคัญๆ

ในเรื่องของความปลอดภัยระดับ end-user
โดยปกติ ถ้าหาก "กังวล" กับเรื่อง Security มากมาย
ก็ควรจะปิดทุก plug-ins บน Web Browser อยู่แล้ว
แต่ทำไงได้หากจำเป็นต้องใช้ Plugins ?

JRE รุ่นใหม่ๆ ก็มีระบบ Security เพียงพอ ที่จะ Acknowledge
ให้ user รู้ว่า " จะรัน Java ที่ไม่ Trust แล้วนะ บน Web Browser จะอนุญาต หรือเปล่า ? "


ซึ่งถ้าจะ impact กับระดับ end-user ได้นั้น
คงไม่พ้น user ที่ไม่คิดจะอ่านอะไร / ไม่คิดจะ update security
แล้ว ติด malware จาก web กระจาย ไม่ต่างกัน

Java ค้างส์ จริงหรือ ? 
วาทกรรมนี้ เป็นวาทกรรมที่ Bias แบบสุดติ่ง
เหมือนเราขับรถชน แต่ดันไปโทษ แก๊สโซฮอล์

ถ้า Software ที่ใช้มันค้าง ... ก็ควรโวยวายกับคนเขียน Software
มากกว่าจะไปโทษที่ภาษาที่ใช้เขียน Software ว่าไม่ดีเจ็ดแปดเก้าสิบ
แต่ถ้าหากคุณเป็นคนเขียน Software นั้นขึ้นมาเอง
คุณก็ควรรู้ตัวว่าความรู้ที่คุณมีมันไม่พอที่จะทำให้ Software นั้นดีได้ 
เลิกโทษภาษาเขียนโปรแกรม แล้วหันไปหาของที่คุณคิดว่าเหมาะสมกับงาน
นั่นน่าจะถูกต้องกว่า สำหรับการทำ Software Development

Java ใช้ทรัพยากรเครื่องเยอะ จริงหรือ ?
เยอะจริง ... เพราะมันเป็น "Java Virtual Machine"
แต่เคยมองกลับกันไหมว่า หากเราเปิด window ใน osx หรือเป็น linux บน window
สิ่งเหล่านั้นก็เป็น Virtual Machine เหมือนกัน
ทำไมเราถึง "ยอม" ให้ VM เหล่านั้น ใช้ทรัพยากรเครื่องได้เยอะๆ แต่กับ Java ไม่ได้ ?


สรุป

ในมุมของ Software Development มักจะมีคำพูดเสมอว่า
"ขึ้นอยู่กับการใช้งาน"
แม้ว่า java จะไม่ปลอดภัยในระดับ end-user
แต่มันก็มี workaround และ Knowledge Management
ที่สามารถสื่อสารให้ end-user เข้าใจ และ ระมัดระวังได้ดีกว่า
การบอกให้เลิกใช้ โดยยกแม่น้ำทั้ง 5 ว่า คนนั้น คนนี้ Evil ....

อาห์ ดูจะปกป้องมากเกินไปหรือเปล่า ...
แค่นี้ดีกว่า อุอิ