Go Language
Tags:
Go

ข่าวสั้นครับ คุณ Russ Cox นักพัฒนาภาษา Go ได้ออกมาประกาศว่า Go 1.5 จะเป็นรุ่นสุดท้ายที่ใช้ชื่อนี้ สำหรับรุ่นถัดไปจะเปลี่ยนไปใช้ชื่อว่า Al (ตัวอักษร 2 ตัวแรกของบริษัท Alphabet) และนับรุ่นต่อเป็น Al 1.6 เลยครับ

ที่มา: Twitter

Tags:
Go

ข่าวสั้นครับ คุณ Russ Cox นักพัฒนาภาษา Go ได้ออกมาประกาศว่า Go 1.5 จะเป็นรุ่นสุดท้ายที่ใช้ชื่อนี้ สำหรับรุ่นถัดไปจะเปลี่ยนไปใช้ชื่อว่า Al (ตัวอักษร 2 ตัวแรกของบริษัท Alphabet) และนับรุ่นต่อเป็น Al 1.6 เลยครับ

ที่มา: Twitter

Tags:
Go

Go ออกรุ่น 1.5 เป็นรุ่นหลักที่แนะนำให้นักพัฒนาใช้งาน รุ่นนี้แก้ปัญหาที่นักพัฒนาเรียกร้องกันมานานคือ garbage collector (GC) หน่วงทำให้มีปัญหาเมื่อใช้งานที่จองหน่วยความจำปริมาณมากๆ

นอกจากการแก้ปัญหาหลักแล้ว ยังมีการปรับปรุงอื่นๆ เช่น

  • รองรับการตั้งจำนวนเธรดด้วยตัวแปร GOMAXPROCS
  • รองรับการคอมไพล์เป็น shared library
  • รองรับ ARM และ iOS ดีขึ้น

รายการปรับแต่งอื่นๆ อ่านได้ในเอกสาร Go 1.5

ที่มา - Go Blog

Tags:
Go

หลังจากพ้นกำหนดการในการออกเวอร์ชันใหม่มากว่า 20 วัน ภาษา Go ก็ได้ฤกษ์ออกเวอร์ชัน 1.5 อย่างสมบูรณ์เสียที โดยในเวอร์ชันนี้ได้พัฒนาปรับปรุงขึ้นมาหลาย ๆ ส่วน อาทิเช่น

  • compiler และ runtime ที่เขียนด้วยภาษา Go ทั้งหมด (ข่าวเก่า)
  • Garbage Collector ทำงานแบบ Concurrent แล้ว
  • โปรแกรมภาษา Go จะถูกทำงานด้วยจำนวน core ของ CPU ทั้งหมดที่มี จากเดิมที่มีค่าเป็น 1 core ในเวอร์ชันก่อนหน้านี้
  • เพิ่มคำสั่งรองรับการทำ vendoring external dependencies ในระยะทดลอง

รายละเอียดอื่น ๆ สามารถติดตามได้จากที่มาของข่าว

ที่มา - Go 1.5 Release Notes ผ่าน golang-nuts

Tags:
Go

แม้ว่าบริการของกูเกิลหลายบริการจะถูกบล็อคในจีนแต่ภาษา Go กลับได้รับความนิยมในจีนอย่างสูง ปริมาณการค้นหา golang บนกูเกิลมาจากในจีนมากที่สุดในโลก (ไม่รู้ว่าคนจีนเข้ากูเกิลได้อย่างไร?) เมื่อทางจีนจัดงาน GopherChina ทางทีมงาน Go ก็ส่ง Robert Griesemer ไปร่วมงานด้วย

งาน GopherChina เลียนแบบมาจากงาน GopherCon ในสหรัฐฯ ตัวงานจัดโดยอาสาสมัครในงานได้รับสปอนเซอร์จากบริษัทจำนวนมาก และผู้ลงชื่อขอร่วมงานเกินกว่าสถานที่จะรองรับไหว ในงานมีบริษัทที่มาเล่าประสบการณ์การใช้ภาษา Go ในบริษัทเช่น Qihoo 360 ที่ใช้งานภาษา Go ในระบบ messaging ภายใน จนกระทั่งมีประสบการณ์เจอกรณีที่ heap ขนาดใหญ่ไปถึง 69GB และ GC ทำงานแต่ละครั้งกินเวลาหลายวินาที อีกบริษัทคือ DaoCloud เล่าประสบการณ์การใช้ Go พัฒนาระบบส่งมอบอย่างต่อเนื่อง (continuous delivery)

