เห็นมีการพูดถึง Java หรือ JDK 10 กันบ้างพอสมควร (เงียบ ๆ นะ)
เนื่องจากตามแผนแล้วจะถูกปล่อยตัวเต็มมาในมีนาคมนี้แล้ว
โดยมี feature ต่าง ๆ แยกไปตาม JEPS ดังนี้
- 286: Local-Variable Type Inference
- 296: Consolidate the JDK Forest into a Single Repository
- 304: Garbage-Collector Interface
- 307: Parallel Full GC for G1
- 310: Application Class-Data Sharing
- 312: Thread-Local Handshakes
- 313: Remove the Native-Header Generation Tool (javah)
- 314: Additional Unicode Language-Tag Extensions
- 316: Heap Allocation on Alternative Memory Devices
- 317: Experimental Java-Based JIT Compiler
- 319: Root Certificates
- 322: Time-Based Release Versioning
โดยรูปแบบของภาษานั้น จะมี keyword ใหม่ชื่อว่า var ขึ้นมา
จากที่อ่านมาพบว่า มีทางเลือกของ keyword นี้เยอะเลย เช่น- var x = expr only (like C#)
- var, plus val for immutable locals (like Scala, Kotlin)
- var, plus let for immutable locals (like Swift)
- auto x = expr (like C++)
- const x = expr (already a reserved word)
- final x = expr (already a reserved word)
- let x = expr
- def x = expr (like Groovy)
- x := expr (like Go)
โดยเหตุผลของการเลือก var นั้นอ่านเพิ่มเติ่มได้ที่นี่
ว่าด้วยเรื่องของ readability, mutability และ syntax น่าจะไม่ถูกใจของนักพัฒนาหลาย ๆ คนดังนั้นลองใช้งานหน่อยสิ จะติดตั้งก็เกรงใจ เลยใช้ Docker ดีกว่า ซึ่งใช้ image จาก OpenJDK 10เริ่มด้วยการเขียน Hello แบบง่าย ๆ ด้วยการใช้ keyword var ในการประกาศตัวแปร นักพัฒนาไม่ต้องระบุ data type นะ ตัวอย่างเป็นการกำหนดค่าลง ArrayList และวน loop ดึงข้อมูลมาแสดงผลแบบง่าย ๆ ปกติภาษา Java มันเขียนได้หลายแบบอีกดังนี้ [gist id="f34bb7b2844f188d037fe0859351a3cb" file="1.java"] ทำการ compile และ run ได้ผลดังนี้ [gist id="f34bb7b2844f188d037fe0859351a3cb" file="1.txt"]