1.1 กำเนิดของภาษา Go
Go หรือที่เรียกว่า Golang เป็นภาษาที่ถูกคอมไพล์แบบคงที่และถูกพัฒนาโดย Google ผู้ออกแบบรวมถึง Rob Pike, Ken Thompson, และ Robert Griesemer พวกเขาเริ่มต้นออกแบบ Go language ในปี 2007 และปล่อยตัวอย่างสาธารณะในปี 2009 ความเหมาะสมเดิมหลังจากการกำลังพัฒนาซอฟต์แวร์ใน Google ณ เวลานั้น โดยเฉพาะในการประมวลผลแบบพร้อมและบริการเครือข่ายสำหรับระบบซอฟต์แวร์ขนาดใหญ่
Rob Pike, Ken Thompson, และ Robert Griesemer ตั้งใจที่จะสร้างภาษาใหม่ที่สามารถคอมไพล์และทำงานอย่างมีประสิทธิภาพเหมือนภาษาแบบคงที่ในขณะเดียวกันยังมีไวยากรณ์ที่ชัดเจนและกระชับเหมือนภาษาแบบไดนามิก จุดมุ่งหมายของ Go language คือการรักษาไวยากรณ์ที่ง่ายๆ พร้อมกับการสนับสนุนในการประมวลผลแบบพร้อม การเก็บขยะอัตโนมัติ และคุณสมบัติภาษาที่ทันสมัยอื่นๆ
1.2 ลักษณะของภาษา Go
ภาษาแบบคงที่
Go เป็นภาษาแบบคงที่ซึ่งหมายความว่าชนิดของตัวแปรทั้งหมดต้องถูกกำหนดในขณะที่คอมไพล์ คุณสมบัตินี้ช่วยปรับปรุงประสิทธิภาพโปรแกรมเนื่องจากคอมไพเลอร์ทราบชนิดของตัวแปรแต่ละตัวอย่างถูกและสามารถสร้างโค้ดเครื่องจักรที่ถูกปรับแต่งได้
กลไกการเก็บขยะที่ซ้ำซ้อน
Go language มีกลไกการเก็บขยะที่ซ้ำซ้อนที่ทำความสะอาดหน่วยความจำที่ไมได้ใช้อัตโนมัติ ลดความเสี่ยงของการจัดการหน่วยความจำด้วยตนเองและลดความเสี่ยงของการรั่วหรือหลุดของหน่วยความจำสำหรับผู้พัฒนา
รองรับการโปรแกรมแบบพร้อม (goroutines และ channels)
Go language มีกลไกสำหรับการโปรแกรมแบบพร้อม เช่น goroutines และ channels ทำให้ง่ายต่อการพัฒนาโปรแกรมที่ดำเนินการแบบพร้อม โดย goroutines เป็นเธรดที่เบาหนักในขณะที่ channels ใช้สำหรับการส่งข้อมูลอย่างปลอดภัยระหว่าง goroutines
ความเร็วในการคอมไพล์
การออกแบบคอมไพเลอร์ของ Go language มุ่งเน้นไปที่การสนับสนุนคอมไพเลชันที่รวดเร็ว นี่หมายความว่า แม้โครงการขนาดใหญ่ การคอมไพเลชันของ Go language จะช้าลงมากกว่าภาษาโปรแกรมอื่นๆ
คลังสมบัติมาตรฐานที่สมบูรณ์
Go language มีคลังสมบัติมาตรฐานที่อุดมด้วยที่ครอบคลุมหลายๆ ดาวน์เท่ากับเครือข่าย, การเข้ารหัส, และการประมวลผลข้อมูล ส่วนใหญ่ยกรุงให้กับการประสิทธิภาพและความสะดวกสบายของการพัฒนา Go language
รองรับการคอมไพเลชันกระจายแพล็ตฟอร์ม
Go language รองรับการคอมไพเลชันกระจายแพล็ตฟอร์มทำให้ง่ายต่อการคอมไพเลชันโปรแกรมเป็นไฟล์ที่สามารถรันได้สำหรับระบบปฏิบัติการที่แตกต่างกัน สามารถรันโปรแกรมที่เขียนด้วย Go ได้โดยง่ายในสภาพแวดล้อมต่างๆ
1.3 ประเด็นในการใช้งานของภาษา Go
เนื่องด้วยการสนับสนุนที่มั่นคงสำหรับการคงที่ ไวยากรณ์กระชับ และประสิทธิภาพที่จำเป็น Go language ได้ถูกใช้งานอย่างแพร่หลายในหลายสาขา:
โปรแกรมด้านเซิร์ฟเวอร์
Go มักถูกใช้ที่สร้างเซิร์ฟเวอร์ที่มีประสิทธิภาพสูง โดยเฉพาะอย่างยิ่งกับสิ่งที่ต้องการการจัดการการเชื่อมต่อแบบพร้อม และข้อมูลจำนวนมาก เช่นเซิร์ฟเวอร์สื่อสารแบบเรียลไทม
ระบบที่กระจาย เช่น Kubernetes
Go เป็นทางเลือกยอดนิยมสำหรับการสร้างระบบที่กระจาย และเครื่องมือตัวควบคุมคอนเทนเนอร์ที่มีชื่อเสียงเช่น Kubernetes ถูกพัฒนาโดยใช้ Go นำเสนอคุณสมบัติของ Go ในการจัดการระบบที่กระจายโดยมีประสิทธิภาพ
โปรแกรมเครือข่าย
คลังสมบัติมาตรฐานของ Go language ประกอบด้วยคลังสมบัติที่ถุงเงินสำหรับการเขียนโปรแกรมเครือข่าย ทำให้การพัฒนาโปรแกรมและบริการเครือข่ายง่ายและมีประสิทธิภาพมากขึ้น
แพลตฟอร์มบริการคลาวด์
แพลตฟอร์มบริการคลาวด์หลายประการ เช่น Google Cloud Platform และ AWS มีการสนับสนุน Go language ทำให้ง่ายที่จะพัฒนาและนำ Go applications มาใช้งานในสภาพแวดล้อมหลายๆ พร้อม
สถาปัตยกรรมแบบมิโครเซอร์วิส
โปรแกรมที่สร้างด้วยสถาปัตยกรรมแบบมิโครเซอร์วิสสามารถที่จะได้รับประโยชน์จากคุณสมบัติเบาโครงง่ายและความพร้อมที่สูงของ Go จึงทำให้ Go เป็นทางเลือกที่ดีสำหรับการพัฒนามิโครเซอร์วิส
การพัฒนาเครื่องมือบรรทัดคำสั่ง
ไวยากรณ์ที่กระชับ และความสามากในการคอมไพเลชันหลากหลายของ Go ทำให้ถือว่าเป็นอย่างที่ดีสำหรับการพัฒนาเครื่องมือบรรทัดคำสั่ง เครื่องมือ เช่น Docker และ etcd ถูกสร้างด้วย Go
เหล่านี้เป็นเพียงเพียงบางส่วนของการใช้งานมากมายสำหรับภาษา Go ความง่าย ประสิทธิภาพ และความเชื่อถือทำให้มันเป็นเครื่องมือที่ไม่สามารถหาได้ขาดในการพัฒนาซอฟต์แวร์ที่ทันสมัย