Image

Go Language

By lew Founder on Tag: Go, Programming, LLM, JSON, JavaScript
Go

Reco บริษัทความปลอดภัยองค์กรเล่าถึงประสบการณ์การพอร์ตไลบรารี JSONata จาก JavaScript เป็น Go ด้วย AI เพื่อลด overhead ในการรันคิวรี ผลการพัฒนาทำให้ค่าเซิร์ฟเวอร์ประหยัดลงมหาศาลเทียบกับค่าโทเค็นของ AI

By lew Founder on Tag: Go, Programming
Go

Alan Donovan หนึ่งในทีมงานภาษา Go จากกูเกิลเขียนบล็อกเชิญชวนนักพัฒนาภาษา Go ให้ใช้คำสั่ง go fix คำสั่งปรับโค้ดให้เป็นไปตามฟีเจอร์ภาษารุ่นใหม่ๆ หลังจาก Go 1.26 ที่เพิ่งออกมาในเดือนนี้เขียนคำสั่ง go fix ใหม่ และเพิ่มฟีเจอร์วิเคราะห์โค้ดรูปแบบเก่า

Donovan ระบุว่าเริ่มเห็นแนวโน้มว่าโค้ด Go ใหม่ๆ เขียนด้วย LLM ที่เรียนรู้ภาษาจากโค้ดเดิม ทำให้การใช้ภาษาไม่ยอมไปใช้ฟีเจอร์ใหม่ๆ แถมหลายครั้งเมื่อบอกให้ใช้บางฟีเจอร์ตรงๆ LLM หลายตัวก็ไม่ยอมใช้อยู่ดีแล้วบอกผู้ใช้ว่าภาษา Go ไม่มีฟีเจอร์

By lew Founder on Tag: Go, Programming
Go

Robert Griesemer วิศวกรกูเกิลในทีมงานภาษา Go เขียนบล็อกสรุปถึงความพยายามที่จะสร้าง syntax ใหม่เพื่อจัดการความผิดพลาดหลังเรียก API ภายนอก เนื่องจากภาษา Go นั้นไม่รองรับ exception และความผิดพลาดต่างๆ จากการเรียกฟังก์ชั่นจะถูกรายงานออกมาออกในรูปแบบของการคืนค่าซึ่งโปรแกรมเมอร์ Go ก็มักใช้ตัวแปรชื่อ err มารับค่านี้ไว้ และตรวจสอบว่าเกิดความผิดพลาดหรือไม่

แต่รูปแบบการตรวจสอบความผิดพลาดนี้ทำให้โค้ดไม่สวยในหลายกรณี โดยเฉพาะเมื่อมีการเรียกฟังก์ชั่นจำนวนมากๆ ก็จะเกิด if ที่ใช้ตรวจความผิดพลาดเต็มไปหมด

By mk Founder on Tag: TypeScript, Compiler, Microsoft, Programming, Go
TypeScript

ไมโครซอฟท์เปิดทดสอบ TypeScript Native คอมไพเลอร์ตัวใหม่ที่เขียนด้วย Go แบบ public preview

เมื่อเดือนมีนาคมที่ผ่านมา ไมโครซอฟท์เปิดตัวคอมไพเลอร์ตัวใหม่ของ TypeScript ที่เปลี่ยนมาเขียนด้วยภาษา Go (โค้ดเนม Corsa) ที่จะมาแทนคอมไพเลอร์ตัวเดิมที่เขียนด้วย TypeScript/JavaScript (โค้ดเนม Strada) ด้วยเหตุผลเรื่องประสิทธิภาพที่ดีขึ้น 10 เท่า

By lew Founder on Tag: TypeScript, Programming, Go
TypeScript

TypeScript โครงการส่วนขยาย JavaScript ให้รองรับ static typing ประกาศแนวทางการย้ายตัวคอมไพล์เลอร์จากเดิมเขียนด้วย TypeScript/JavaScript โดยระบุเหตุผลสำคัญคือประสิทธิภาพการทำงานที่คอมไพล์เลอร์ (หรือ transpiler) ที่เขียนด้วย Go นั้นเร็วขึ้นเฉลี่ย 10 เท่าตัว