Griesemer ยังไปเยี่ยมบริษัท Qiniu บริษัทให้บริการสตอเรจบนคลาวด์ พนักงาน 160 คนที่ใช้ภาษา Go เป็นหลัก ให้บริการ 50,000 ล้านไฟล์ และส่งไฟล์วันละ 500 ล้านไฟล์ ทาง Qiniu ระบุว่าที่ Go ได้รับความนิยมอย่างสูงในจีนเพราะภาษา Go กำลังเข้าไปแทนที่ PHP ที่ทำงานได้ช้ากว่า นักพัฒนาจีนชอบภาษา Go ที่เรียบง่ายและระบบแพ็กเกจที่ดี อย่างไรก็ดีปัญหาใหญ่ของ Go คือประสิทธิภาพของ GC ที่ทีมงาน Go กำลังพยายามแก้ปัญหาเช่นกัน

Qiniu เป็นเพียงหนึ่งในหลายๆ บริษัทที่ย้ายไปใช้ Go มากขึ้นเรื่อยๆ ตอนนี้บริษัทจีนใหญ่ๆ เช่น Alibaba, Baidu, Tencen, หรือ Weibo ล้วนใช้ Go กันแล้ว

ทางกลุ่มผู้จัดงานคาดว่าปีหน้า GopherChina จะมีผู้เข้าร่วมงานมากกว่าพันคน

ที่มา - Golang Blog

Tags:
Parse

Parse ผู้ให้บริการ API สำหรับแอพพลิเคชั่นบนสมาร์ทโฟนพัฒนาบริการขึ้นมาจาก Ruby on Rails เป็นหลัก แต่เมื่อจำนวนเครื่องลูกข่ายที่ต้องให้บริการเพิ่มขึ้นอย่างรวดเร็วและโค้ดมีขนาดใหญ่ขึ้นเรื่อยๆ Ruby on Rails กลับแสดงปัญหา

เพียงแค่ปี 2012 ทาง Parse ต้องดูแลเซิร์ฟเวอร์ถึง 200 เครื่องบน AWS เป็น unicorn worker 24 โปรเซสต่อเครื่องให้บริการ 3000 ครั้งต่อวินาทีให้กับแอพพลิเคชั่น 60,000 แอพ ระยะเวลาการขึ้นระบบแต่ละรอบใช้เวลา 20 นาที

ทาง Parse หาทางออกอื่นๆ ด้วยการหาโมเดลการให้บริการแบบ asynchronous ที่แต่ละโปรเซสสามารถรองรับการเชื่อมต่อได้จำนวนมากๆ ทีมงานศึกษาศึกษาทางเลือกหลายทาง ได้แก่ EventMachine, JRuby, C++, C#, และ Go สุดท้ายทีมงานเลือก C# และ Go เป็นสองตัวเลือกสุดท้ายเพราะรองรับ asynchronous ในตัวภาษาเอง ส่วน C# ตกไปเพราะไม่สามารถทำงานกับลินุกซ์ได้ดีพอ

ทีมงานพบว่า Go ทำงานได้อย่างน่าประทับใจ แต่ละการเชื่อมต่อกินหน่วยความจำเพียง 4 กิโลไบต์ ระบบพุชข้อความรองรับการเชื่อมต่อได้ 1.5 ล้านการเชื่อมต่อ จากเดิมที่ได้เพียง 250,000 การเชื่อมต่อ

ความยากในการพอร์ต API จาก Ruby มายัง Go คือการรองรับความผิดพลาดแบบเดียวกับที่ Ruby รองรับ เช่นการ encode ตัวอักขระแบบ Unicode อย่างผิดพลาด, หรือเนื้อข้อความใน HTTP ที่ไม่ควรมีเนื้อ ทีมงานต้องพอร์ตพฤติกรรมเหล่านี้มายัง Go เพื่อให้ API ทำงานได้เหมือนเดิม

การอัพเกรดเวอร์ชั่นใหม่ใช่เวลาลดลงจาก 30 นาทีเหลือ 3 นาที กระบวนการทดสอบ API ใช้เวลาจาก 25 นาทีเหลือ 2 นาที และ Go รองรับการรีสตาร์ตเซิร์ฟเวอร์โดยไม่ตัดการเชื่อมต่อผ่านแพ็กเกจ grace (พัฒนาโดยเฟซบุ๊กบริษัทแม่ของ Parse)

ทาง Parse จะไปร่วมงาน GopherCon ในปีนี้

ที่มา - Parse

Tags:
Go

