Red Hat ประกาศรับช่วงดูแลโครงการ OpenJDK 8 และ OpenJDK 11 ซึ่งเป็นรุ่นซัพพอร์ตระยะยาว (LTS) ต่อจาก Oracle ที่เป็นบริษัทแกนหลักของโลก Java
เรื่องนี้ไม่น่าประหลาดใจนัก เพราะ Red Hat เคยทำแบบนี้มาก่อนแล้วกับ OpenJDK 6 และ OpenJDK 7 เพื่อการันตีว่าลูกค้าของตัวเองจะมีแพตช์ของ OpenJDK ต่อไป แม้ Oracle หยุดซัพพอร์ตไปแล้ว เนื่องจากโมเดลธุรกิจของ Red Hat ขายซัพพอร์ต Java (เวอร์ชัน OpenJDK) บน RHEL ด้วย และล่าสุดเพิ่งเพิ่มการขายซัพพอร์ต OpenJDK บนวินโดวส์อีกช่องทางหนึ่ง
หลายคนอาจลืมชื่อ JavaFX กันไปแล้ว ความคืบหน้าล่าสุดของ JavaFX ในปีที่แล้วคือ ถูก Oracle ถอดออกจากแพ็กเกจของ Java ตัวหลัก (มีผลใน Java 11) ใครอยากใช้ต้องไปดาวน์โหลดโมดูลแยกกันเอง
JavaFX ยังถูกพัฒนาต่อในฐานะโครงการโอเพนซอร์ส OpenJFX โดยที่ Oracle ก็ไม่สนใจให้ทรัพยากรมาทำมากนัก
Oracle ออก Java 12 ตามนโยบายการออกรุ่นใหม่ทุก 6 เดือน โดยรุ่นนี้จะเป็นรุ่นซัพพอร์ตระยะสั้น ต่างจาก Java 11 ที่เป็นรุ่น LTS มีระยะซัพพอร์ตนาน 8 ปี (LTS ตัวหน้าคือ Java 17 กำหนดออกปี 2021)
ของใหม่ในเวอร์ชันนี้เน้นไปที่การแก้บั๊กและปรับปรุงฟีเจอร์เล็กๆ จำนวนมาก (ตามแนวทางของการออกรุ่นทุก 6 เดือน) ส่วนฟีเจอร์ใหญ่ที่น่าสนใจคือ Project Shenandoah ซึ่งเป็นการทดลองสร้าง garbage collector ตัวใหม่ที่มีระยะเวลาหยุดทำงานสั้น (low-pause-time), ปรับปรุงการทำงานบนสถาปัตยกรรม ARM 64 บิท (AArch64) ที่เดิมทีมี 2 แบบให้เหลือแบบเดียว เป็นต้น
เมื่อปลายปีที่แล้ว Amazon เปิดตัว Corretto หรือ OpenJDK เวอร์ชันของตัวเอง เพื่อใช้ทดแทน Java 8 SE ที่ Oracle เริ่มคิดเงินค่าใช้งาน
ล่าสุด Amazon Corretto 8 ที่เทียบเท่า OpenJDK 8 (เป็นเวอร์ชัน 8u202) มีสถานะเป็น Generally Available (GA) พร้อมใช้งานแล้ว สามารถดาวน์โหลดไปใช้งานได้ฟรี ทั้งบน Windows, macOS, Linux รวมถึงระบบปฏิบัติการ Amazon Linux 2 และมีเวอร์ชัน Docker image ให้ด้วย
Amazon ระบุว่าจะพัฒนา Corretto 11 ซึ่งเทียบเท่า Java 11 ที่เป็นรุ่น LTS ตามมาต่อไป
NetBeans โครงการ IDE โอเพนซอร์สยอดนิยมอีกตัวหนึ่งที่สืบทอดมาตั้งแต่ยุค Sun เดิม ปัจจุบันเปลี่ยนมือจาก Oracle มาเป็นโครงการภายใต้ Apache Software Foundation (ASF) ออกรุ่นใหม่ 10.0 แล้ว
นับตั้งแต่ปี 2013 เป็นต้นมา เฉลี่ยแล้ว NetBeans ออกรุ่นใหม่ปีละ 1 ครั้ง จนมาถึง NetBeans 8.2 ที่ออกในเดือนตุลาคม 2016 แต่เมื่อโครงการย้ายมาอยู่ใต้สังกัด ASF เต็มตัว ก็เปลี่ยนนโยบายหลายอย่าง ที่สำคัญคือเปลี่ยนมาออกรุ่นบ่อยทุก 6 เดือน
หลังออราเคิลเปลี่ยนนโยบายการปล่อยแพตช์ Java SE 8 ที่จะไม่มีแพตช์ต่อสาธารณะอีกต่อไปหลังจากมกราคม 2019 นี้ และทาง AWS ก็เข้ามาประกาศ Corretto ที่เป็นจาวาปล่อยแพตช์ฟรี ตอนนี้ Red Hat ก็เข้ามาตลาดนี้อีกรายด้วยการประกาศขายซัพพอร์ต OpenJDK บนวินโดวส์ด้วย
ปีนี้ไมโครซอฟท์เพิ่งโชว์ฟีเจอร์ IntelliCode ของ Visual Studio ที่ใช้ AI เรียนรู้โค้ดจากโครงการบน GitHub แล้วมาช่วยแนะนำการเขียนโค้ดให้เรา สถานะของมันยังเป็นโครงการทดลอง ต้องติดตั้งส่วนขยายเพิ่มเติม และรองรับเฉพาะภาษา C# (Visual Studio) และ Python (VS Code) เท่านั้น
หลังจาก Oracle จะคิดเงินการใช้ Java SE ในเชิงพาณิชย์ ก็มี vendor อีกหลายเจ้าที่ประกาศสนับสนุนการพัฒนา OpenJDK เช่น Red Hat หรือชุมชน AdoptOpenJDK ที่จะยังช่วยกันสนับสนุน Java รุ่นที่ Oracle เลิกพัฒนาให้ฟรีแล้ว
ปีนี้งาน JavaOne ที่เริ่มมาตั้งแต่ปี 1996 กลายเป็นงาน Oracle Code One และรวมเข้าเป็นส่วนหนึ่งของงาน Oracle OpenWorld โดยมีการสัมมนาหัวข้อที่เกี่ยวกับนักพัฒนาภาษาอื่นๆ เช่น Go, Rust, ไพธอน, จาวาสคริปต์, R หรือแม้แต่การพัฒนาบล็อคเชนเพิ่มเข้ามา อย่างไรก็ดี ช่วง keynote เปิดงาน Georges Saab รองประธานฝ่ายพัฒนาแพลตฟอร์มจาวายังยืนยันว่าแพลตฟอร์มยังคงพัฒนาไปอย่างต่อเนื่อง และ Java 11 เป็นเวอร์ชั่นที่จาวาพัฒนาโดยชุมชนภายนอกออราเคิลมากที่สุด
Saab ยืนยันว่าแนวทางการออกเวอร์ชั่นใหม่ทุก 6 เดือนเป็นแนวทางที่ดี เพราะจาวาเองต้องพัฒนาตัวแข่งกับแพลตฟอร์มอื่นๆ โดยตอนนี้มี 4 โครงการย่อยที่มีความก้าวหน้าต่อเนื่อง ได้แก่
สัปดาห์ที่ผ่านมา Oracle ออก Java 11 รุ่นจริง ตามนโยบายใหม่ที่ออก Java รุ่นใหม่ทุก 6 เดือน เหมือนกับซอฟต์แวร์หลายตัวในยุคหลัง
ความพิเศษของ Java 11 คือเป็นรุ่น LTS ที่ซัพพอร์ตยาวนานถึงปี 2026 หรือนาน 8 ปี โดยรุ่น LTS ตัวก่อนหน้านี้คือ Java 8 ที่ยังเป็นรอบการออกแบบเดิม ดังนั้นใครที่สนใจย้ายจาก Java 8 มาเป็นเวอร์ชันใหม่กว่านั้น ก็มองมาที่ Java 11 ได้เลย (LTS ตัวหน้าคือ Java 17 กำหนดออกปี 2021)
Oracle ประกาศเปลี่ยนวิธีหาเงินกับ Java SE 8 สำหรับการใช้งานเชิงพาณิชย์ จากเดิมที่เป็นการซื้อไลเซนส์แบบจ่ายครั้งเดียว และพ่วงด้วยบริการซัพพอร์ตเป็นรายปี เปลี่ยนมาเป็นการจ่ายค่าสมาชิกเป็นรายปี (subscription)
บริการนี้เรียกว่า Java SE Subscription จะเปิดให้ซื้อในเดือนกรกฎาคม 2018 ราคาอยู่ที่ 25 ดอลลาร์ต่อเดือนต่อซีพียู (เซิร์ฟเวอร์) และ 2.50 ดอลลาร์ต่อเครื่อง (พีซี) ต้องซื้อขั้นต่ำ 1 ปี และหากซื้อเยอะมีส่วนลดพิเศษให้ด้วย
องค์กรที่จ่ายเงินค่า Java SE Subscription จะได้บริการซัพพอร์ตและอัพเดตเวอร์ชันมาด้วย แต่หากหยุดจ่ายเงินเมื่อใด จะถือว่าไลเซนส์การใช้งานในเชิงพาณิชย์หมดลงในทันที ซึ่ง Oracle แนะนำให้ย้ายไปใช้ OpenJDK แทนหากไม่ต้องการจ่ายเงิน
Oracle ประกาศแผนการออก Java SE 11 (JDK 11) ที่มีกำหนดออกในเดือนกันยายน ตามรอบการออกแบบใหม่ทุก 6 เดือน
Java 11 จะเป็นรุ่นซัพพอร์ตระยะยาว (LTS) ที่จะออกทุกสามปี (รุ่นหน้าคือ Java 17 ที่จะออกในปี 2021) และมีระยะเวลาซัพพอร์ตนานไปจนถึงปี 2026 (ถือเป็น Java รุ่นแรกภายใต้รอบการออกแบบใหม่ที่มีสถานะเป็น LTS ถัดจาก Java 8 ที่ยังใช้รอบการออกแบบเก่า)
การเปลี่ยนแปลงที่สำคัญของ Java 11 คือการถอดฟีเจอร์เก่าๆ หลายอย่างออกจากแพ็กเกจหลักของ JDK ได้แก่ JavaFX ที่เคยประกาศไปแล้ว และจะถอดโมดูลของ Java EE กับ COBRA ออกด้วย
Oracle ประกาศแผนการปล่อยอัพเดตของ Java 8 SE ในอนาคต หลังปรับนโยบายออกเวอร์ชันใหม่ทุก 6 เดือน (ล่าสุดคือ Java 10)
รวดเร็วปานจรวด เพียง 6 เดือนหลังจาก Java SE 9 ในเดือนกันยายนปีที่แล้ว ก็ได้เวลาของ Java SE 10 ครับ
การออก Java 10 อยู่ภายใต้นโยบายใหม่ของ Oracle ที่จะออก Java รุ่นใหม่ทุก 6 เดือน ลักษณะเดียวกับที่เราเห็นในซอฟต์แวร์โอเพนซอร์สหลายโครงการ โดย Java 10 ถือเป็นรุ่นแรกที่ใช้ระบบออกรุ่นแบบใหม่นี้ และมีเลขเวอร์ชันอีกแบบคือ 18.3 (ปี.เดือน)
หลายคนอาจลืมชื่อ JavaFX เทคโนโลยีของฝั่ง Java ที่ออกแบบมาแข่งกับ Adobe Flash/AIR กันไปแล้ว (สุดท้ายก็แพ้ให้กับ HTML5 กันหมด)
ถึงแม้แทบไม่มีใครรู้จัก แต่ JavaFX ก็ยังไม่ตายและแฝงตัวอยู่ใน JDK อย่างเงียบๆ มานานเกือบสิบปี (เปิดตัวปี 2007 และเป็นส่วนหนึ่งของ Oracle JDK ในปี 2012)
ล่าสุด Oracle ประกาศถอด JavaFX ออกจากแพ็กเกจหลักของ JDK แล้ว โดยจะมีผลใน JDK 11 (หรือ 18.9 ออกเดือนกันยายนนี้) เป็นต้นไป ส่วน JavaFX ใน JDK 8 จะยังซัพพอร์ตไปจนถึงปี 2022 เป็นอย่างน้อย
หลังจาก Java EE กลายเป็นโครงการในสังกัดของ Eclipse Foundation และใช้ชื่อโครงการว่า EE4J เพื่อเลี่ยงการใช้เครื่องหมายการค้า Java ที่ยังเป็นของ Oracle
ล่าสุดโครงการ EE4J ประกาศชื่อแบรนด์ใหม่ของ Java EE ว่าเป็น Jakarta EE
กระบวนการตัดสินใจเรื่องชื่อมาจากการนำเสนอของชุมชน ซึ่งมีคนเสนอเข้ามาหลายร้อยชื่อ สองชื่อที่เข้ารอบสุดท้ายคือ Jakarta EE กับ Enterprise Profile และการโหวตตัดสินโดยชุมชน ชื่อ Jakarta EE ชนะด้วยคะแนน 64.4%
หลังจากที่กูเกิลเปิดตัว Android Studio 3.0 ในงาน I/O 2017 เมื่อกลางปีและเปิดให้นักพัฒนาใช้งานเวอร์ชัน beta และ canary มาสักพักใหญ่ ตอนนี้ก็ได้เปิดตัวเวอร์ชัน stable อย่างเป็นทางการแล้ว
จุดเด่นของ Android Studio 3.0 คือรองรับภาษา Kotlin, ภาษา Java 8, layout editor ลากวางวัตถุดีขึ้น, มีตัวช่วยสร้าง Adaptive icon, เพิ่มฟอนท์ที่ใช้งานแบบ XML ลงไปในโปรเจค, รองรับการเขียน Android Things และอัพเดต IntelliJ 2017.1
ต่อเนื่องจากข่าว Oracle ยก Java EE ให้มูลนิธิ Eclipse Foundation ดูแลต่อ โดยตัวโครงการจะต้องเปลี่ยนไปใช้ชื่ออื่นแทน เนื่องจากชื่อ Java EE เป็นเครื่องหมายการค้าของ Oracle
ชื่อใหม่ของโครงการ Java EE คือ EE4J (Eclipse Enterprise for Java) ซึ่งจะใช้เป็นชื่อโครงการระดับบนสุด (Top-level Project) ของมูลนิธิ Eclipse ที่ตัวมันเองจะมีโครงการย่อยๆ อย่าง Glassfish, EclipseLink อยู่ในสังกัดด้วย
Mike Milinkovich ผู้บริหารของ Oracle อธิบายว่า EE4J เป็นชื่อโครงการ ไม่ใช่ชื่อแบรนด์ที่มาแทน Java EE และในอนาคตเมื่อโครงการเริ่มเดินหน้าไปได้ ก็หวังว่าจะมีชื่อแบรนด์ใหม่ที่มาแทน Java EE ในแง่ของตัวผลิตภัณฑ์
Azure Functions บริการคลาวด์ Serverless ของไมโครซอฟท์ ประกาศรองรับภาษา Java เพิ่มเติม จากเดิมที่รองรับ C#, F#, Node.js, Python, PHP อยู่ก่อนแล้ว
ไมโครซอฟท์บอกว่าต้องการขยายการรองรับภาษาต่างๆ ให้มากขึ้น ก่อนหน้านี้ก็เพิ่งประกาศรองรับ .NET Core ไป การรองรับ Java จะช่วยให้โปรแกรมเมอร์สาย Java หันมาใช้งาน Azure Functions ได้ง่ายขึ้นโดยไม่ต้องเรียนรู้ภาษาใหม่ แถมโครงการที่ใช้ Maven อยู่แล้วก็สามารถนำมาใช้ต่อได้เลย
บริการคู่แข่ง AWS Lambda นั้นรองรับ Java อยู่ก่อนแล้ว ส่วน Google Cloud Functions ยังรองรับเฉพาะ JavaScript ภาษาเดียว
นอกจาก Java SE 9 แล้ว ออราเคิลยังออก Java EE 8 มาพร้อมกัน (ทิ้งช่วงจาก Java EE 7 ที่ออกในปี 2013 นาน 4 ปีกว่า) ของใหม่ในรุ่นนี้ได้แก่
หลังจาก เลื่อนแล้ว เลื่อนอีกมานาน ในที่สุด Oracle ก็ได้ฤกษ์ออก Java 9 ตัวจริง ซึ่งทิ้งช่วงห่างจาก Java 8 นานถึง 3 ปีครึ่ง
ตอนนี้ยังมีเฉพาะ Java Development Kit (JDK) 9 ให้ดาวน์โหลดบนลินุกซ์เพียงแพลตฟอร์มเดียว ฟีเจอร์ใหม่ของ Java 9 คือ Project Jigsaw หรือชื่ออย่างเป็นทางการคือ Java Platform Module System ซึ่งเป็นการแยกส่วน Java ออกเป็นโมดูลย่อยๆ เพื่อใช้งานเท่าที่จำเป็น ลดขนาดไฟล์และนำ Java ไปใช้กับอุปกรณ์ที่มีทรัพยากรจำกัดได้ง่ายขึ้น
ต่อจากข่าว Oracle ประกาศ เตรียมยก Java EE ให้มูลนิธิโอเพนซอร์สอื่นดูแลแทน วันนี้ Oracle ประกาศแล้วว่าจะยก Java EE ให้มูลนิธิ Eclipse Foundation โดยให้เหตุผลว่าเป็นหน่วยงานที่คุ้นเคยกับ Java EE มาโดยตลอด
Eclipse Foundation เริ่มจากการเป็นหน่วยงานอิสระที่พัฒนา Eclipse (ซึ่งในอดีตเป็นของ IBM) มาตั้งแต่ปี 2001 แต่ภายหลังก็รับดูแลโครงการโอเพนซอร์สอื่นๆ ที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์ด้วย
นอกจากประเด็นเรื่องระบบการออกรุ่นแบบใหม่ของ Java SE ทาง Mark Reinhold หัวหน้าฝ่ายสถาปัตยกรรม Java ของ Oracle ก็ยังประกาศแผนการโอเพนซอร์ส Oracle JDK ทั้งหมดในอนาคตด้วย
ปัจจุบันตัว JDK (Java Development Kit) แยกเป็น 2 เวอร์ชันคือ OpenJDK ที่เป็นโอเพนซอร์ส และ Oracle JDK ที่เพิ่มฟีเจอร์เชิงพาณิชย์บางส่วน (เช่น Java Flight Recorder, Mission Control) เข้ามา โดย Oracle มีรายได้จากค่าซัพพอร์ตองค์กรที่ใช้งาน Oracle JDK ด้วย
Mark Reinhold หัวหน้าฝ่ายสถาปัตยกรรม Java ของ Oracle ประกาศระบบการออกรุ่นและนับรุ่นแบบใหม่ของ Java SE ที่จะเปลี่ยนมาออกทุก 6 เดือน
Reinhold บอกว่าที่ผ่านมา Oracle พยายามใช้ระบบออกรุ่นใหม่ทุก 2 ปี แต่เอาเข้าจริงก็ไม่สามารถทำได้ตามแผน โดย Java 8 ล่าช้ากว่ากำหนด 8 เดือน และ Java 9 ที่จะออกปลายเดือนนี้ (เลื่อนจากกำหนดเดิมเดือน ก.ค.) ใช้เวลาพัฒนาถึง 3 ปีครึ่งนับจาก Java 8
ดังนั้นหลังจาก Java 9 ออกรุ่นจริงแล้ว Oracle จะเปลี่ยนมาใช้ระบบออกรุ่นตามระยะเวลา (time-based) ลักษณะเดียวกับโครงการโอเพนซอร์สอื่นๆ (เช่น Ubuntu หรือ GNOME) โดยรักษารอบการออกรุ่นอย่างเคร่งครัด
Oracle ประกาศผ่านบล็อกของบริษัทว่า เตรียมยก Java EE ให้หน่วยงานกลางที่เป็นมูลนิธิไม่หวังผลกำไร ดูแลกระบวนการพัฒนาแทน
Oracle บอกว่าการยก Java EE ให้หน่วยงานด้านโอเพนซอร์สดูแล จะทำให้กระบวนการพัฒนารวดเร็วและคล่องตัวกว่าโมเดลที่ Oracle ทำในปัจจุบัน แต่ยังไม่ระบุว่าจะเป็นมูลนิธิไหน บอกแค่ว่าตอนนี้กำลังคุยอยู่กับมูลนิธิหลายแห่ง (ตัวเต็งที่เป็นไปได้สูงคือ Apache Software Foundation และ Eclipse Foundation)
ที่ผ่านมา Oracle มีท่าทีละเลยการพัฒนา Java EE และถูกวิจารณ์อย่างหนัก แต่สุดท้ายก็ยังเดินหน้าทำ Java EE 8 ต่อไป แม้จะต้องเลื่อนกำหนดออกมาเป็นช่วงปลายปีนี้ก็ตาม