ทางโครงการระบุว่าจะพัฒนาคอมไพล์เลอร์เดิมไปจนถึง 6.x (ตอนนี้อยู่ที่เวอร์ชั่น 5.8) โดยเวอร์ชั่น 6.0 จะเริ่มมีจุด breaking change เพื่อปรับให้คอมไพล์เลอร์สองตัวทำงานได้ตรงกัน และเมื่อคอมไพล์เลอร์ที่เขียนด้วย Go ทำงานทดแทนได้เต็มตัวแล้วก็จะออกเป็นเวอร์ชั่น 7.0 ตัดจบยุคไป

By mk Founder on Tag: Go, Programming, WebAssembly
Go

ภาษา Go ออกเวอร์ชัน 1.24 มีฟีเจอร์ใหม่ที่น่าสนใจคือปรับปรุงการแปลงโค้ด Go เป็น WebAssembly (Wasm) ให้สามารถแปลงโค้ดได้โดยตรงแล้ว

Go เริ่มรองรับการแปลงโค้ดเป็น Wasm มาตั้งแต่เวอร์ชัน 1.11 แต่ต้องผ่าน js/wasm อีกชั้น ภายหลังเมื่อโลกของ WebAssembly มีมาตรฐาน API กลางที่เรียกว่า WebAssembly System Interface (WASI) ภายใต้การกำกับดูแลของ W3C เกิดขึ้นเพื่อให้ภาษาต่างๆ แปลงเป็น Wasm ได้ง่ายขึ้น ทำให้ Go เริ่มหันมารองรับ WASI แบบพรีวิวมาตั้งแต่เวอร์ชัน 1.21

By arjin Writer on Tag: TIOBE, Programming, Python, Go
TIOBE

TIOBE รายงานอันดับภาษาเขียนโปรแกรมยอดนิยมประจำเดือนพฤศจิกายน 2024 ซึ่งวัดจากจำนวนการค้นหาผ่านช่องทางต่าง ๆ ไฮไลท์ของผลการจัดอันดับเดือนนี้คือ Go ที่มีแนวโน้มความนิยมเพิ่มขึ้นมาระยะหนึ่ง อันดับขยับขึ้นมาเป็นที่ 7 สูงสุดที่เคยทำได้

เมื่อเดือนที่แล้ว TIOBE บอกว่า Rust เป็นภาษาที่ความนิยมเพิ่มขึ้นแบบก้าวกระโดดเมื่อเทียบกับปีก่อน ซึ่งแนวโน้มยังเป็นเหมือนเดิมโดยเดือนพฤศจิกายนอยู่ในอันดับที่ 14

ส่วน 3 อันดับแรกยังเหมือนเดิมคือ Python, C++ และ Java

ที่มา: TIOBE

By mk Founder on Tag: Go, Programming
Go

ภาษา Go ฉลองครบรอบ 15 ปี หลังเปิดตัวครั้งแรกในเดือนพฤศจิกายน 2009

ในช่วงหลัง ภาษา Go ได้รับความนิยมสูงขึ้นเรื่อยๆ โดยตัวเลขของ Go เองบอกว่ามีผู้ใช้เพิ่มขึ้น 3 เท่าในรอบ 5 ปีหลัง ส่วนอันดับภาษาโปรแกรมยอดนิยมของ TIOBE Index ตอนนี้อยู่อันดับ 7 และยังมีแนวโน้มในขาขึ้นเรื่อยๆ

By lew Founder on Tag: Go, Open Source, Programmer
Go

Russ Cox นักพัฒนาหลักและผู้ร่วมโครงการ Go ตั้งแต่ช่วงเริ่มต้น ประกาศลาออกจากตำแหน่ง Tech Lead ทั้งของโครงการ Go ฝั่งชุมชน และทีมงานพัฒนา Go ในกูเกิลเอง

Cox ร่วมพัฒนา Go มาเกิน 14 ปีแล้ว และรับตำแหน่ง Tech Lead มา 12 ปี หลังจากนี้เขายังคงร่วมโครงการ Go อยู่ แต่ตำแหน่ง Tech Lead จะยกให้ Austin Clements ที่เป็น Tech Lead ของส่วน Go core ที่นับเฉพาะ compiler และ runtime ขณะที่ตำแหน่งเดิมของ Clements จะมี Cherry Mui ขึ้นมาทำหน้าที่แทน

Cox อ้างอิง Guido van Rossum ที่ลาออกจากตำแหน่ง BDFL ของ Python แบบเดียวกัน และการเปิดให้คนอื่นๆ ขึ้นมาแทนเปิดทางให้โครงการเติบโตขึ้น

