Meta รายงานถึงความคืบหน้าในการย้ายโค้ด Android จาก Java ไปเป็น Kotlin หลังจากเปลี่ยนแนวทางมาใช้ Kotlin เป็นหลักตั้งแต่ปี 2020 แต่ก็ยังมีโค้ด Java จำนวนมาก แต่ในช่วงหลังก็สามารถเร่งความเร็วในการแปลงโค้ดได้จากการทำงานร่วมกับ JetBrains ผู้สร้าง IntelliJ
ก่อนหน้านี้ Meta แปลง Java เป็น Kotlin โดยอาศัยฟีเจอร์แปลงโค้ดของ IntelliJ เป็นหลัก การแปลงแต่ละครั้งอาศัยนักพัฒนาคลิก IDE ทีละไฟล์เอง กระบวนการนี้ทำให้การแปลงโค้ดช้ามาก ทาง Meta เข้าไปช่วย IntelliJ พัฒนา J2K ที่เป็นเอนจินแปลงโค้ดภายใน IntelliJ ให้สามารถรันได้โดยไม่ต้องการ IntelliJ
หลังจากนั้น Meta พัฒนาเครื่องมือภายใน ชื่อว่า Kotlinator ที่ใช้ J2K เป็นแกน แต่มีฟีเจอร์ต่างๆ เพิ่มเติม
JavaFX เป็นความพยายามของ Sun/Oracle ที่จะสู้กับ Flash ในยุคนั้น เปิดตัวครั้งแรกในปี 2008 แต่สุดท้ายก็ไปไม่รอด ต้องเปิดเป็นโครงการโอเพนซอร์ส OpenJFX โดยมีบริษัท Gluon รับไปพัฒนาต่อ และถูกถอดออกจาก Oracle JDK ตั้งแต่เวอร์ชัน 11 ในปี 2018
อย่างไรก็ตาม JavaFX เวอร์ชันเดิมยังคงอยู่เป็นส่วนหนึ่งของ Java SE 8/JDK 8 รุ่นมหาอมตะนิรันดร์กาล เพราะ Oracle ยังคงซัพพอร์ต Java SE 8 ต่อไปเรื่อยๆ ตราบเท่าที่ลูกค้ายังไม่ยอมย้ายออก (ล่าสุดคือถึงปี 2030 สำหรับลูกค้าจ่ายเงิน Extended Support)
Oracle ออก Java 23 ซึ่งเป็นรุ่นซัพพอร์ตระยะสั้น 6 เดือน (LTS ตัวล่าสุดคือ Java 21)
Java 23 มีของใหม่ที่สำคัญคือ ปรับโหมดการทำงานของ Z Garbage Collector (ZGC) มาใช้ generational mode เป็นค่าดีฟอลต์ หลังจากเริ่มทดสอบมาตั้งแต่ Java 21 ผลคือประสิทธิภาพการทำงานดีขึ้นในเกือบทุกกรณี ส่วนโหมดการทำงานแบบเดิมที่เรียกว่า non-generational จะถูกถอดออกในอนาคตระยะยาวต่อไป
ฟีเจอร์ใหม่อย่างอื่นๆ ยังมีสถานะเป็นพรีวิว เช่น Primitive Types in Patterns, Module Import Declarations , Flexible Constructor Bodies, Class-File API, Vector API, Scoped Values, Structured Concurrency เป็นต้น
Andy Jassy ซีอีโอ Amazon โพสต์เนื้อหาใน LinkedIn เพื่อนำเสนอความสามารถของระบบผู้ช่วยปัญญาประดิษฐ์สร้างเนื้อหา Amazon Q ที่มีจุดขายหนึ่งสำหรับลูกค้าองค์กรคือการแก้ไขโค้ด และรองรับการย้ายโค้ด Java ไปเวอร์ชันใหม่
เขาบอกว่างานอัปเกรดพื้นฐานซอฟต์แวร์นั้นเป็นสิ่งจำเป็นมาก แต่ไม่ใช่งานที่จูงใจคนทำงานสายนักพัฒนามากนัก เพราะไม่ได้เป็นการสร้างสิ่งใหม่ Amazon Q จึงมีประโยชน์มากเพราะเข้ามาช่วยลดภาระ โดย Amazon ได้นำ Amazon Q มาช่วยในการอัปเกรดโค้ดโปรแกรมที่ใช้ภายใน ให้รองรับ Java เวอร์ชันใหม่
บริษัท Azul Systems Inc. ที่ทำธุรกิจเกี่ยวกับ Java โดยทำ JVM ของตัวเองมาแข่งกับเวอร์ชันของ Sun/Oracle เปิดเผยผลสำรวจความเห็นผู้เชี่ยวชาญและประกอบอาชีพสาย Java ทั่วโลกประมาณ 660 คน มี 86% ระบุว่ากำลังพยายามย้ายออกจาก Oracle Java ด้วยเหตุผลเรื่องค่าใช้จ่าย
Google Sheets ปรับปรุงการทำงานบนเดสก์ท็อปใหม่ โดยการคำนวณค่าในตารางจะเร็วขึ้น 2 เท่า จากการแปลงโค้ดส่วนคำนวณมาเป็น WebAssembly Garbage Collection (WasmGC) แทนการรันเป็น JavaScript แบบเดิม
แรกสุดนั้น เอนจินคำนวณของ Google Sheets ทำงานที่ฝั่งเซิร์ฟเวอร์ เขียนด้วย Java และเริ่มใช้ในปี 2006 จากนั้นเริ่มปรับมาคำนวณที่ฝั่งเบราว์เซอร์แทนในปี 2013 โดยช่วงแรกทำผ่าน Google Web Toolkit (GWT) ช่วงหลังเปลี่ยนมาใช้ Java ช่วยผ่าน Java to Closure JavaScript transpiler (J2CL)
IBM ประกาศขยายบริการปัญญาประดิษฐ์ Watsonx ที่เปิดตัวในปี 2023 จากเดิมมีเฉพาะ Watsonx Code Assistant for Z ตัวช่วยแปลงโค้ดภาษา COBOL บนเมนเฟรม และ Red Hat Ansible Lightspeed มาสู่บริการข้างเคียงอื่นๆ
Oracle ออก Java 22 รุ่นซัพพอร์ตระยะสั้น 6 เดือน (Java 21 เป็นรุ่นซัพพอร์ตระยะยาวนาน 2 ปี)
ของใหม่ที่สำคัญของ Java 22 คือ Unnamed Variables & Patterns เปิดให้ตั้งชื่อตัวแปรที่ถูกบังคับให้ต้องมี แต่ไม่ต้องเรียกใช้งาน เป็นสัญลักษณ์ขีดล่าง (_) แทนการต้องตั้งชื่อตัวแปรอะไรก็ได้สักอย่าง
จากภาพตัวอย่างคือตัวแปร order ไม่ถูกเรียกใช้งานจริง แต่ต้องประกาศ (แถมโดนคอมไพเลอร์ด่าซ้ำว่ามีตัวแปรไม่ใช้งาน) ในสเปกของ Java 22 เปิดให้ใช้ตัว _ เพื่อบอกอย่างเจาะจงว่าเป็นตัวแปรที่ไม่ต้องตั้งชื่อได้แล้ว
ออราเคิลแจ้งเตือนว่า macOS 14.4 รุ่นล่าสุดทำให้แอปจาวาจำนวนหนึ่งมีปัญหาบางกรณีจนทำให้แอปแครช หากองค์กรใดใช้แอปจาวาอยู่ให้ระวังการใช้งาน
ปัญหาเรื่องนี้เกิดจากแอปจาวานั้นอาจจะมีบางครั้งที่ไปพยายามเข้าถึงหน่วยความจำส่วนที่ห้ามใช้งานอยู่ เดิม macOS จะส่ง SIGBUS หรือ SIGSEGV ออกมา และแอปพลิเคชั่นสามารถรับ signal นี้และทำงานต่อไปได้ แต่ใน macOS 14.4 แอปเปิลกลับเปลี่ยนเป็น SIGKILL ที่ตัวโปรเซสทำอะไรไม่ได้
ออราเคิลระบุว่าไม่พบปัญหานี้ในเวอร์ชั่น early access ของ macOS 14.4 ทำให้ไม่สามารถแจ้งปัญหาให้แอปเปิลล่วงหน้า และตอนนี้ต้องรอแอปเปิลแก้บั๊ก โดยกระทบตั้งแต่แอป Java 8 จนถึงรุ่นล่าสุด
ที่มา - Oracle
TIOBE Software ประกาศผล TIOBE Index ประจำเดือนมกราคม 2024 โดยภาษา C# เป็นภาษาโปรแกรมแห่งปี 2023 ซึ่งถือเป็นครั้งแรกในประวัติศาสตร์ของดัชนี TIOBE ที่ให้คะแนนความนิยมของภาษาการเขียนโปรแกรมทุกเดือน
C# เป็นภาษาโปรแกรมโอเพนซอร์สข้ามแพลตฟอร์มที่ทันสมัยสำหรับ .NET และเป็นภาษา 10 อันดับแรกบนดัชนี TIOBE มานานกว่า 2 ทศวรรษ ซึ่งนักพัฒนาสามารถเรียนรู้ฟรี ใช้ได้ฟรี มีการพัฒนาอย่างต่อเนื่อง และได้รับความนิยมมากขึ้นเรื่อย ๆ ในการพัฒนาแบ็คเอนด์เว็บแอปและเกมของ Unity โดยล่าสุด C# มีความนิยมเพิ่มขึ้นมากที่สุดในปี 2023 (+1.43%) และกำลังกินส่วนแบ่งการตลาดจาก Java มากขึ้น
IBM เตรียมนำ Generative AI มาใช้แก้ปัญหาว่าโลกเรามีโค้ดภาษา COBOL รันอยู่มาก โดยเฉพาะในแวดวงธนาคาร แต่โปรแกรมเมอร์ COBOL รุ่นเก่าๆ แก่ชรากันไปเกือบหมดแล้ว และโปรแกรมเมอร์รุ่นใหม่ๆ ก็ไม่มีใครสนใจภาษา COBOL ทำให้นักพัฒนาสายนี้ขาดแคลนอย่างหนัก
การศึกษาของ International Journal of Advanced Research in Science, Communication and Technology (IJARSCT) ประเมินว่าโค้ด 43% ในธุรกิจธนาคารยังเป็นโค้ด COBOL ดั้งเดิม
AWS เปิดบริการ Amazon Q แชตบอตผู้ช่วยสารพัดประโยชน์แบบเดียวกับ ChatGPT แต่ชูจุดเด่นในการอ่านข้อมูลภายในองค์กร สามารถดึงข้อมูลจากในสตอเรจ S3 หรือบริการอื่นๆ เช่น Salesforce, Google Drive, Microsoft 365, ServiceNow, Atlassian, หรือ Zendesk มาตอบคำถามผู้ใช้ได้
ข้อมูลที่ Amazon Q นำมาตอบนั้นจะใช้สิทธิการเข้าถึงเดียวกับสิทธิ์ของบริการที่ไปเชื่อมต่อ และสามารถสั่งงานแอปพลิเคชั่นต่างๆ เช่น เปิด ticket ใน Jira หรือเปิดเคสใน Salesforce ได้จากแอปแชต
Oracle ออกส่วนขยาย Oracle Java Platform Extension ให้กับ Visual Studio Code ซึ่งถือเป็นส่วนขยายอย่างเป็นทางการของ Java ตัวแรกบน VS Code
Oracle บอกว่าแนวโน้มของวงการนักพัฒนาเปลี่ยนไป จากเดิมที่ใช้ IDE เฉพาะทางของภาษานั้นๆ เปลี่ยนมาใช้ IDE ที่รองรับทุกภาษาแบบ VS Code กันมากขึ้น ความคาดหวังของนักพัฒนาคือ VS Code ทำงานได้ดีกับทุกภาษาโปรแกรม จึงเห็นโอกาสตรงนี้ออกส่วนขยายมาซัพพอร์ตแพลตฟอร์ม Java ให้ดีขึ้นกว่าเดิม
TIOBE Software รายงานดัชนีความนิยมภาษาโปรแกรมหรืออันดับ TIOBE Index ประจำเดือนตุลาคม 2023 โดย Paul Jansen ซีอีโอ TIOBE ให้ข้อสังเกตว่าส่วนต่างของ C# ในอันดับ 5 กับ Java ในอันดับ 4 ใกล้กันมากขึ้น เหลือเพียง 1.2% โดยหากแนวโน้มยังเป็นเช่นนี้ C# น่าจะแซง Java ได้ภายใน 2 เดือน
อันดับความนิยมภาษาโปรแกรมลำดับ 1-5 เป็นดังนี้ Python (14.82%), C (12.08%), C++ (10.67%), Java (8.92%) และ C# (7.71%)
อย่างไรก็ตามแนวโน้มความนิยมภาษานั้นอาจจะสรุปได้ยากว่าจะเป็นอย่างไรในระยะสั้น ก่อนหน้านี้ TIOBE ก็ประเมินว่า C++ ใกล้แซง C แต่เดือนตุลาคมล่าสุด ตัวเลขก็กลับมาห่างกันมากขึ้น
ผู้สร้างภาษาโปรแกรมยอดนิยม 4 คน มารวมตัวกันเป็นครั้งแรกในงานเสวนาเพื่อการกุศล Language Creators Charity Fundraiser โดยรายได้จากการขายบัตรจะมอบให้หน่วยงานด้านการศึกษา Last Mile Education Fund และ NumFOCUS
ผู้สร้างภาษาโปรแกรมทั้ง 4 คนที่เข้าร่วมได้แก่
งานเสวนาครั้งนี้จัดโดยกลุ่ม PyData Seattle วันที่ 19 กันยายน 2023 ที่เมือง Bellevue ในรัฐวอชิงตัน
ก่อนหน้านี้ 3 จาก 4 คนข้างต้น (ไม่รวม Goldberg) เคยขึ้นเวทีร่วมกันมาแล้วครั้งหนึ่งในปี 2019 รวมกับอีกคนคือ Larry Wall ผู้สร้างภาษา Perl
โลกของ Java จาก Oracle มีความซับซ้อนไม่น้อย โดยบริษัท Oracle (ตั้งแต่ยุค Sun เดิม) มี Java Virtual Machine (JVM) ถึงสองตัวคือ HotSpot ที่ใช้เป็นดีฟอลต์ คอมไพล์แบบ just-in-time (JIT) และ GraalVM ที่คอมไพล์แบบ ahead-of-time (AOT) ให้เรียกทำงานเร็วขึ้น ใช้หน่วยความจำน้อยลง
ตัวโครงการ GraalVM ยังแบ่งย่อยเป็น Community Edition ที่ใช้สัญญาอนุญาตแบบโอเพนซอร์ส (GPLv2) เปิดโค้ดบน GitHub และ Enterprise Edition ที่เพิ่มฟีเจอร์ เพิ่มประสิทธิภาพ แต่เป็นสัญญาเชิงพาณิชย์ที่ต้องเสียเงินใช้งาน
New Relic บริษัทวิเคราะห์สถิติและประสิทธิภาพของแอพในองค์กร ออกรายงานสถิติการใช้งาน Java ประจำปี 2023 (ข่าวของปี 2022) โดยอ้างอิงจากแอพพลิเคชันที่เรียกใช้งานแพลตฟอร์มของ New Relic เท่านั้น (อาจไม่สะท้อนภาพการใช้งาน Java ทั้งหมดในวงการ)
การเปลี่ยนแปลงสำคัญของโลก Java ปี 2023 คือ Amazon Corretto ซึ่งเป็นดิสโทร Java Developer Kit (JDK) เวอร์ชันแจกฟรีของ Amazon กลายเป็นดิสโทรยอดนิยมอันดับหนึ่ง ด้วยส่วนแบ่งตลาด 31% แซงหน้า Oracle Java (หรือ Sun JDK ดั้งเดิม) ที่ส่วนแบ่งลดลงเหลือ 28%
เมื่อปีที่แล้ว Oracle ออก Java Enterprise Performance Pack ที่เป็นการพอร์ตฟีเจอร์ของ Java 17 (LTS ตัวล่าสุด) กลับไปให้ Java 8 เวอร์ชันยอดนิยมตลอดกาล (ออกปี 2014 ปีหน้าครบสิบปีแล้ว) เพื่อให้ Java 8 มีประสิทธิภาพดีขึ้น
ตอนแรก Java Enterprise Performance Pack เปิดให้ใช้งานเฉพาะลูกค้าที่จ่ายค่า subscription เท่านั้น แต่ล่าสุด Oracle เปิดให้คนทั่วไปสามารถดาวน์โหลดมาใช้กันได้แล้ว
Oracle ออก Java 20 ตามรอบการออกรุ่นทุก 6 เดือน โดยรุ่นนี้เป็นรุ่นซัพพอร์ตระยะสั้น 6 เดือนจนถึง Java 21 ในเดือนกันยายน (ซึ่ง Java 21 จะเป็นรุ่นซัพพอร์ตระยะยาว LTS ตัวใหม่ด้วย)
ของใหม่ใน Java 20 มีทั้งหมด 7 อย่าง แบ่งออกเป็น 3 กลุ่มตามโครงการพัฒนา Java ระยะยาว ที่มีโค้ดเนมเป็นชื่อโครงการ โดยฟีเจอร์เหล่านี้ยังเป็นการทดสอบแบบ Preview/Incubator ที่ยังไม่เข้าสถานะเสถียร แต่เปิดให้ทดลองใช้งานแล้ว
จากข่าว Oracle เปลี่ยนวิธีคิดค่าไลเซนส์ Java ใหม่ นับตามจำนวนพนักงานของทั้งองค์กร แทนการนับตามจำนวนพนักงานที่ต้องใช้งาน สิ่งที่เกิดขึ้นตามมาคือความนิยมใน Java ของบริษัทหรือหน่วยงานอื่นๆ ที่เพิ่มขึ้นแทน
Mike Milinkovich ผู้อำนวยการของมูลนิธิ Eclipse Foundation โพสต์ข้อความผ่านทวิตเตอร์ บอกว่าเขาก็ไม่เข้าใจเหมือนกันว่าทำไม Java ถึงแพงขนาดนี้ และแนะนำให้ใช้ไบนารี Temurin Java ของโครงการ Adoptium ภายใต้ Eclipse Foundation แทน ซึ่งเป็นไบนารีที่เข้ากันได้กับ Oracle Java 100%
Oracle ออกแพ็กเกจการคิดค่าไลเซนส์ Java สำหรับลูกค้าองค์กรที่เรียกว่า Java SE Universal Subscription บังคับคิดเงินตามจำนวนพนักงานของทั้งองค์กร (per employees) แม้พนักงานกลุ่มนั้นไม่ใช่สายไอที และไม่ได้ใช้ Java เลยก็ตาม
เดิมที Oracle มีแพ็กเกจคิดค่าไลเซนส์ Java เรียกว่า Java SE Subscription และ Java SE Desktop Subscription ซึ่งคิดเงินตามจำนวนผู้ใช้ (per users) หรือจำนวนซีพียู (per processors) แต่แพ็กเกจเหล่านี้จะถูกแทนที่ด้วยแพ็กเกจใหม่ Universal Subscription แทน
รายงานดัชนีความนิยมภาษาโปรแกรม TIOBE Index ประจำเดือนธันวาคม 2022 เกิดความเปลี่ยนแปลงที่น่าสนใจ หลัง Java ความนิยมตกลงไปอยู่อันดับสี่ และ C++ แซงขึ้นมาเป็นอันดับสาม ถือเป็นครั้งแรกในประวัติศาสตร์ TIOBE ที่เริ่มตั้งแต่ปี 2001 ที่ C++ ได้รับความนิยมสูงกว่า Java และถือเป็นครั้งแรกที่ Java หลุด Top 3
แชมป์ยังเป็นของ Python ที่แซงหน้า C ขึ้นมาเป็นอันดับหนึ่งเมื่อปีที่แล้ว ส่วนการเปลี่ยนแปลงอื่นๆ ที่น่าสนใจในรอบเดือนนี้คือ SQL แซง Assembly ขึ้นมาอยู่อันดับ 8, ภาษา Go ไต่จากอันดับ 19 ขึ้นมาอยู่อันดับ 12, ภาษา Swift ร่วงจากอันดับ 10 ลงมาอยู่อันดับ 15
Meta เขียนบล็อกเล่าประสบการณ์ย้ายภาษาโปรแกรมที่ใช้เขียนแอพ Android จากเดิม Java มาเป็น Kotlin ซึ่งตอนนี้ย้ายไปแล้วเกิน 10 ล้านบรรทัด (ยังย้ายไม่เสร็จทั้งหมด)
Meta ระบุว่า Kotlin เป็นภาษาที่ได้รับความนิยมมากขึ้นเรื่อยๆ ในโลกของ Android โดยมีข้อดีเหนือกว่า Java 11 (ที่ใช้ในวงการ Android) หลายด้าน เช่น nullability ที่ระดับของตัวภาษา, รองรับการทำ functional programming ดีกว่า Java, โค้ดสั้นกว่า และรองรับการทำ Domain-specific language (DSL)
ถือเป็นเรื่องแปลกใหม่ในวงการ Java ไม่น้อย เมื่อ Oracle ออก Java Enterprise Performance Pack ที่นำเอาฟีเจอร์บางอย่างของ Java 17 LTS รุ่นใหม่ (ออกปี 2021) พอร์ตย้อนกลับไปให้ Java 8 (ออกปี 2014 ห่างกัน 7 ปี) เพื่อให้องค์กรที่ยังย้ายจาก Java 8 ไม่ได้ (น่าจะมีเยอะเลย) สามารถรันงานให้มีประสิทธิภาพมากขึ้นได้
การเปลี่ยนแปลงใน Enterprise Performance Pack อยู่แค่ในระดับรันไทม์เท่านั้น ได้แก่ การปรับมาใช้ G1/Z Garbage Collector ที่มีประสิทธิภาพมากขึ้น (ค่าดีฟอลต์คือ G1), รองรับ Compact Strings ช่วยลดหน่วยความจำลง, เปลี่ยนมาใช้ Unified JVM Logging
Redmonk บริษัทวิเคราะห์ข้อมูลนักพัฒนา รายงานอันดับภาษาโปรแกรมยอดนิยม ของไตรมาสที่ 3 ปี 2022 โดยใช้ข้อมูลอ้างอิงจาก GitHub และ Stack Overflow (ซึ่ง Redmonk บอกว่าหากภาษาที่คิดว่าน่าจะติด แต่ไม่ติดอันดับ ก็อาจเพราะแพลตฟอร์มอันใดอันหนึ่งไม่มีภาษานี้)
ในอันดับต้น ๆ นั้นแทบไม่มีการขยับตำแหน่ง แต่มีอันดับที่น่าสนใจ เช่น TypeScript ซึ่งได้รับความนิยมเพิ่มมาเรื่อย ๆ เนื่องจากนำไปใช้ในงานได้หลากหลาย ส่วนภาษา Go ก็ไม่สามารถไต่อันดับขึ้นมาที่เลขหลักเดียว ซึ่งเป็นทิศทางเดียวกับ Kotlin และ Rust
รายชื่ออันดับทั้งหมดเป็นดังนี้