2 คะแนน โดย GN⁺ 2024-03-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • JDK 22 ซึ่งเป็นเรฟเฟอเรนซ์อิมพลีเมนเทชันของ Java 22 ได้เปิดตัวสำหรับการใช้งานทั่วไป (GA) แล้ว
  • OpenJDK build ที่ Oracle จัดให้ภายใต้ไลเซนส์ GPL สามารถใช้งานได้ที่ https://jdk.java.net/22 และ build จากผู้ให้บริการรายอื่นก็น่าจะพร้อมใช้งานในเร็ว ๆ นี้

รีลีสนี้มี JEP (Java Enhancement Proposals) รวมทั้งหมด 12 รายการ

  • 423: Region Pinning สำหรับ G1
  • 447: คำสั่งประกาศก่อน super(...) (พรีวิว)
  • 454: Foreign Function และ Memory API
  • 456: ตัวแปรและแพตเทิร์นที่ไม่มีชื่อ
  • 457: Class-File API (พรีวิว)
  • 458: การรันโปรแกรมซอร์สโค้ดแบบหลายไฟล์
  • 459: String Templates (พรีวิวครั้งที่สอง)
  • 460: Vector API (อินคิวเบเตอร์ครั้งที่เจ็ด)
  • 461: Stream Gatherers (พรีวิว)
  • 462: Structured Concurrency (พรีวิวครั้งที่สอง)
  • 463: คลาสที่ประกาศโดยปริยายและเมธอด main ของอินสแตนซ์ (พรีวิวครั้งที่สอง)
  • 464: Scoped Values (พรีวิวครั้งที่สอง)

ข้อมูลเพิ่มเติม

  • รีลีสนี้ประกอบด้วยการปรับปรุงเล็ก ๆ หลายร้อยรายการและการแก้บั๊กหลายพันรายการ
  • ขอขอบคุณทุกคนที่มีส่วนร่วมกับรีลีสนี้

ความเห็นของ GN⁺

  • การเปิดตัว JDK 22 เป็นเหตุการณ์สำคัญสำหรับนักพัฒนา Java และคาดว่าจะช่วยยกระดับประสบการณ์การพัฒนาด้วยฟีเจอร์ใหม่และการปรับปรุงต่าง ๆ
  • โดยเฉพาะฟีเจอร์อย่าง Foreign Function และ Memory API อาจช่วยขยายขีดความสามารถของ Java ในด้านการเขียนโปรแกรมระบบและการทำงานร่วมกัน
  • ฟีเจอร์อย่าง Structured Concurrency สะท้อนถึงความพยายามของ Java ในการใช้ประโยชน์จากโปรเซสเซอร์แบบหลายคอร์สมัยใหม่ให้ดียิ่งขึ้น
  • แม้ภาษาและแพลตฟอร์มอื่น ๆ มักมีฟีเจอร์ลักษณะใกล้เคียงกัน แต่ Java ก็ยังมอบคุณค่าเฉพาะตัวผ่านฐานผู้ใช้ขนาดใหญ่และการสนับสนุนจากชุมชนที่แข็งแกร่ง
  • ควรคำนึงถึงความเข้ากันได้กับระบบเดิม ผลกระทบด้านประสิทธิภาพ และเส้นโค้งการเรียนรู้ โดยฟีเจอร์ใหม่ของ JDK 22 ก็ควรถูกนำมาใช้แบบค่อยเป็นค่อยไปตามปัจจัยเหล่านี้

1 ความคิดเห็น

 
GN⁺ 2024-03-20
ความเห็นจาก Hacker News
  • ฟีเจอร์ที่ชอบที่สุดในรีลีสใหม่นี้:

    JEP 463 เป็นการปรับปรุงด้านการใช้งานสำหรับผู้เริ่มต้น ซึ่งอาจสร้างความแตกต่างได้ว่าคนที่เพิ่งเริ่มเขียนโปรแกรมด้วย Java จะยังคงใช้ Java ต่อไปหรือไม่

  • แม้จะเป็นการเปลี่ยนแปลงของภาษาโปรแกรมที่ไม่ได้ "หวือหวา" แต่ external function interface น่าจะเป็นการเปลี่ยนแปลงครั้งใหญ่:

    การพึ่งพาไลบรารีเดิมของ Java ที่อิงกับ JNI เป็นหนึ่งในจุดที่มักมีปัญหามากที่สุดเวลาอัปเกรด จึงหวังว่าการเปลี่ยนแปลงนี้จะช่วยลดภาระในการบำรุงรักษาของ Java ได้

  • ฟีเจอร์ที่เชื่อมโยงได้:

    โดยส่วนตัวแล้วสิ่งที่น่าสนใจที่สุดคือ JEP 461 (Stream Gatherers) ซึ่งดูได้จากที่นี่ และน่าจะเพิ่มความสามารถที่น่าสนใจให้กับการทำงานของสตรีม

  • external function interface เป็นหนึ่งในข้อได้เปรียบหลักที่ C# มีเหนือ Java:

    ตัวอย่างเช่น เมื่อต้องรับมือกับ API ขนาดมหาศาลอย่าง Android หรือ macOS ก็อยากรู้มากว่าผลลัพธ์ของ JEP นี้จะออกมาเป็นอย่างไร

  • แปลกใจที่ยังมีหลายแห่งใช้ Java 8 อยู่:

    จากแบบสำรวจที่ค้นเจอล่าสุด ประมาณ 1/3 ของโปรเจ็กต์ยังใช้ Java 8 และในกลุ่มนั้นราวครึ่งหนึ่งใช้ Java 11

  • G1 garbage collector ยังคงได้รับการปรับปรุงอย่างต่อเนื่องแบบไม่มีค่าใช้จ่าย:

    ถึงเวลาสร้าง build tag ใหม่สำหรับสิ่งนี้แล้ว

  • ความคืบหน้าของ String Templates API น่าสนใจ:

    กำลังจับตาดูความคืบหน้าในการพัฒนา API ที่ใช้ตัวประมวลผลเทมเพลต STR และ fmt

  • สงสัยเกี่ยวกับ "Vector API (Seventh Incubator)":

    เวอร์ชันวนซ้ำครั้งที่เจ็ดเกี่ยวกับเวกเตอร์ใน Java แบบนี้ ชวนให้สงสัยว่าเกิดอะไรขึ้นกันแน่

  • ตัวอย่างของฟีเจอร์เหล่านี้:

    สามารถดูตัวอย่างฟีเจอร์ของ Java 22 ได้ที่ HappyCoders

  • แม้จะไม่เกี่ยวกับ Java แต่การได้เห็นหน้า HTML แบบเรียบง่ายก็สดชื่นดี:

    การได้เห็นหน้า HTML ที่ไม่ซับซ้อนเป็นประสบการณ์ที่สดชื่นมากหลังจากผ่านมานาน