คอมไพล์เลอร์ภาษา Go ก่อนหน้านี้พัฒนาด้วยภาษาซีมาโดยตลอด แต่เมื่อคืนที่ผ่านมา Russ Cox ทีมงานภาษา Go ก็ลบโค้ดเหล่านี้ออกจาก Git ใน master branch แล้ว

การที่ Go สามารถคอมไพล์ตัวเองได้ ทำให้ Go กลายเป็นภาษาในกลุ่ม self-hosting อีกหนึ่งตัว

ตอนนี้คอมไพล์เลอร์ที่เขียนด้วยภาษา Go ยังช้ากว่าที่เขียนด้วยซีอยู่เล็กน้อย แต่ Cox ระบุว่าน่าจะแก้ปัญหาได้ภายในสัปดาห์หน้า

ที่มา - @_rsc

Tags:

ภาษา Go ได้รับความนิยมมากขึ้นเรื่อยๆ ตอนนี้บริษัท JoshSoftware จากอินเดียก็ประกาศจัดงานแข่งขัน Go Challenge โดยได้รับการสนับสนุนจากชุมชน การแข่งขันนี้จะมีทั้งหมด 9 ครั้งแต่ละครั้งจะมีคำถามเพียงข้อเดียวประกาศคำถามวันที่ 1 ของทุกเดือน โดยเชิญผู้เชี่ยวชาญมาออกคำถามให้

รางวัลแบ่งออกเป็นสองรางวัลคือ รางวัลคัดเลือกโดยผู้ออกคำถาม และรางวัลจากเสียงโหวต ทั้งสองรางวัลคล้ายๆ กันโดยมีสปอนเซอร์หลายรายร่วมให้รางวัล เช่น หนังสือจาก O'Reilly, บัตรของขวัญอเมซอนจาก InfluxDB, กระเป๋า Go จาก Apcera

การส่งคำตอบต้องสร้างบัญชีจาก GitHub แล้ว fork repository สำหรับส่งคำตอบออกไป จากนั้นจึงส่งคำตอบด้วย pull request

ที่มา - Go Challenge

Tags:
AWS

Amazon Web Services ประกาศเตรียมรองรับภาษา Go อย่างเป็นทางการ หลังจากตอนนี้ชุด SDK รองรับภาษา Java, C#, Ruby, Python, JavaScript, PHP, และ Objective C

ชุด SDK ใช้ชื่อว่า aws-go เป็นการพอร์ตมาจากโครงการเดียวกันของ Stripe โดยช่วงแรกจะเป็นโครงการทดลอง ทางอเมซอนจะเข้ามาเพิ่มชุดทดสอบ และเชิญชวนให้ชุมชนมาช่วยกันส่งความเห็น

โครงการอยู่ใน GitHub สามารถไปดาวน์โหลดมาเล่นกันได้

ที่มา - AWS Blog

Tags:
Go

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

ประโยชน์ของการใช้ภาษา Go สำหรับ DigitalOcean ได้แก่ ประสิทธิภาพในการจัดการ TCP และ websocket ที่ดี ทำให้ความเร็วของคอนโซลดีขึ้น, ระบบอินเทอร์เฟซ (Interface) ทำให้โค้ดทดสอบได้ง่าย, มีไลบรารี net/http ในตัวทำให้ดีพลอยขึ้นระบบจริงได้โดยไม่ต้องดาวน์ระบบ, ระบบแพ็กเกจของ Go ทำให้แต่ละทีมแชร์โค้ดกันได้ง่าย

การปรับปรุงโค้ดใหม่ทำให้ลูกค้าสามารถเชื่อมต่อคอนโซลจากเดิมต้องใช้เวลาหลายวินาที เหลือเพียงระดับมิลลิวินาทีเท่านั้น พร้อมกับโหลดโดยรวมของระบบที่ลดลง

ที่มา - DigitalOcean

Tags:
Go

หนึ่งปีกว่าๆ หลังออก Go 1.0 รุ่น "เสถียร" ถึงตอนนี้ทีมงาน Go ก็ออกรุ่น 1.1 แล้ว โดยยังคงความเข้ากันได้กับ Go 1.0 เต็มรูปแบบ (เพราะทีมงานสัญญาไว้ตั้งแต่รุ่น 1.0)

การปรับปรุงในรุ่นนี้ส่วนมากจะเป็นการปรับปรุงประสิทธิภาพเป็นส่วนมาก เช่นการปรับปรุงความเร็วทั้งตัวคอมไพล์เลอร์, ลิงก์เกอร์, ตัวจัดการหน่วยความจำ, และระบบ goroutine โดยทั่วไปแล้วประสิทธิภาพจะดีขึ้น 30%-40%

