Go Language
AWS ประกาศรองรับภาษา Go เป็นทางการสำหรับการพัฒนา Lambda เพิ่มทางเลือกสำหรับนักพัฒนาที่เคยชินกับ Go อยู่แล้ว
การพัฒนาหลักๆ คือการสร้างฟังก์ชั่นที่รับอาร์กิวเมนต์ 0-2 ตัว (ค่าแรกที่รับคือ context.Context) และคืนค่า 0-2 ค่า (ค่าสุดท้ายที่คืนคือ error) ไลบรารี aws-lambda-go รองรับการแปลงค่าระหว่าง Go และ json ให้
เมื่อปลายปีที่แล้วเพิ่งครบรอบ 8 ปีภาษา Go โดยโครงการจำนวนมากที่ใช้ Go เป็นโครงสร้างสำหรับคลาวด์ เช่น Docker/Moby หรือ Kubernetes การใช้งาน Go ใน AWS Lambda คงทำให้คนทำงานกับคลาวด์อยู่แล้วสะดวกขึ้น
ที่มา - AWS
กูเกิลเปิดตัวภาษา Go มาตั้งแต่ 8 ปีที่แล้วจากการรวมตัวทีมงานมือเก๋า เช่น Rob Pike, Ken Thompson, Russ Cox, และ Robert Griesemer วันนี้เมื่อครบรอบ 8 ปีทางโครงการก็ประกาศฉลองความสำเร็จของโครงการที่ทำได้ในเวลาอันสั้น
นับตั้งแต่เปิดตัว 8 ปีที่แล้ว ภาษา Go ได้รับความสนใจสูงขึ้นอย่างรวดเร็ว ค่าดัชนีความสนใจตาม Google Trends แสดงให้เห็นว่าอัตราความสนใจยังเติบโตแบบ exponential โดยตอนนี้มันเป็นภาษาที่ได้รับความนิยมอันดับ 9 ใน GitHub แซงหน้าภาษา C เป็นภาษาที่นักพัฒนาชอบเป็นอันดับ 5 จากการสำรวจของ StackOverflow
ดัชนีจัดอันดับภาษาเขียนโปรแกรมยอดนิยม TIOBE รายงานอันดับเดือนกรกฎาคม 2017 โดยมีประเด็นสำคัญคือ Go ขึ้นมาติด 10 อันดับแรกเป็นครั้งแรก โดยอยู่ในอันดับที่ 10 และมีอัตราความนิยมเพิ่มขึ้นสูงสุดใน 20 อันดับแรก
ภาษายอดนิยม 6 อันดับแรกไม่มีการเปลี่ยนแปลง ได้แก่ Java, C, C++, Python, C# และ PHP ตามลำดับ
TIOBE ให้ความเห็นว่าหาก Go ยังรักษาระดับการเติบโตนี้ต่อไปได้เรื่อยๆ ก็เป็นไปได้ว่า Go อาจแซงหน้า JavaScript และ Python ได้ในอนาคต
ที่มา: TIOBE ผ่าน somkiat.cc
กูเกิลเปิดตัว TensorFlow ไลบรารีสำหรับเทรนงาน machine learning มาตั้งแต่ปลายปี 2015 และได้รับการยอมรับอย่างกว้างขวาง วันนี้กูเกิลประกาศออก TensorFlow 1.0 ในงานสัมมนา TensorFlow Developer Summit แล้ว
ของใหม่ใน TensorFlow 1.0 ได้แก่
กูเกิลเปิดตัวโครงการ Grumpy ตัวแปลงโค้ดภาษา Python เป็นภาษา Go แล้วรันได้ในตัว โดยเป้าหมายของโครงการคือโค้ดที่เป็นภาษา Python ล้วนทั้งหมดจะสามารถรันบน Grumpy ได้ทันที
Grumpy เกิดจากความต้องการของกูเกิลที่รันโค้ด Python จำนวนมาก แต่โค้ดเหล่านั้นกลับไม่สามารถกระจายโหลดไปตามจำนวนเธรดได้ดีพอ จากข้อจำกัด global interpreter lock (GIL) ที่เป็นข้อจำกัดของ Python มาเป็นเวลานาน ทำให้บริการที่ใช้ Python มากๆ เช่น YouTube มีปัญหาไม่สามารถขยายระบบได้ดีนัก
โค้ดที่เขียนสำหรับ Grumpy โดยเฉพาะจะสามารถ import โมดูลของภาษา Go มาใช้งานได้ด้วย เช่น การเรียกโมดูล net/http
รายงานความนิยมภาษา TIOBE สรุปดัชนีเดือนตุลาคม พบว่าภาษาที่กลับมาได้รับความนิยมอย่างสูงตอนนี้กลับเป็นภาษา Go ที่ขึ้นมาจากอันดับ 65 ในปี 2015 มาเป็นอันดับ 16 ดัชนีความนิยมเพิ่มเป็น 1.809% เปลี่ยนแปลง +1.67%
ทาง TIOBE วิเคราะห์ว่าความนิยมของ Go มาจากความนิยม Docker ในช่วงหลัง ขณะที่ภาษาที่ได้รับความนิยมเพิ่มขึ้นคล้ายกันคือ Groovy มีคะแนนดัชนี TIOBE สูงขึ้นเรื่อยๆ มาตั้งแต่ปีที่แล้ว
ภาษา 5 อันดับแรกยังเป็น Java, C, C++, C#, และ Python ไม่เปลี่ยนแปลง แต่ Objective-C ที่เคยขึ้นสูงสุดถึง 12.875% เป็นอันดับ 3 ในปี 2014 และตกลงไปเรื่อยๆ ตอนนี้ก็กลับขึ้นมาใหม่อยู่ที่อันดับ 10
ที่มา - TIOBE
ทีมงานโอเพนซอร์สของไอบีเอ็มพอร์ตภาษา Go ของกูเกิลไปรันบน System z s390x พร้อมกับเปิดให้ดาวน์โหลดบน Github เคียงคู่กับโครงการอื่นๆ ที่ไอบีเอ็มพอร์ตไปยัง System z เช่น Cassandra, Spark, Mongo
ภาษา Go เปิดตัวในปี 2009 มีจุดเด่นที่วางกระบวนการทำงานขนานตั้งแต่ต้น กระบวนการสร้างเธรด (goroutine) และการสื่อสารระหว่างกันเป็นธรรมชาติของภาษาตั้งแต่ต้น และเป็นภาษาแห่งปีของดัชนี ITOBE จากการได้รับความนิยมเพิ่มขึ้นอย่างรวดเร็ว และตอนนี้คาดว่าจะเข้ามาอยู่ในทำเนียบภาษาที่ได้รับความนิยม 50 ภาษาแรกเร็วๆ นี้
ข่าวสั้นครับ คุณ Russ Cox นักพัฒนาภาษา Go ได้ออกมาประกาศว่า Go 1.5 จะเป็นรุ่นสุดท้ายที่ใช้ชื่อนี้ สำหรับรุ่นถัดไปจะเปลี่ยนไปใช้ชื่อว่า Al (ตัวอักษร 2 ตัวแรกของบริษัท Alphabet) และนับรุ่นต่อเป็น Al 1.6 เลยครับ
ที่มา: Twitter
ข่าวสั้นครับ คุณ Russ Cox นักพัฒนาภาษา Go ได้ออกมาประกาศว่า Go 1.5 จะเป็นรุ่นสุดท้ายที่ใช้ชื่อนี้ สำหรับรุ่นถัดไปจะเปลี่ยนไปใช้ชื่อว่า Al (ตัวอักษร 2 ตัวแรกของบริษัท Alphabet) และนับรุ่นต่อเป็น Al 1.6 เลยครับ
ที่มา: Twitter
Go ออกรุ่น 1.5 เป็นรุ่นหลักที่แนะนำให้นักพัฒนาใช้งาน รุ่นนี้แก้ปัญหาที่นักพัฒนาเรียกร้องกันมานานคือ garbage collector (GC) หน่วงทำให้มีปัญหาเมื่อใช้งานที่จองหน่วยความจำปริมาณมากๆ
นอกจากการแก้ปัญหาหลักแล้ว ยังมีการปรับปรุงอื่นๆ เช่น
รายการปรับแต่งอื่นๆ อ่านได้ในเอกสาร Go 1.5
ที่มา - Go Blog
หลังจากพ้นกำหนดการในการออกเวอร์ชันใหม่มากว่า 20 วัน ภาษา Go ก็ได้ฤกษ์ออกเวอร์ชัน 1.5 อย่างสมบูรณ์เสียที โดยในเวอร์ชันนี้ได้พัฒนาปรับปรุงขึ้นมาหลาย ๆ ส่วน อาทิเช่น
รายละเอียดอื่น ๆ สามารถติดตามได้จากที่มาของข่าว
แม้ว่าบริการของกูเกิลหลายบริการจะถูกบล็อคในจีนแต่ภาษา Go กลับได้รับความนิยมในจีนอย่างสูง ปริมาณการค้นหา golang บนกูเกิลมาจากในจีนมากที่สุดในโลก (ไม่รู้ว่าคนจีนเข้ากูเกิลได้อย่างไร?) เมื่อทางจีนจัดงาน GopherChina ทางทีมงาน Go ก็ส่ง Robert Griesemer ไปร่วมงานด้วย
Parse ผู้ให้บริการ API สำหรับแอพพลิเคชั่นบนสมาร์ทโฟนพัฒนาบริการขึ้นมาจาก Ruby on Rails เป็นหลัก แต่เมื่อจำนวนเครื่องลูกข่ายที่ต้องให้บริการเพิ่มขึ้นอย่างรวดเร็วและโค้ดมีขนาดใหญ่ขึ้นเรื่อยๆ Ruby on Rails กลับแสดงปัญหา
เพียงแค่ปี 2012 ทาง Parse ต้องดูแลเซิร์ฟเวอร์ถึง 200 เครื่องบน AWS เป็น unicorn worker 24 โปรเซสต่อเครื่องให้บริการ 3000 ครั้งต่อวินาทีให้กับแอพพลิเคชั่น 60,000 แอพ ระยะเวลาการขึ้นระบบแต่ละรอบใช้เวลา 20 นาที
คอมไพล์เลอร์ภาษา Go ก่อนหน้านี้พัฒนาด้วยภาษาซีมาโดยตลอด แต่เมื่อคืนที่ผ่านมา Russ Cox ทีมงานภาษา Go ก็ลบโค้ดเหล่านี้ออกจาก Git ใน master branch แล้ว
การที่ Go สามารถคอมไพล์ตัวเองได้ ทำให้ Go กลายเป็นภาษาในกลุ่ม self-hosting อีกหนึ่งตัว
ตอนนี้คอมไพล์เลอร์ที่เขียนด้วยภาษา Go ยังช้ากว่าที่เขียนด้วยซีอยู่เล็กน้อย แต่ Cox ระบุว่าน่าจะแก้ปัญหาได้ภายในสัปดาห์หน้า
ที่มา - @_rsc
ภาษา Go ได้รับความนิยมมากขึ้นเรื่อยๆ ตอนนี้บริษัท JoshSoftware จากอินเดียก็ประกาศจัดงานแข่งขัน Go Challenge โดยได้รับการสนับสนุนจากชุมชน การแข่งขันนี้จะมีทั้งหมด 9 ครั้งแต่ละครั้งจะมีคำถามเพียงข้อเดียวประกาศคำถามวันที่ 1 ของทุกเดือน โดยเชิญผู้เชี่ยวชาญมาออกคำถามให้
รางวัลแบ่งออกเป็นสองรางวัลคือ รางวัลคัดเลือกโดยผู้ออกคำถาม และรางวัลจากเสียงโหวต ทั้งสองรางวัลคล้ายๆ กันโดยมีสปอนเซอร์หลายรายร่วมให้รางวัล เช่น หนังสือจาก O'Reilly, บัตรของขวัญอเมซอนจาก InfluxDB, กระเป๋า Go จาก Apcera
การส่งคำตอบต้องสร้างบัญชีจาก GitHub แล้ว fork repository สำหรับส่งคำตอบออกไป จากนั้นจึงส่งคำตอบด้วย pull request
Amazon Web Services ประกาศเตรียมรองรับภาษา Go อย่างเป็นทางการ หลังจากตอนนี้ชุด SDK รองรับภาษา Java, C#, Ruby, Python, JavaScript, PHP, และ Objective C
ชุด SDK ใช้ชื่อว่า aws-go เป็นการพอร์ตมาจากโครงการเดียวกันของ Stripe โดยช่วงแรกจะเป็นโครงการทดลอง ทางอเมซอนจะเข้ามาเพิ่มชุดทดสอบ และเชิญชวนให้ชุมชนมาช่วยกันส่งความเห็น
โครงการอยู่ใน GitHub สามารถไปดาวน์โหลดมาเล่นกันได้
ที่มา - AWS Blog
บริการคลาวด์ของ DigitalOcean มีความพิเศษอย่างหนึ่งคือลูกค้าสามารถเข้าถึงหน้าจอคอนโซลได้จากเว็บ ทำให้จัดการเครื่องได้แม้จะเผลอคอนฟิกจนเน็ตเวิร์คไม่ทำงานก็ตาม ทาง Digital Ocean ประกาศว่าเพิ่งเขียนโค้ดในส่วนนี้เสียใหม่โดยใช้ภาษา Go
ประโยชน์ของการใช้ภาษา Go สำหรับ DigitalOcean ได้แก่ ประสิทธิภาพในการจัดการ TCP และ websocket ที่ดี ทำให้ความเร็วของคอนโซลดีขึ้น, ระบบอินเทอร์เฟซ (Interface) ทำให้โค้ดทดสอบได้ง่าย, มีไลบรารี net/http
ในตัวทำให้ดีพลอยขึ้นระบบจริงได้โดยไม่ต้องดาวน์ระบบ, ระบบแพ็กเกจของ Go ทำให้แต่ละทีมแชร์โค้ดกันได้ง่าย
หนึ่งปีกว่าๆ หลังออก Go 1.0 รุ่น "เสถียร" ถึงตอนนี้ทีมงาน Go ก็ออกรุ่น 1.1 แล้ว โดยยังคงความเข้ากันได้กับ Go 1.0 เต็มรูปแบบ (เพราะทีมงานสัญญาไว้ตั้งแต่รุ่น 1.0)
การปรับปรุงในรุ่นนี้ส่วนมากจะเป็นการปรับปรุงประสิทธิภาพเป็นส่วนมาก เช่นการปรับปรุงความเร็วทั้งตัวคอมไพล์เลอร์, ลิงก์เกอร์, ตัวจัดการหน่วยความจำ, และระบบ goroutine โดยทั่วไปแล้วประสิทธิภาพจะดีขึ้น 30%-40%
การเปิดซอร์สทำให้ Go มีนักพัฒนาจากภายนอกกูเกิลมาร่วมส่งแพตซ์ถึง 2600 แพตซ์ จากนักพัฒนา 161 คน ในช่วงหลังผมเริ่มเห็นประกาศรับสมัครงานหาโปรแกรมเมอร์ที่มีประสบการณ์กับภาษานี้แล้ว ก็นับว่าเป็นอีกภาษาที่น่าศึกษาเอาไว้
ที่มา - Golang
ภาษา Go ที่เปิดตัวโดยกูเกิลเมื่อเดือนพฤศจิกายน 2009 มีอายุครบ 3 ปีแล้ว ซึ่งตอนนี้ก็มีผู้ใช้ภาษา Go มากมาย เช่น BBC, Novartis, SoundCloud, SmugMug, Canonical ส่วนกูเกิลก็ใช้ภาษา Go ในส่วนที่เห็นชัด ๆ คือ Doodle ที่เคลื่อนไหวได้ ในเทศกาลต่าง ๆ นั่นเอง
ตอนนี้นักพัฒนากำลังพัฒนาภาษา Go เวอร์ชัน 1.1 หลังจากเพิ่งปล่อยเวอร์ชัน 1.0 ไปเมื่อเดือนมีนาคมปีนี้ (ข่าวเก่า)
ที่มา - The H
โทรจัน Encriyoko เพิ่งถูกค้นพบเมื่อกลางเดือนที่ผ่านมา ตัวมันเองทำงานด้วยการเข้ารหัสไฟล์เอกสารจำนวนมากในเครื่อง โดยสร้างกุญแจการเข้ารหัสด้วยการสุ่มขึ้นมาหรือใช้กุญแจจากไฟล์ D:\nepia.dud
จุดที่ทำให้มันน่าสนใจกว่าโทรจันอื่นๆ คือมันพัฒนาด้วยภาษา Go
ตัวโทรจันเป็นไฟล์ติดตั้งที่เขียนด้วย .NET ใช้ชื่อไฟล์ว่า GalaxyNxRoot.exe
เมื่อติดตั้งแล้วจะได้สองไฟล์ที่พัฒนาด้วยภาษา Go นั่นคือ PPSAP.exe
และ adbtool.exe
ไฟล์แรกจะอัพโหลดข้อมูลเกี่ยวกับเครื่องของเรากลับไปยังเซิร์ฟเวอร์ อีกไฟล์หนึ่งจะดาวน์โหลด DLL สำหรับการเข้ารหัสไฟล์ในเครื่องของเรามารัน
ใครรูทเครื่องเล่นด้วยโปรแกรมแปลกๆ บ่อยๆ ก็ระวังตัวกันด้วยนะครับ
ภาษาที่กูเกิลสร้างขึ้นในตอนนี้คงมีสองภาษาสำคัญคือภาษา Dart สำหรับเว็บและภาษา Go สำหรับงานระดับล่างที่ต้องการประสิทธิภาพสูง ถ้าใครมีโอกาสฝึกภาษา Go มาก่อนหน้านี้จะพบว่าภาษาและไลบรารีมีการพัฒนาที่เร็วมากจนกระทั่งโค้ดเดิมใช้งานไม่ได้แม้พัฒนามาไม่นาน นั่นเป็นเพราะตัวภาษา Go ยังอยู่ระหว่างการพัฒนา แต่วันนี้กูเกิลก็ประกาศภาษา Go รุ่น 1.0 ที่จะรับประกันความเข้ากันได้ในรุ่นต่อๆ ไป (forward compatibility)
แม้จะไม่ได้แสดงตัวในส่วน keynote แต่ App Engine ก็เปิดฟีเจอร์ชุดใหม่ทันทีต่อจาก Android โดยการเพิ่มฟีเจอร์ส่วนมากเป็นการเพิ่มเอาใจลูกค้าองค์กร (ที่เป็นลูกค้าสำคัญของ App Engine)
แม้ว่าภายในกูเกิลนั้นจะใช้งานภาษา C++ และ Python อย่างหนักก็ตาม แต่ทั้งสองภาษาก็ยังมีข้อจำกัดอยู่บางส่วน ภาษา C++ นั้นต้องเสียเวลาในการคอมไพล์นานในการแก้ไขแต่ละครั้ง ส่วนภาษา Python นั้นมีปัญหาเรื้อรังในการรองรับมัลติคอร์ เพื่อแก้ปัญหานี้กูเกิลจึงเสนอ "ทางสายกลาง" ให้กับเราๆ ท่านๆ ด้วยภาษา Go
ภาษา Go เป็นภาษาที่ต้องการการคอมไพล์ เช่นเดียวกับภาษา C++ แต่มีข้อดีกว่าหลายประการคือ