By lew Founder on Tag: Go, Cryptography
Go

Go เวอร์ชั่น 1.22 เปลี่ยนโครงสร้างภายในของไลบรารี math/rand เป็นเวอร์ชั่น 2 โดยแกนกลางสำคัญคือการเปลี่ยนอัลกอริทึมจากเดิมที่เคยเป็น linear-feedback shift register แบบง่ายๆ ทำงานได้เร็ว มาเป็นตัวสร้างเลขสุ่มแบบ PCG และ ChaCha8 หลายเดือนหลังปรับปรุงทีมงานก็ออกมาอธิบายแนวคิดเบื้องหลัง

By mk Founder on Tag: Go, Programming, TIOBE
Go

ดัชนีความนิยมภาษาโปรแกรม TIOBE Index รอบเดือนกุมภาพันธ์ 2024 มีการเปลี่ยนแปลงที่น่าสนใจคือภาษา Go มาแรง เข้ามาติดอันดับ Top 10 เป็นครั้งแรก แถมมาทีเดียวกระโดดจากอันดับ 11 ขึ้นมาถึงอันดับ 8 เลยด้วย

ภาษา Go ได้รับความนิยมเพิ่มขึ้นเรื่อยๆ และไต่อันดับต่อเนื่องมาสักพักแล้ว (อันดับ 13 ในเดือนพฤศจิกายน 2023, อันดับ 11 ในเดือนมกราคม 2024) โดย TIOBE วิเคราะห์ว่าการเข้ามาติด Top 10 รอบนี้น่าจะอยู่ได้ยาวๆ เพราะได้รับความนิยมอย่างแพร่หลายในวงการไอทีแล้ว

By lew Founder on Tag: Go, Programming
Go

โครงการภาษา Go ออกเวอร์ชั่น 1.22 ปรับปรุงย่อยโดยมีความเปลี่ยนแปลงสำคัญคือการแก้ไขระบบ for-loop ให้รองรับการรันตามจำนวนรอบที่ต้องการอย่างเดียวโดยไม่ต้องสร้าง collection อีก แนวทางนี้ทำให้โค้ดภาษา Go ใกล้เคียงกับไพธอนยิ่งขึ้น

ในเวอร์ชั่นนี้ยังมีการแก้ปัญหาตัวแปรใน loop ที่ภาษา Go เคยแชร์ตัวแปรระหว่างรอบการวน loop ให้เป็นตัวแปรเดียวกัน ซึ่งทำให้โปรแกรมเมอร์หลายคนเจอบั๊กโดยไม่ได้ตั้งใจ หลังจากนี้จะทำให้ตัวแปรถูกสร้างใหม่ทุกครั้งที่วน loop แม้พฤติกรรมจะเปลี่ยนไปบ้างแค่คาดว่าจะแทบไม่กระทบแอปพลิเคชั่นส่วนใหญ่ โดยมีเครื่องมือช่วยตรวจสอบ loop ที่ได้รับผลกระทบให้

By lew Founder on Tag: Go, Programming
Go

โครงการ Go รับข้อเสนอ “enhanced ServeMux routing” ที่ปรับปรุง ServeMux ตัวจัดการเลือกว่าฟังก์ชั่นใดจะเป็นผู้ตอบรีเควส HTTP จากเดิมเลือก path ได้ง่ายๆ เท่านั้น มาเป็นการเลือกตามรูปแบบที่กำหนดได้ละเอียดขึ้น

By lew Founder on Tag: Google, Go, Kubernetes, Open Source
Google

กูเกิลประกาศส่งโครงการ ko ที่ใช้สำหรับสร้างอิมเมจคอนเทนเนอร์ (container image builder) สำหรับแอปพลิเคชั่นภาษา Go ใน Kubernetes โดยไม่ต้องใช้ Docker เลย

ภาษา Go ได้รับความนิยมสำหรับแอปพลิเคชั่นบนคลาวด์จำนวนมาก การที่นักพัฒนาสามารถคอมไพล์โปรแกรมใน Kubernetes ได้โดยตรงทำให้สามารถใช้งานกับระบบ CI/CD ได้สะดวกขึ้น