การเปิดซอร์สทำให้ Go มีนักพัฒนาจากภายนอกกูเกิลมาร่วมส่งแพตซ์ถึง 2600 แพตซ์ จากนักพัฒนา 161 คน ในช่วงหลังผมเริ่มเห็นประกาศรับสมัครงานหาโปรแกรมเมอร์ที่มีประสบการณ์กับภาษานี้แล้ว ก็นับว่าเป็นอีกภาษาที่น่าศึกษาเอาไว้

ที่มา - Golang

Tags:
Go

ภาษา Go ที่เปิดตัวโดยกูเกิลเมื่อเดือนพฤศจิกายน 2009 มีอายุครบ 3 ปีแล้ว ซึ่งตอนนี้ก็มีผู้ใช้ภาษา Go มากมาย เช่น BBC, Novartis, SoundCloud, SmugMug, Canonical ส่วนกูเกิลก็ใช้ภาษา Go ในส่วนที่เห็นชัด ๆ คือ Doodle ที่เคลื่อนไหวได้ ในเทศกาลต่าง ๆ นั่นเอง

ตอนนี้นักพัฒนากำลังพัฒนาภาษา Go เวอร์ชัน 1.1 หลังจากเพิ่งปล่อยเวอร์ชัน 1.0 ไปเมื่อเดือนมีนาคมปีนี้ (ข่าวเก่า)

ที่มา - The H

Tags:

โทรจัน Encriyoko เพิ่งถูกค้นพบเมื่อกลางเดือนที่ผ่านมา ตัวมันเองทำงานด้วยการเข้ารหัสไฟล์เอกสารจำนวนมากในเครื่อง โดยสร้างกุญแจการเข้ารหัสด้วยการสุ่มขึ้นมาหรือใช้กุญแจจากไฟล์ D:\nepia.dud จุดที่ทำให้มันน่าสนใจกว่าโทรจันอื่นๆ คือมันพัฒนาด้วยภาษา Go

ตัวโทรจันเป็นไฟล์ติดตั้งที่เขียนด้วย .NET ใช้ชื่อไฟล์ว่า GalaxyNxRoot.exe เมื่อติดตั้งแล้วจะได้สองไฟล์ที่พัฒนาด้วยภาษา Go นั่นคือ PPSAP.exe และ adbtool.exe ไฟล์แรกจะอัพโหลดข้อมูลเกี่ยวกับเครื่องของเรากลับไปยังเซิร์ฟเวอร์ อีกไฟล์หนึ่งจะดาวน์โหลด DLL สำหรับการเข้ารหัสไฟล์ในเครื่องของเรามารัน

ใครรูทเครื่องเล่นด้วยโปรแกรมแปลกๆ บ่อยๆ ก็ระวังตัวกันด้วยนะครับ

ที่มา - Symantec

Tags:
Go

ภาษาที่กูเกิลสร้างขึ้นในตอนนี้คงมีสองภาษาสำคัญคือภาษา Dart สำหรับเว็บและภาษา Go สำหรับงานระดับล่างที่ต้องการประสิทธิภาพสูง ถ้าใครมีโอกาสฝึกภาษา Go มาก่อนหน้านี้จะพบว่าภาษาและไลบรารีมีการพัฒนาที่เร็วมากจนกระทั่งโค้ดเดิมใช้งานไม่ได้แม้พัฒนามาไม่นาน นั่นเป็นเพราะตัวภาษา Go ยังอยู่ระหว่างการพัฒนา แต่วันนี้กูเกิลก็ประกาศภาษา Go รุ่น 1.0 ที่จะรับประกันความเข้ากันได้ในรุ่นต่อๆ ไป (forward compatibility)

สำหรับปัญหาของการเปลี่ยนแปลงก่อนหน้านี้ กูเกิลมีเครื่องมือ go fix ให้ช่วยแก้ไขปัญหาให้โค้ดทำงานกับมาตรฐานภาษารุ่น 1.0 นี้ได้เป็นส่วนใหญ่ นอกจากนี้ยังมีความสามารถใหม่ๆ เช่น รองรับอักขระ Unicode, ไลบรารี time, และการเปลี่ยนแปลงอีกหลายอย่าง และเครื่องมือ go command ที่ช่วยคอมไพล์ทั้งโครงการโดยไม่ต้องเขียน build script

ภาษา Go นั้นมีที่ใช้งานจริงสำคัญคือ App Engine ของกูเกิลเอง รอบนี้กูเกิลก็ออก SDK รุ่นที่รองรับภาษา Go รุ่นใหม่ออกมาพร้อมกัน

