ผ่านมา 6 เดือนที่ Java 10 ถูกปล่อยออกมา
ก็ได้เวลาของ Java SE 11 กันบ้าง (ตามแผนมาก ๆ)
ในเรื่องของ feature ต่าง ๆ นั้นก็จัดว่าเยอะอยู่แล้ว
เหมือนกับการนำ Java 9 + 10 มานั่นเอง
อีกอย่างที่น่าสนใจคือ เรื่องของ Licence และรอบของการ support/release จากทาง Oracle
หรือ Long Term Support (LTS) ซึ่งจะมีรอบในการ release ทุก ๆ 6 เดือนนั่นเอง
เริ่มจากการ Download มาใช้งานที่ Oracle หรือ Open JDK
ถ้าไปที่ Oracle จะเจอหน้าแบบนี้ ลองอ่านเพิ่มเติมครับ เรื่องมันยาวปล. เพื่อความปลอดภัยในการใช้งาน แนะนำให้ใช้งาน Open JDK ไปครับ เพราะว่ายังใช้ licence เดิม
มาดู feature ที่น่าสนใจดีกว่า
แน่นอนว่ามีของใหม่มา ของเก่าก็ต้องจากไป ยกตัวอย่างของที่ถูกเอาออกไปทั้ง CORBA และ Java EE รวมไปถึง JavaFX ที่ถูกแยกออกไปเป็นอีก module ทำให้สิ่งต่าง ๆ เหล่านี้ถูกแยกออกไปจาก JDK นั่นเอง ส่งผลทำให้การดูแล JDK ง่ายขึ้น เช่นเรื่องของ backward compatability เป็นต้น แต่ตอนนี้ก็เจ็บปวดกันหน่อย เนื่องจากในตอนนี้ Java Module System ถูกนำมาใช้เต็ม ๆ แม้แต่ของใหม่ที่เพิ่มเข้ามาอย่าง Nashorn JavaScript Engine ก็ยัง deprecated เลย แน่นอนว่าในอนาคตโดนถอดออกไปแน่ส่วน feature ที่น่าสนใจ ประกอบไปด้วย
- HTTP client
- Local-Variable syntax for Lambda parameters
- Launch Single-File Source-Code Programs
- TLS 1.3
- Epsilon: A No-Op Garbage Collector
- Java Flight Recorder (JFR)
- Project ZGC
มาดูตัวอย่างการใช้งานในมุมมองนักพัฒนาบ้าง
ตัวอย่างที่ 1 คือ Launch Single-File Source-Code Programs ทำมาเพื่อให้ง่ายต่อการ run program เลย เพียงแค่บันทึกเป็นไฟล์นามสกุล .sh จากนั้นก็ run เลยดังนี้ [gist id="30d39cd5940c638d1505269545854e15" file="Hello.sh"] จากนั้นทำการ run ด้วยคำสั่ง [code] $./Hello.sh Hello java script ... [/code] ตัวอย่างที่ 2 คือ Local-Variable syntax for Lambda parameters [gist id="30d39cd5940c638d1505269545854e15" file="LambdaDemo.sh"]ลองไปเล่นกันดูครับ ชีวิตปวดหัวกับ licence กันอีกแล้ว
Oracle JDK = commercial OpenJDK = free มันคือ new default หรือหลาย ๆ คนอาจจะใช้มานานแล้วอีก 6 เดือน เจอกันกับ Java 12สุดท้าย ถ้าใครจะศึกษา Java 9, 10 และ 11 แนะนำมาที่ 11 เลยนะครับ