CNCF เองมีโครงการที่ดูแลหลักคือ Kubernetes ที่กูเกิลส่งโครงการเข้าไปแล้วก่อนหน้านี้ การส่งโครงการเข้า CNCF ทำให้องค์กรอื่นๆ สามารถใช้งานได้สะดวกใจยิ่งขึ้น เพราะทั้งโค้ด, ทรัพย์สินทางปัญญาที่เกี่ยวข้อง, และเครื่องหมายการค้าต่างๆ จะดูแลโดย CNCF ที่เป็นองค์กรกลาง

By mk Founder on Tag: Go, Development, Programming
Go

ทีมพัฒนา Go ออกผลสำรวจนักพัฒนา Go Developer Survey 2021 (ข่าวของปี 2020) ผลยังออกมาคล้ายกับการสำรวจของปี 2020

By lew Founder on Tag: Go, Programming, Algorithm
Go

ภาษา Go เตรียมเปลี่ยนฟังก์ชั่น sort จากเดิมใช้ QuickSort มาเป็น pdqsort หรือ pattern-defeating quicksort อัลกอริทึมเรียงลำดับที่ประสิทธิภาพโดยรวมดีขึ้นมากในหลายกรณี แม้ว่ากรณีที่แย่ที่สุดยังเป็น O(n log n) เช่นเดิมก็ตาม

By mk Founder on Tag: Go, Programming
Go

ภาษา Go ออกเวอร์ชัน 1.18 มีการเปลี่ยนแปลงสำคัญคือรองรับ generic แล้ว

generic เป็นแนวคิดของโลกโปรแกรมมิ่ง ที่เขียนฟังก์ชันหรืออัลกอริทึมกลาง เพื่อใช้ได้กับตัวแปรไม่ระบุชนิด (เช่น เขียน reverse sort สำหรับ Int, Float, String ด้วยโค้ดชุดเดียวกัน) ถือเป็นฟีเจอร์พื้นฐานในภาษาโปรแกรมสมัยใหม่ เช่น Java, Python, C#, TypeScript, Rust, Swift

By mk Founder on Tag: Go, Programming, Development
Go

ชุมชนนักพัฒนาภาษา Go เผยผลสำรวจความเห็นนักพัฒนาประจำปี 2020 (ข่าวของปี 2019) มีผู้ตอบแบบสอบถาม 9,648 คน ลดลงจากปีก่อนหน้าเล็กน้อย ภาพรวมของสถิติยังคล้ายกับของเดิม

By mk Founder on Tag: Go, Programming, Malware, Security
Go

บริษัทความปลอดภัยไซเบอร์ Intezer ออกรายงานว่า Go กลายเป็นภาษายอดนิยมของอาชญากรไซเบอร์ โดยมัลแวร์ที่เขียนด้วย Go เติบโตขึ้นถึง 2,000% ภายในเวลาเพียงไม่กี่ปี

มัลแวร์ Go ตัวแรกถูกค้นพบในปี 2012 แต่ก็ใช้เวลาอีกนานกว่าความนิยมจะเพิ่มขึ้น จนมาพุ่งแรงในช่วงไม่กี่ปีที่ผ่านมา ด้วยเหตุผลว่า Go เป็นภาษาที่เขียนง่าย เขียนทีเดียวทำงานได้ข้ามแพลตฟอร์ม ทำให้ผู้สร้างมัลแวร์เริ่มย้ายภาษาจาก C/C++ มาเป็น Go แทน

By lew Founder on Tag: Go, Programming, Apple M1
Go

โครงการ Go ออกรุ่น 1.16 beta 1 ที่มีความเปลี่ยนแปลงสำคัญคือการรองรับ Apple M1 (Apple Silicon) เต็มรูปแบบเมื่อเลือกคอมไพล์ระบบปฎิบัติการเป็น Darwin และสถาปัตยกรรมซีพียูเป็น Arm64 พร้อมกันนี้ก็แยกการคอมไพล์สำหรับ iOS เป็น ios/arm64 แทน

สำหรับฟีเจอร์ภาษา ส่วนหนึ่งที่น่าสนใจคือการรองรับการวางไฟล์ไบนารีไว้ในตัวด้วย directive แบบ //go:embed [ชื่อไฟล์] ทำให้โค้ดภายในมองเห็นข้อมูลในไฟล์เป็นตัวแปรแบบไบต์อาเรย์โดยไม่ต้องเปิดไฟล์เองอีก อีกไลบรารีที่เพิ่มมาคือ io/fs สำหรับการเข้าถึงไฟล์แบบอ่านอย่างเดียว

Subscribe to Go