มีใครเริ่มเอาไปใช้งานที่ไหนกันบ้างแล้ว?

ที่มา - Golang

Tags:
App Engine

แม้จะไม่ได้แสดงตัวในส่วน keynote แต่ App Engine ก็เปิดฟีเจอร์ชุดใหม่ทันทีต่อจาก Android โดยการเพิ่มฟีเจอร์ส่วนมากเป็นการเพิ่มเอาใจลูกค้าองค์กร (ที่เป็นลูกค้าสำคัญของ App Engine)

  • Backends API: เป็นการรองรับการทำงานหลังบ้านอย่างเต็มรูปแบบ โดยงานบางอย่างที่ต้องการการคำนวณต่อเนื่องมากกว่าจะเป็นงานที่ทำแล้วจบไปเช่นเว็บทั่วไป Backends API จะให้เลือกได้ว่าต้องการซีพียูและหน่วยความจำเท่าใด โดยซีพียูจะอยู่ในช่วง 600-4800MHz และแรมอยู่ในช่วง 128-1024MB โดยสามารถเปิดให้ Backends รับ HTTP Request จากภายนอกได้โดยตรงหากต้องการ
  • Pull Queues: มาพร้อมกับ Backends โดยจากเดิมที่ Task API จะเรียกโค้ดส่วนรับงานขึ้นมาทำงานเมื่อมีงานในคิว ก็ให้ Backends สามารถมาดึงงานออกไปทำเมื่อพร้อมได้
  • SQL และ SSL: เป็นฟีเจอร์ที่ออกมาจาก Google Apps for Business ที่เปิดตัวไปเมื่อปีที่แล้ว โดยตอนนี้ผู้ใช้ที่จ่ายเงินของ Google Apps จะสามารถทำ SSL ได้บนโดเมนของตัวเอง และมี SQL Server ให้ใช้งานเต็มรูปแบบ
  • รองรับ ภาษา Go: อาจจะเรียกว่ารองรับได้ไม่เต็มปากนัก เพราะ API ที่รองรับในภาษา Go นั้นยังห่างจากภาษาอื่นๆ อยู่มากโดยทำงานพื้นฐานได้อย่างจำกัดเท่านั้น แต่กูเกิลระบุว่าภาษา Go จะมีค่าใช้จ่ายด้านซีพียูถูกกว่าภาษาอื่นๆ เพราะถูกคอมไพล์มาแล้ว

นอกจากนี้แล้วกูกิลยังเปลี่ยนแนวทางการคิดค่าใช้จ่ายใหม่ด้วยการไปคิดตาม "จำนวน" API ที่เรียกใช้แทนการคำนวณจากเวลาของซีพียู เพื่อให้นักพัฒนาคาดเดาค่าใช้จ่ายของซอฟต์แวร์ตัวเองได้ง่ายขึ้น

ที่มา - App Engine Blog (1, 2)

Tags:
Go

แม้ว่าภายในกูเกิลนั้นจะใช้งานภาษา C++ และ Python อย่างหนักก็ตาม แต่ทั้งสองภาษาก็ยังมีข้อจำกัดอยู่บางส่วน ภาษา C++ นั้นต้องเสียเวลาในการคอมไพล์นานในการแก้ไขแต่ละครั้ง ส่วนภาษา Python นั้นมีปัญหาเรื้อรังในการรองรับมัลติคอร์ เพื่อแก้ปัญหานี้กูเกิลจึงเสนอ "ทางสายกลาง" ให้กับเราๆ ท่านๆ ด้วยภาษา Go

ภาษา Go เป็นภาษาที่ต้องการการคอมไพล์ เช่นเดียวกับภาษา C++ แต่มีข้อดีกว่าหลายประการคือ

  • คอมไพล์เร็วมาก กูเกิลโชว์ให้ดูว่าการคอมไพล์โค้ดนับแสนบรรทัดทำได้ภายใน 10 วินาที บนโน้ตบุ๊ก
  • มีระบบจัดการหน่วยความจำในตัว ไม่ต้องจัดการคืนตัวแปรเอง
  • มี type เช่นเดียวกับ C++
  • รองรับมัลติคอร์เต็มรูปแบบ สนับสนุนการใช้ Coroutine แบบเดียวกับ Erlang

ดาวน์โหลดใช้งานได้เลยตอนนี้ ที่ Go

มันเกี่ยวอะไรกับวีซ่าเปล่าหว่า

ที่มา - ArsTechnica, InformationWeek