ปัญหาของนักพัฒนาเว็บช่วงหลังที่เจอกันบ่อยคือแม้จะมี API ใหม่ๆ ให้ใช้งาน และหลายครั้งออกเป็นมาตรฐานแล้ว แต่เบราว์เซอร์แต่ละยี่ห้อก็รองรับไม่พร้อมกัน ทำให้นักพัฒนาต้องมาระวังว่าอะไรใช้ได้ไม่ได้ ที่ผ่านมาแม้จะมีการจัดมาตรฐานมาทำเป็นชุดทดสอบ เช่น Interop แต่สุดท้ายนักพัฒนาก็ต้องมาดูเองอยู่ดีว่าเบราว์เซอร์ใดผ่านข้อไหนบ้าง ในงาน Google I/O ปีนี้กูเกิลจึงเปิดตัว Baseline โลโก้แจ้งนักพัฒนาว่าฟีเจอร์ใดพร้อมใช้งานโดยทั่วไปแล้ว
Visual Studio Code เวอร์ชัน 1.78 รอบเดือนเมษายน 2023 มีของใหม่หลายอย่าง ที่สำคัญคือธีมใหม่ Dark Modern และ Light Modern ที่มาแทนธีมดีฟอลต์ของเดิม Dark+ และ Light+
GitLab ประกาศฟีเจอร์ทดลองโดยอาศัยปัญญาประดิษฐ์มาช่วยในกระบวนการพัฒนาซอฟต์แวร์หลายด้าน ได้แก่
เมื่อเดือนมีนาคมที่ผ่านมา Meta เปิดตัวโครงการ Velox เป็น unified execution engine กลางสำหรับฐานข้อมูลหรือระบบจัดการข้อมูลหลายรูปแบบ ตอบโจทย์ระดับโครงสร้างพื้นฐานของบริษัทใหญ่ระดับ Meta ที่ต้องใช้ฐานข้อมูลหลากหลาย และซับซ้อนขึ้นเรื่อยๆ
Velox จึงถูกสร้างขึ้นเพื่อจัดระเบียบวิธีการเก็บและเรียกใช้ข้อมูลที่แตกต่างกัน ช่วยลดความซ้ำซ้อนในการพัฒนา และรีดประสิทธิภาพของการเก็บข้อมูลให้ดีขึ้น แก้ปัญหาเอนจินแต่ละตัวมีวิธี optimized ที่แตกต่างกัน
เบื้องต้น Velox รองรับฐานข้อมูล 3 รูปแบบ ได้แก่ Apache Spark, Presto, PyTorch สำหรับงานปัญญาประดิษฐ์ ซึ่งทั้ง 3 แบบเป็นระบบที่ใช้บ่อยภายในบริษัท Meta
กูเกิลเล่าผลงานการปรับแต่ง Chrome ให้มีประสิทธิภาพดีขึ้น ความเร็วในการประมวลผลหน้าเว็บสูงขึ้นในช่วงหลังๆ โดยทำหลายอย่างประกอบกัน
ตัวแทนกูเกิลไปขึ้นเวทีงาน KotlinConf '23 เล่าสถิติการใช้งานภาษา Kotlin ในหมู่นักพัฒนาสาย Android และสถิติภายในของกูเกิลเอง
แวดวง Android
Compose Multiplatform เฟรมเวิร์คสำหรับเขียน UI ของภาษา Kotlin ที่พัฒนาโดย JetBrains และออกเวอร์ชันแรกในปี 2021
รากเหง้าของ Compose มาจาก Jetpack Compose ที่กูเกิลสร้างขึ้นเพื่อเขียน UI บน Android โดย JetBrains นำมาพัฒนาต่อให้รองรับแพลตฟอร์มอื่นๆ คือบนเดสก์ท็อป (Windows, macOS, Linux)
ล่าสุด JetBrains เปิดตัว Compose Multiplatform สำหรับ iOS แล้ว สถานะยังเป็นรุ่นทดสอบแบบ Alpha และจำเป็นต้องใช้ Xcode บน macOS ช่วยคอมไพล์ออกมาเป็นแอพบน iOS ให้
Gradle ซอฟต์แวร์ build automation ชื่อดัง เดิมทีต้องใช้ภาษา Groovy เขียนสคริปต์คอนฟิกวิธีการ build แต่ล่าสุดเปลี่ยนมาใช้ภาษา Kotlin เป็นดีฟอลต์แทนแล้ว
Gradle เริ่มสร้างในปี 2008 โดยตอนนั้นยังรองรับเฉพาะ Groovy เป็นภาษาแบบ domain-specific language (DSL) เพื่อเป็น build script แต่ในปี 2016 ก็เพิ่ม Kotlin DSL เข้ามาเป็นอีกทางเลือกหนึ่ง
Android Studio ออกเวอร์ชันใหม่ Flamingo (2022.2.1) ซึ่งอิงจากฐานของ IntelliJ Platform 2022.2
ของใหม่เวอร์ชันนี้มีหลายอย่าง เน้นไปที่ Jetpack Compose
Meta เปิดซอร์สโค้ดของ Buck2 ซอฟต์แวร์จัดการระบบคอมไพล์ขนาดใหญ่ (large-scale build system) ออกให้สาธารณะใช้งาน ซอร์สโค้ดอยู่บน GitHub
เดิมที Meta มีซอฟต์แวร์ Buck หรือปัจจุบันเรียก Buck1 เปิดซอร์สมานานหลายปีแล้ว แต่ Buck2 เป็นการเขียนระบบใหม่ขึ้นมาทั้งหมด แยกจาก Buck1 อย่างชัดเจน โดยออกแบบสถาปัตยกรรมใหม่ให้ประมวลผลแบบขนานได้ดีขึ้น แยกส่วนแกนหลักกับระบบรองรับแต่ละภาษาโปรแกรมออกจากกัน เป็นต้น ส่งผลให้ประสิทธิภาพดีขึ้นจาก Buck1 สองเท่า
Google Play ประกาศข้อบังคับใหม่ว่าแอพจะต้องเพิ่มช่องทางให้ผู้ใช้ขอลบข้อมูลในบัญชีของตัวเองได้ (ลบเฉพาะข้อมูลในแอพ แต่ไม่จำเป็นต้องลบตัวบัญชี เหมือนกับรีเซ็ตบัญชีใหม่)
กูเกิลบอกว่าข้อบังคับนี้จะช่วยให้ผู้ใช้สะดวกขึ้น คุ้มครองข้อมูลส่วนตัวมากกว่าเดิม แต่ก็บอกว่าต้องการให้เวลานักพัฒนาเตรียมตัวพัฒนาฟีเจอร์นี้ด้วยเช่นกัน เบื้องต้นกูเกิลจะขอให้นักพัฒนาตอบแบบสำรวจเรื่องฟีเจอร์ลบแอพภายในวันที่ 7 ธันวาคม 2023 จากนั้นจะเริ่มขึ้นป้าย data deletion ในสโตร์ช่วงต้นปี 2024 เป็นต้นไป
GitHub ออกส่วนขยาย GitHub Actions ให้กับ VS Code (เชื่อมจักรวาลไมโครซอฟท์ด้วยกันเอง) ช่วยให้นักพัฒนาสามารถจัดการเวิร์คโฟลว์ต่างๆ ได้จากตัว IDE โดยตรง
GitHub Actions เป็นบริการเวิร์คโฟลว์สำหรับสั่งงานอัตโนมัติตามเงื่อนไขที่กำหนด เปิดตัวครั้งแรกในปี 2018 และอาศัยฐานนักพัฒนาจำนวนมากของ GitHub ขยายมาสู่บริการ CI/CD ได้อย่างรวดเร็ว ตัวอย่างการใช้งานที่พบบ่อยคือแก้โค้ด สั่ง push ขึ้น Git แล้วสั่งให้รัน unit/integration test ทุกครั้ง
ไมโครซอฟท์เขียนบล็อกอธิบายเบื้องหลังการแก้ปัญหาระดับโลก (ระดับผู้ใช้ 250 ล้านคนต่อเดือน) เปลี่ยนสถาปัตยกรรมเบื้องหลัง Microsoft Teams บนวินโดวส์เป็นตัวใหม่ที่ดีขึ้น เร็วขึ้น กินแรมน้อยลง
ไมโครซอฟท์เล่าว่าไคลเอนต์ตัวเดิมของ Teams เริ่มเขียนในปี 2015 (Teams เปิดตัวครั้งแรกปลายปี 2016) ตั้งเป้าหมายเรื่องการทำงานข้ามแพลตฟอร์มระหว่างเว็บ-เดสก์ท็อปเป็นสำคัญ จึงเลือกใช้เทคโนโลยีที่มีในตอนนั้นคือ Electron เป็นโฮสต์, AngularJS เป็นเฟรมเวิร์คเว็บ และสร้าง custom controls ของตัวเองขึ้นมาด้วย HTML/CSS
หลายคนอาจคุ้นเคยกับชื่อ Progressive Web App (PWA) แนวทางการพัฒนาเว็บแอพที่ใช้นอกเบราว์เซอร์ได้ ล่าสุดไมโครซอฟท์เสนอแนวคิดชื่อคล้ายๆ กันคือ Reliable Web App (RWA)
จุดแตกต่างคือ RWA ไม่ได้เป็นเทคโนโลยีใหม่ แต่เป็น "แพทเทิร์น" การเขียนเว็บแอพที่ไมโครซอฟท์แนะนำว่าดี (best practice ซึ่งไม่จำเป็นต้องทำตาม) สำหรับการใช้ .NET สร้างเว็บแอพไปรันบนคลาวด์ Azure ให้เสถียร (SLO 99.9%) ดูแลง่าย ปลอดภัย ต้นทุนค่าคลาวด์ต่ำ
ไมโครซอฟท์เปิดตัว .NET 8 Preview 1 ตามรอบการออกรุ่นใหม่ทุกปีช่วงเดือนพฤศจิกายน โดย .NET 8 จะเป็นรุ่นซัพพอร์ตระยะยาว 3 ปี (LTS) เหมือนกับ .NET 6
ของใหม่ใน .NET 8 Preview 1 มีดังนี้
ไมโครซอฟท์ออกส่วนขยายของ Visual Studio ชื่อ .NET Upgrade Assistant ช่วยอัพเกรดโปรเจค .NET เวอร์ชันเก่าๆ ให้เป็น .NET เวอร์ชันล่าสุด (6 หรือ 7 หรือ 8 Preview) ภายในไม่กี่คลิกเท่านั้น
ทิศทางของ .NET ในช่วงหลังคือการออกรุ่นใหม่ปีละ 1 ครั้ง โดยเป็นรุ่นซัพพอร์ตระยะยาว 3 ปี (LTS) ออกปีเว้นปี ทำให้การอัพเกรดมาใช้ .NET รุ่นใหม่เป็นสิ่งจำเป็น ไมโครซอฟท์จึงกระตุ้นให้นักพัฒนา .NET ทยอยอัพเกรดโปรเจคเก่าๆ ยุค .NET Framework หรือ .NET Core ที่ไม่พัฒนาต่อแล้วทั้งคู่ ให้มาเป็น .NET ยุคใหม่ๆ แทน
ไมโครซอฟท์ออก Visual Studio Code เวอร์ชัน 1.75 อัพเดตรอบเดือนมกราคม 2023 ของใหม่ที่สำคัญคือระบบ Profile เพื่อให้นักพัฒนาเซฟการตั้งค่า ส่วนขยาย ของตัว IDE ฯลฯ และสลับไปมาระหว่างโปรไฟล์ได้ (เช่น ตั้งเป็น Work, Demo)
Profile ยังสามารถ import/export ไปใช้ในเครื่องอื่นๆ ได้ รวมถึงการช่วยเพื่อนร่วมงานสร้าง Profile ที่เหมาะสมกับงานโปรเจคนั้น แล้วแชร์ให้กันได้
ฟีเจอร์ใหม่อย่างอื่นของ VS Code 1.75 คือ การบังคับส่วนขยายใน VS Marketplace ต้อง sign เป็นดีฟอลต์เพื่อความปลอดภัย, ปรับปรุงการใช้งานร่วมกับ screen reader, ลากมุมเพื่อปรับขนาด multiple views ได้พร้อมกัน, รองรับ TypeScript 5.0, ธีมใหม่ Dark+ V2 และ Light+ V2 เป็นต้น
กูเกิลออก Android Studio เวอร์ชันใหม่ โค้ดเนมปลาไหลไฟฟ้า Electric Eel (2022.1.1) ตามแนวทางตั้งชื่อเป็นสัตว์เรียงตามตัวอักษรภาษาอังกฤษ (ตัวก่อนหน้านี้คือ Dolphin, ตัวถัดไปจะชื่อ Flamingo) เวอร์ชันนี้มีของใหม่หลายอย่างดังนี้
ค่ายอินเทลมี oneAPI ที่เป็นชุด API สำหรับทำงานบนหน่วยประมวลผลหลายประเภท (CPU/GPU/FPGA) แต่ที่ผ่านมา มันยังทำงานได้เฉพาะบนผลิตภัณฑ์ของอินเทลเท่านั้น
ล่าสุด oneAPI รองรับการทำงานบนจีพียูของ NVIDIA และ AMD แล้ว โดยเป็นผลงานของ Codeplay บริษัทด้านทำซอฟต์แวร์ข้ามหน่วยประมวลผล (อินเทลเพิ่งซื้อกิจการมาเมื่อกลางปีนี้ แต่ Codeplay เริ่มพัฒนามาก่อนนานแล้ว) การซัพพอร์ตอยู่ในรูปการออกปลั๊กอินให้ oneAPI รองรับจีพียูค่ายอื่น
สัปดาห์ที่ผ่านมา PHP ออกเวอร์ชัน 8.2 ตามนโยบายการออกรุ่นใหญ่ปีละ 1 รุ่น ของใหม่ที่สำคัญในระดับของภาษาได้แก่
ฟีเจอร์ทั้งหมดดูได้จาก PHP 8.2
.NET Core 3.1 ซึ่งเป็น .NET ยอดนิยมอีกรุ่นหนึ่ง หมดระยะซัพพอร์ตไปแล้วเมื่อวานนี้ 13 ธันวาคม 2022 โดยไมโครซอฟท์ออก .NET Core 3.1.32 รุ่นอุดช่องโหว่ที่พบล่าสุดมาให้เป็นรุ่นสุดท้าย และจะไม่ออกอัพเดตให้อีกแม้พบช่องโหว่ในอนาคต
ไมโครซอฟท์แนะนำให้ผู้ใช้ .NET Core 3.1 อัพเกรดไปใช้ .NET 6.0 ที่เป็นรุ่นซัพพอร์ตระยะยาว 3 ปี (LTS) หรือถ้าไม่ต้องการ LTS ก็สามารถอัพเกรดไปเป็น .NET 7.0 ที่เพิ่งออกเมื่อเดือนพฤศจิกายนที่ผ่านมาก็ได้เช่นกัน (ทั้งสองรุ่นจะหมดระยะซัพพอร์ตปี 2024)
นโยบายการออกรุ่น .NET ในปัจจุบันคือออกปีละรุ่น โดยเวอร์ชันเลขคี่มีระยะซัพพอร์ต 18 เดือน และเวอร์ชันเลขคู่มีระยะซัพพอร์ต 3 ปี
GitHub เปิดบริการ AI ช่วยเขียนโค้ด Copilot for Business สำหรับลูกค้าภาคธุรกิจ ในราคา 19 ดอลลาร์ต่อผู้ใช้ต่อเดือน หลังจากเปิดบริการสำหรับลูกค้ารายย่อยมาตั้งแต่เดือนมิถุนายน 2022
ความแตกต่างหลักของ Copilot for Business คือตัวโค้ดที่เป็นทรัพย์สินและความลับขององค์กรจะถูกจัดการแยกต่างหาก โดย GitHub จะอ่านโค้ดเพื่อช่วยแนะนำโค้ดเท่านั้น เสร็จแล้วจะลบทิ้ง ไม่เก็บข้อมูลใดๆ ของโค้ดอ่านและที่สร้างขึ้นเอาไว้เลย
ฟีเจอร์อื่นๆ ของ Copilot for Business เป็นเรื่องการจัดการ เช่น การกำหนด policy ของทั้งองค์กร และการจัดการไลเซนส์ของนักพัฒนาในทีมที่ง่ายขึ้น ส่วนตัวเอนจิน AI ช่วยเขียนโค้ดก็เหมือนกับเวอร์ชันลูกค้าปลีกทุกอย่าง
AWS เปิดบริการ CodeCatalyst บริการพัฒนาซอฟต์แวร์บนคลาวด์ที่เตรียมทั้งเครื่องสำหรับพัฒนา, IDE บนคลาวด์, บริการ CI/CD, ระบบจัดเก็บซอร์สโค้ด, และระบบจัดการบั๊ก (issue tracker) เข้าไว้ด้วยกัน
เซิร์ฟเวอร์สำหรับพัฒนาจะถูกกำหนดสเปคด้วย devfile ทำให้นักพัฒนาที่เปิดพื้นที่พัฒนา (Dev Environment) ขึ้นมาใช้งานก็สามารถเริ่มพัฒนาได้ทันที ส่วนตัว IDE ใช้ AWS Cloud9 หรือจะใช้งานจาก IDE อื่นๆ ที่ AWS ซัพพอร์ตก็ได้เช่นกัน เช่น VS Code นั้นทาง AWS สามารถเชื่อมต่อกับ CodeCatalyst ผ่านทาง AWS Toolkit for VS Code
กูเกิลประกาศนโยบายว่าแพลตฟอร์มสมาร์ททีวี Android TV และ Google TV จะเริ่มบังคับใช้แพ็กเกจแอพแบบใหม่ Android App Bundle (.aab) มีผลตั้งแต่เดือนพฤษภาคม 2023 เป็นต้นไป
Android App Bundle (AAB) เป็นเทคนิคการแจกจ่ายไฟล์แอพแบบใหม่ที่เริ่มใช้มาตั้งแต่ปี 2018 แนวคิดคือให้ Google Play Store ตัดสินใจเลือกแพ็กเกจที่จำเป็นต่ออุปกรณ์นั้นๆ ไม่จำเป็นต้องโหลดไฟล์ APK ไปทั้งก้อน (แล้วไม่ได้ใช้บางส่วนอยู่ดี) ผลคือประหยัดเนื้อที่สตอเรจมากขึ้น โดยเฉพาะกรณีของสมาร์ททีวีที่อาจมีสตอเรจเพียง 8GB ก็น่าจะช่วยให้ประหยัดเนื้อที่ได้เพิ่มขึ้นมากนั่นเอง
Gabriele Svelto วิศกรของ Mozilla เขียนบล็อกเล่าถึงทริกการลดอัตราการแครชของไฟร์ฟอกซ์บนวินโดวส์ที่ใช้ตั้งแต่เวอร์ชั่น 105 ว่าสาเหตุสำคัญของการแครชอย่างหนึ่งคือแรมหมดทั้งแรมจริงๆ และไฟล์ swap ของระบบปฎิบัติการ
ปกติแล้วหากหน่วยความจำหมดทั้งหน่วยความจำจริงๆ และ swap นั้นระบบปฎิบัติการจะคืนค่า error เมื่อซอฟต์แวร์ร้องขอหน่วยความจำเพิ่มเติม จากนั้นตัวโปรแกรมก็จะปิดตัวเองไป
แต่ในไฟร์ฟอกซ์ 105 ทีมพัฒนาเปลี่ยนกลไกส่วนนี้ในวินโดวส์ เนื่องจากวินโดวส์มีความสามารถเพิ่มขนาดไฟล์ swap ได้เองเมื่อพื้นที่ใกล้เต็ม ดังนั้นหากตัวเบราว์เซอร์รออีกสักหน่อยแล้วขอหน่วยความจำอีกครั้งก็มักจะขอได้