จากข่าว แอปเปิลจะทิ้ง Java ใน Mac OS X 10.7 Lion? ซึ่งได้รับคำยืนยันจากจ็อบส์ว่าควรเป็นหน้าที่ของออราเคิล
James Gosling บิดาแห่ง Java ได้ออกมาตอบโต้สตีฟ จ็อบส์ ผ่านบล็อกของตัวเองว่า การที่แอปเปิลบอกว่า "ซัน/ออราเคิลเป็นผู้พัฒนา Java บนทุกแพลตฟอร์ม" นั้นไม่จริง เพราะ IBM/HP ต่างก็พัฒนา Java ของตัวเอง รวมไปถึงระบบที่ไม่ค่อยมีคนรู้จักอย่าง Azul Systems ด้วย
Gosling ยังบอกอีกว่าเหตุผลที่ซันทำ JVM บนวินโดวส์ก็เพราะ Microsoft JVM มีปัญหาเรื่องการทำงานข้ามแพลตฟอร์ม ส่วนเหตุผลที่พัฒนา JVM สำหรับลินุกซ์เนื่องจากไม่มีคนทำ
กรณีของแอปเปิล ในอดีตแอปเปิลเป็นฝ่ายยืนยันว่าจะทำ Java เอง เพราะแอปเปิลต้องการดึงดูดให้คนมาใช้ Mac OS X เยอะๆ ในช่วงแรก แต่เมื่อ Mac OS X ติดตลาด แอปเปิลก็เปลี่ยนนโยบายมาหนุนให้นักพัฒนาเลิกเขียนโปรแกรมแบบข้ามแพลตฟอร์ม และแนะนำให้เขียนโปรแกรมแบบ native ของ Mac OS X แทน
เหตุผลอีกข้อคือช่วงแรกแอปเปิลปรับแต่ง JVM ของตัวเองไปเยอะมาก ทำให้ในรุ่นถัดๆ มายิ่งยากต่อการพัฒนา ประเด็นสำคัญที่เป็นปัญหาคือวิธีการทำ antialias ของซันกับแอปเปิลที่แตกต่างกัน Gosling เล่าว่าโปรแกรมเมอร์แก้ปัญหานี้ไม่ยากนัก แต่เคยมีบริษัทหนึ่งไปบังคับให้แอปเปิลเพิ่มวิธีเรนเดอร์แบบที่แอปเปิลไม่ต้องการ และบริษัทนั้นคือออราเคิล
ที่มา - James Gosling
Comments
สรุปคือศาสดาขี้เกียจทำ + อยากให้เขียนโปรแกรมภาษาตนอยากให้ใช้เลยหาข้ออ้าง
เจอบริษัทขี้เกียจจริงๆแล้ว
เหมือนตอนแรกขอแบบ ทำไงก็ได้ ให้คนมาใช้ของตัวเองเยอะๆ พอใหญ่แล้วก็ เขี่ยทิ้ง
Don't Be Evil
@Mixmerize
It's Evil!
Think Different
my blog
ทำไมรู้สึกแอปเปิ้ลเป็นศัตรูกับทุกคนเลยแฮะ แม้กระทั่งผู้ใช้ยังต้องเรียกวิธีแฮ็คเครื่องตัวเองว่าแหกคุกเลย -*-
ดังแล้วแยกวง
เขียน native จะได้ exclusive
ดร่ามาแล้วสิ ตอนแรกก็เห็นด้วยกับจ็อบส์ว่า บริษัทที่คิดตรงทำมาลงเอง
ไปๆมาๆ จ็อบดันมาขี้เกียจเองซะนี้
กลับกันแฮะ
ผมคิดว่า ไม่ว่าเจ้าของแพลทฟอร์มจะขี้เกียจหรืออะไร มันก็เป็นหน้าที่ของของที่อวดตัวเองนักหนาว่า Write once run anywhere ที่จะต้องทำให้ตัวเอง Run anywhere ให้ได้อย่างปากว่า
และยิ่งเป็น Java ที่เรื่องมากกับการให้ JVM ทุกตัว มีมาตรฐานเดียวกัน(ถึงกับไปฟ้อง Microsoft ที่อุตส่าห์เพิ่มฟีเจอร์ดีๆให้ภาษา Java แทนที่จะรับมาปรับปรุง)
การที่เจ้าของแพลทฟอร์มต้องมานั่งทำเอง ถือเป็นความผิดพลาดของ Java เอง ด้วยซ้ำ
พูดแบบหยาบคายคือผมอยากบอกว่า James และ Java มันเรื่องมากขนาดนั้น ให้มันนั่งทำให้คนอื่นเองดีกว่าเถอะ
ไอ้การที่ออกมาพูดตอบโต้นี่ก็ปัดสวะยังไงอยู่
(ถึงกับไปฟ้อง Microsoft ที่อุตส่าห์เพิ่มฟีเจอร์ดีๆให้ภาษา Java แทนที่จะรับมาปรับปรุง) << ไม่ทราบว่ามีอะไรดีๆบ้างครับที่ Microsoft (เคย)เพิ่มเข้าไปให้พอดีเกิดไม่ทัน
โดยหลัก ๆ แล้วเป็นเรื่องของ Native Interface ล่ะมั้งครับ ผมเองก็เกิดไม่ทันเหมือนกัน
จำไม่ผิดจะมี Delegate กับ Value Type ครับ
และจำไม่ผิด น่าจะมีมากกว่านี้นะ
ที่จำได้คือ เรื่อง JIT ครับที่ทำให้แล้ว Java ทำงานเร็วขึ้น ปัจจุบัน Android ก็ทำ JIT เสริมเลยเป็นกรณีเดียวกันกับ Microsoft ทำให้ Oracle มั่นใจว่าชนะคดีแน่นอน เพราะมันเคยชนะมาก่อนแล้วนั่นเอง
คนที่ทำจำได้ว่าคือ Anders Hejlsberg ซึ่งต่อไปเฮียแกไปทำ .Net ครับ
ผมสงสัยว่าถ้าไมโครซอฟต์จะทำฟีเจอร์ดีๆ ทำไมหลังจากนั้นถ้าอยากเพิ่ม
ไม่ยื่นเรื่องเสนอเข้า JCP ที่เป็นองค์กรณควบคุมมาตรฐานล่ะครับ
ปล.ผมไม่ได้ตามข่าวเรื่องนี้เท่าไหร่นักนะครับ
เห็นด้วยครับว่า หากเคลมว่า Write once run anywhere ก็ควรจะรับผิดชอบด้วย
รู้สึก Java จะกลายเป็นภาษาที่มีปัญหาเรื่อง platform มากที่สุดไปเสียแล้ว เป็นอะไรที่ irony มาก ๆ
Come back to C++ or use & improve D language.
ก็เจ้าของบ้านบอกไม่ต้องมาทำตรูจะทำเองแล้วเป็นคุณจะหน้าหนาไปทำอีกไหม?
ผมว่าแนวคิดของ mokin กับ Thaina ถูกทั้งคู่แหละครับ
อ่ะฮ่ะคิดเหมือนกันแต่พูดมาไม่เหมือนกันมั้งครับ
ผมว่าโดยหลักแล้ว ไงฝั่งจาวาต้องทำ ยิ่งสโลแกนตั้งแบบนั้นยิ่งต้องทำเองครับ
แต่ทางระบบปฎิบัติการเองต้องเป็นตัวหนุนให้ผูผลิตด้วยครับ
อืม.. ไม่รู้จะพูดสาธยายอะไรดี ขอเป็นประโยคนี้แล้วกันครับ
"น้ำพึ่งเรือ เสือพึ่งป่า" แม้จะแยกกันอยู่ได้ แต่เราพึ่งพากันจะดีกว่า
ปัญหานี้มันสำคัญกว่าที่คุณคิดน่ะครับ การที่ Sun ฟ้อง Microsoft ในตอนนั้นก็ถือเป็นเรื่องที่ถูกแล้ว ไม่เช่นนั้นการเขียนโปรแกรมบนจาวา ก็จะมีปัญหาเฉกเช่นเดียวกับการเขียน Javascript ให้รองรับทุก Browser คือ ไม่สามารถเชื่อถือ Spec กลางได้ต้องมาทดสอบทุกระบบเอง ว่าฟังก์ชั่นหรือการทำงานที่จะใช้งาน สามารถทำงานได้บนระบบปฏิบัติการใดได้บ้างอีก เมื่อเป็นเช่นนี้คำว่า Write Once Run Anywhere ก็จะเสื่อมลงไป ถ้า Microsoft ต้องการเพิ่มอะไรก็ควรจะเสนอให้เป็นมาตรฐาน ถ้าของมันดีจริงๆ เรื่องก็ผ่านอยู่แล้ว หรือจะปรับปรุงอะไรตรงส่วนไหนก็ต้องทำให้มันทำงานบนมาตรฐานกลางได้ ไม่งั้นมาตรฐานจะกลายเป็นกระดาษกองหนาที่ไม่มีประโยชน์อะไร เนื่องจากมันมี Spec ที่อยู่นอกมาตรฐานอยู่เต็มไปหมด
ส่วนเรื่องใครควรจะ Implement Java ลงบน OS ต่างๆ หลักก็ต้องเป็นหน้าที่ของ Oracle เองนี่แหละ เพราะเป็นเจ้าของของ Java อยู่ แต่ถ้ามีเจ้าของ OS มาช่วยทำก็ย่อมเป็นเรื่องที่ดีกว่าให้ Oracle ทำเองคนเดียว เพราะไม่มีใครที่จะสามารถเข้าถึงฟังก์ชั่นและการทำงานของ OS ได้ดีกว่าเจ้าของ OS หรอก ดังนั้นผมจึงไม่มองว่าการที่เจ้าของ OS ออกมาช่วยทำ Java เป็นความผิดพลาดของ Java เลย แต่เป็นการแสดงให้เห็นว่า Java มีความสำคัญต่อผู้ใช้งานมาก จนเจ้าของ OS ยอมออกตัวมาช่วยทำให้ด้วย
รายละเอียดเพิ่มเติม Wikipedia - Java (programming language)
ผมก็ถึงได้บอกไงว่า ถ้าอยากให้ยึดมาตรฐานขนาดนั้น
เขียนอะไรเพิ่ม ไม่ได้ทั้งนั้น ขัดมาตรฐาน
ซันก็กรุณาเอาไปทำเองเหอะึครับ
ซันฟ้อง ครับ มันถูกตามกฏ ตามมาตรฐานครับ
แต่ถ้ากฏมันผิด มาตรฐานมันไม่ดี หรือล้าสมัย เมื่อไหร่มันจะได้พัฒนาล่ะครับ
มันเป็นเรื่องปกติมากครับ ที่มาตรฐาน มันจะตัดสินใจผิดพลาด โดยเฉพาะเรื่องการพัฒนา การเพิ่มอะไรต่างๆ
ของที่ดี ก็เห็นว่าไม่ดี จนกระทั่งมีคนยัดเข้ามาให้ใช้ แล้วคนมันใช้กันทั่วบ้านทั่วเมือง ถึงได้ตระหนักว่ามันคงจะดี
แ่ต่ไม่เคยรับผิดชอบอะไรเลยกับค่าเสียเวลา เสียโอกาส ที่คนที่นั่งยึดมาตรฐานอันนั้นต้องเสียไปกับความห่วยตรงนี้
อย่าง HTML 5.0 ดูยังไงก็พลาด เพราะถ้ามันไม่ดีจริง ก็คือมันพลาด
ถ้ามันดี คือมันมาช้าาาาาา ไปมากๆ ก็คือความผิดพลาดของ W3C อีกอยู่ดี
ทั้งที่มาตรฐานหลายๆอย่าง มักจะมีองค์กรณ์ที่ทำหน้าที่ "พัฒนามาตรฐาน" โดยเฉพาะ
กลับโดนตีแสกหน้าด้วยฟีเจอร์สำคัญๆตลอดมา
นี่มันทำงานกันยังไง?
ดูง่ายๆ Java ช้า มีคนบ่นเป็นสิบๆ ปี ทุกวันนี้ก็ยังโดนบ่นเรื่องนี้ ซันมันทำงานกันยังไง
OpenGL โดน NVidia กับ ATi แย่งกันเพิ่มฟีเจอร์ ไม่เคยตามทัน ล้าหลัง DirectX โครนอสนี่มันทำงานกันยังไง?
ถ้ามาตรฐานมันไม่ใช่ของที่ดีที่สุด
มันก็แค่ขยะครับ คุณพูดถูกแล้ว เอาไปชักโครกเถอะ
ที่ผมบอกว่า มันเป็นความผิดพลาดของ Java ที่คนทำ OS ต้องออกมาทำเอง
มันก็คือความผิดพลาด ที่ตัวเอง ที่โฆษณาตัวเองนักหนา ว่า Write once run anywhere
มันยังไม่ได้ anywhere จริง แต่ต้องรอให้คนอื่นมาทำ พูดหยาบคายคือ Java มันตอแหล
สมควรขอขอบคุณเจ้าของ OS อื่นเสียด้วย ที่อุตส่าห์ช่วยเหลือให้ Java มัน anywhere ได้จริง
ไม่ใช่มาบอกว่า ก็คนอื่นเขาขี้เกียจทำ หรืออ้างว่า ก็ติดนั่น ติดนี่ ไม่มี API
งั้นก็อย่าโฆษณาแต่แรก ว่า anywhere พูดให้กันชัดๆว่า Write once แล้ว run ได้แค่ somewhere
ซันก็ถูกวิจารณ์อย่างหนักว่าตั้ง JCP ขึ้นมาแล้วกั๊กเอาไว้คนเดียวอยู่แล้วนี่ครับ
ผมก็เห็นด้วกับคุณหลายจุดนะ แต่ถ้าเรามาลองนึกดูดีๆ การเป็นมาตรฐานไม่มีความจำเป็นว่าต้องเป็นสิ่งที่ดีที่สุดหนิครับ ผมว่ามันน่าจะเป็นหลักการของการอยู่ร่วมกันมากกว่า ผมไม่อยากจะนึกถึงยุคที่ผมต้องเขียนเว็บแตกต่างกันถึง n ตามจำนวน n browser ในตลาด แค่ยุคนี้ก็แย่แล้ว
เห็นด้วยครับมาตรฐานคือจุดหลักที่ควรจะมีร่วมกัน ไม่จำเป็นต้องดีที่สุด เพราะดีที่สุดอาจแตกต่างกันออกไปตามการใช้งาน
ผมเห็นด้วยว่า ไม่ว่าใครที่ทำอะไรเกี่ยวข้องกับมาตรฐาน ก็ควรจะรองรับมาตรฐานให้ได้
Browser ทุกตัวควรรัน HTML มาตรฐานได้อย่างสมบูรณ์ทั้งหมดไม่ผิดเพี้ยน ผมก็เห็นด้วย
นั่นคือสิ่งที่มาตรฐานควรจะเป็น กำหนดแต่สิ่งที่ "ดีที่สุด" อยู่แล้ว สิ่งที่มันไม่ชัวร์ว่าจะดี อย่าใส่เข้าไป
และถ้าเกิดมีรูรั่ว ช่องโหว่ ก็ต้องรีบอุดให้เร็วที่สุด
หากว่ามีจุดไหนที่มันไม่ได้ "ดีที่สุด" ก็ต้องเปลี่ยนมันให้เร็ว
สิ่งที่เหลือนอกเหนือจากนั้นคือฟีเจอร์ที่ คนที่เอามาตรฐานไปทำ จะเพิ่มเติมอะไรก็ได้ ควรจะทำได้อย่างอิสระั
ถ้ามาตรฐานจะมี Guideline ก็ควรเป็นแค่ Guideline
ตอนที่ Microsoft ทำ JVM เอง ผมก็เห็นว่าไมโครซอฟท์รองรับมาตรฐานทั้งหมดของ Java
โปรแกรมจาว่าทุกโปรแกรมในโลกล้า รันบน PC ได้ ก็รันบน Windows ได้
สิ่งที่แตกต่างคือมีส่วนเพิ่มเติมขึ้นมาเป็นเอกเทศ
กลับโดนฟ้องว่าทำเกินมาตรฐาน ขัดมาตรฐานที่ว่า โค้ดจาว่าต้องรันได้ทุกแพลทฟอร์ม ทั้งที่เป็นฟีเจอร์ที่ทำให้จาว่าดีขึ้น
นี่แหละครับ คือมาตรฐานส่วนที่มีขยะในระบบ ควรชักโครกทิ้ง ถ้าไม่ทิ้งส่วนนั้น ก็ทิ้งมันทั้งมาตรฐานไปเลยดีกว่า
สิ่งที่ Microsoft ทำก็คือเพิ่ม keyword ที่ชื่อว่า Delegate ด้วย keyword ตัวนี้ทำให้ Java สามารถเข้าถึง Windows API และ COM components ได้โดยตรง ผลก็คือ java ที่เขียนและ compile ด้วย Visual J++ ไม่ compatible กับ Java เจ้าอื่น พูดง่ายๆ ก็คือ java ที่เขียนและ compile ด้วย Visual J++ เมื่อได้เป็น class แล้ว ไม่สามารถนำ class นั้นไปรันบน JVM ไปรันบน JVM ของเจ้าอื่นได้ ซันเลยฟ้อง Microsoft
ไม่ค่อยเข้าใจด้านเทคนิค แต่รู้ว่าโปรแกรมอันไหนที่เป็น Java มันจะช้า ไม่รู้ว่าเดี๋ยวนี้เร็วหรือยัง ไม่ได้ใช้นานมากแล้ว
ยังช้าอยู่เหมือนเดิม ทุกวันนี้ใช้ Oracle SQL Developer (เขียนด้วย Java) แล้วหงุดหงิดมาก
บอกว่า Java ช้าระวังมีคนงอน
Java ไม่ได้ช้าครับ แค่ใช้ memory เยอะ
+1 ครับ กินแรมพอๆกับ OS อีกตัวนึงเลย
อีกทั้งยังทำงานข้าม OS ไม่ได้ด้วย (หมายถึงไม่ได้100%)
ดังนั้นขอทิ้ง JAVA ไปทำ WebApp ดีกว่า (แต่ก็ช้าพอๆกัน)
ผมเลิกใช้เน็ตแวร์เพราะจาวา ผมเลิกหัดเขียนจาวาก็เพราะมันช้า แลไม่สนใจใช้จาวากับเวบก็เพราะมันอืด
ผมดีใจด้วยที่จะเลิกใช้มันแล้วมีตัวอื่นทดแทนที่ดีกว่า
ช้าครับในหลายแง่
1. GUI ช้า โดยเฉพาะ swing ที่การตัดสินใจการออกแบบเชิงสถาปัตยกรรมเป็นตัวทำให้มันช้า
การออกแบบรายละเอียดภายในก็ทำให้มันช้า UI respond time แย่
2. startup time ช้า เพราะไม่มีระบบจัดการ module ที่ดีพอ เคยแก้ไขด้วยวิธีอื่นมาแล้วก็ยังไม่ดีเท่าที่ควร
ก็มีความพยายามของผู้พัฒนาระดับแกนนำ ออกมาตรฐานใหม่ ๆ ปรับปรุงให้มันเร็วขึ้นอยู่ครับ
ทำงานอยู่แรมหมด SWAP พุ่ง
อืดเลย
lewcpe.com, @wasonliw
ถ้าอย่างนั้นจริง ๆ ผมว่า JAVA ควรมาตรฐานเดียวกันทุกเพลตฟอร์มนะครับ
ทำให้ ลินุกซ์เพราะไม่มีคนทำ Microsoft อีก แล้วทำไมไม่ทำให้ Apple ??
อ่าน ๆ มาเหมือน JAVA ขี้เกลียจเองหรือเปล่า
May the Force Close be with you. || @nuttyi
พี่ Jobs Drift ขิง ขิง อีกแย้วเหรอ ?
ผมว่ามันผิดที่ Apple ตั้งแต่แรกครับ บน MacOSX จะติดตั้ง java ได้จะโหลดได้จาก apple.com เท่านั้นไม่มีให้อยู่บน sun.com เลย ลงก็ต้องลงด้วย terminal set อะไรด้วยมือหมด(อันนี้หมายถึงเวอชั่นทีไม่ได้มากับ OSX) ไม่รู้อีตาจ๊อบคิดยังไงที่จะเอา sdk ของ java ออกไป
Be evil Be control
Blognone = 138.1 news/w เยอะมากๆ
มันเหมือนเรื่อง distributed vs centralized system , top down vs button up, closed vs opened
IBM vs Microsoft, Microsoft vs Sun, Unix vs Windows อุดมการณ์กับชีวิตจริง ดีกับชั่ว อยู่คู่โลกตลอดกาล
ทุกอย่างมีข้อดีข้อเสีย ต้องมีพรหมวิหาร ต้องสายกลางครับ
สาธุ แล้วสายกลางตามตัวอย่างที่ยกมานี่ยังไงครับ พอจะอธิบายได้ไหม
เค้าร่ายมนต์เก่งจริง ๆ คนหลงเยอะมาก ไล่ไม่ทัน
อยากเห็นภาพรวมต้องลองปะติดปะต่อดู
Mac App Store?
ไม่อนุญาติให้ app ที่ใช้ java เข้ามาขาย อนุญาติเฉพาะ native api กับ framework เดิม ๆ ของ apple
อยากพัฒนา software บน Mac App => ซื้อ เครื่อง Mac
ตัดมือตัดตีน Java ซะต่อให้ Oracle ทำตอนนี้ก็ต้องเริ่มที่ศูนย์ใหม่ source เดิมของ apple
development tool แบบ eclipse
ผู้ไม่นิยม java หลายคนตามไม่ทัน มันไม่ได้เกี่ยวกับ java ช้า หรือ ห่วยอะไรทั้งนั้น
ไม่ใช่เรื่อง cross platform ให้ software คุณภาพดีหรือไม่ดี แต่มันเกี่ยวกับ
ไปขวางทางหากินเขา
เขาต้องการ lock เข้าไปในระบบเขาให้มากที่สุดต่างหาก
ตอนนี้ชักคิดถึง กรณี browser ballot
มันน่าจะถูกนำมาบังคับใช้สำหรับ app store ด้วย
ผมใช้ java มาก็ปกติน่ะ ยิ่ง jre ตัวล่าสุด ผมว่าใช้ memory น้อยแล้วน่ะถ้าเทียบกับเทื่อก่อน
ผมยังคิดอยู่เลยว่าจะมานั่งทำ ให้ java มันติดตั้งในแต่ล่ะ platform ง่ายๆไม่ต้อง fix อะไรมากมาย
เช่นใน ubuntu ก็ใช้ .deb ไปเลยแบบนี้ จะได้รันง่ายๆ เหมือน mono ง่ายไปหมดเลย
ไงก็ขึ้นกับงานด้วยน่ะคับ อย่าลืม c++ กันล่ะโปรแกรมเมอรชาวไทย
ผมว่าเลิกเหอะครับ C++
เขียน C + C# ดีกว่า
หรือยังไง D ก็เป็นตัวเลือกที่น่าสนใจนะครับ
และยิ่งถ้ามันแทน C++ ได้ครบทุกงานด้วย
น่าจะถึงยุค Jump ได้แล้ว เหมือนที่ ASM -> C หรือ C -> C++
แต่ผมชอบ C++ แฮะ