รู้จักกับภาษา Go ว่าทำไม Google ถึงต้องสร้างภาษา Go ขึ้นมา? วันนี้ Skooldio จะพาเรามาหาคำตอบกัน

บริษัท Google ในปี 2007

ย้อนกลับไปในสมัยก่อนปี 2007 ในยุคสมัยที่ภาษาหลักที่นิยมในการทำระบบนั้นเป็น C++ , Java, Python ซึ่งที่ Google เองก็มี Server ที่พัฒนาด้วยโค้ดนับล้านบรรทัด ซึ่งส่วนใหญ่ก็เป็นโค้ดภาษา C++ และรองลงมาเป็น Java กับ Python ด้วยเช่นกัน ประกอบกับนักพัฒนาที่ Google นับพันที่ต้องคอยพัฒนาโค้ดเหล่านี้ โค้ดที่ถูกรันบนเครื่อง Server จำนวนมหาศาลนับไม่ถ้วน

https://www.pexels.com/photo/iphone-smartphone-app-i-os-5417844/

ปัญหาความช้าในการพัฒนา Software

หนึ่งในต้นตอหลักของปัญหาความช้าของการพัฒนา Software ที่ Google นั้นก็คือระยะเวลาที่ใช้ในการ Compile Code และ Build Dependenciesต่างๆ ของ Program ซึ่งทั้งภาษา C++ และ Java (ซึ่งเป็นโค้ดส่วนใหญ่ของ Google) นั้นใช้เวลานานมากในการ Compile และ Build จึงทำให้ความเร็วในการพัฒนา Software ที่ Google นั้นช้าลงไปมาก เพราะต้องมีการรอการ Compile และ Build อันยาวนาน

ปัญหา Productivity และ Maintainability

อีกปัญหาที่สำคัญไม่แพ้กันก็คือเรื่อง Productivity ของนักพัฒนาซอฟต์แวร์ ที่ต้องมีการทำงานร่วมกันเป็นทีมบน Code Base ตัวเดียวกัน ซึ่งถึงแม้ว่าแต่ละคนจะใช้ภาษา C++ หรือ Java ในการพัฒนาเหมือนกัน แต่ว่าแต่ละคนนั้นก็มีวิธีการเขียนหรือวิธีการใช้ภาษาที่แตกต่างกัน ทำให้โค้ดสามารถอ่านและเข้าใจได้ยาก ซึ่งก็มีปัญหาเรื่องของการทำ Documentation ระบบด้วยเช่นกัน

Demand ที่เพิ่มขึ้นของ Software และข้อจำกัดของ CPU

จากแนวโน้มที่เกิดขึ้นในวงการ Software ที่เริ่มมีการเติบโต และมีการใช้งานอย่างแพร่หลายมากขึ้นเรื่อยๆ ซึ่งทำให้ตัว Software นั้นจำเป็นต้องมีความสามารถ มี Feature ที่มากขึ้น ซึ่งก็ตามมาด้วยขนาดของตัว Software เองต้องขยายใหญ่ขึ้นตาม แต่ทว่า ความเร็วของ CPU นั้นถึงขีดกำจัดและไม่ได้ขยายขึ้นตามความต้องการที่มากขึ้นนั้น หรือถ้าให้พูดให้ชัด ๆ ก็คือ CPU นั้นไม่ได้เร็วขึ้นแล้ว แต่ว่ามีจำนวนมากขึ้นแทน (ความถี่ GHz ไม่เพิ่ม แต่เพิ่มจำนวน Processor & Core แทน) ซึ่งถ้าหากไม่ได้มีการนำ Core ต่างๆ เหล่านี้มาใช้อย่างมีประสิทธิภาพ ความเร็วของ Software นั้นก็จะช้าลงอย่างเห็นได้ชัด

https://www.pexels.com/photo/dell-motherboard-and-central-processing-unit-1432675/

การจัดการ Distributed Systems ที่ซับซ้อน

ซึ่งก็ยังไม่นับรวมเรื่องของการจัดการระบบ Distributed Systems ที่ต้องมีระบบในการจัดการและประสานการทำงานระหว่างเครื่อง server จำนวนมากให้สามารถทำงานร่วมกันได้ดี และมีประสิทธิภาพ ซึ่งถือเป็นโจทย์ทางด้านเทคโนโลยีที่ไม่ใช่เรื่องง่ายๆ เลยในการพัฒนา ยิ่งโดยเฉพาะกับความสามารถของภาษาที่มีอยู่อย่าง C++ หรือ Java
.
ดังนั้น มันจึงถึงเวลาที่ต้องมีอะไรสักอย่างที่เข้ามาเป็นตอบโจทย์ปัญหาเหล่านี้ที่ Google
.
และสิ่งนั้นก็คือภาษา Go นั่นเอง

จุดกำเนิดภาษา Go

ภาษา Go ถูกสร้างขึ้นมาในปี 2007 และ ถูกออกแบบมาเพื่อตอบโจทย์ปัญหาทางด้านความเร็ว ด้านความง่ายการพัฒนาและด้านการทำงานของซอฟต์แวร์ และตัวภาษาเองนั้นก็มีความเรียบง่ายทำให้สามารถเรียนรู้ได้เร็ว และโค้ดอ่านได้ง่าย เข้าใจง่าย โดยเน้นความ simplicity ของภาษาเป็นหนึ่งในหัวใจหลักของการออกแบบ Go

https://github.com/golang-samples/gopher-vector https://commons.wikimedia.org/wiki/File:Go_Logo_Blue.svg

ความสามารถหลักของภาษา Go

  1. เป็น Static Type Compiled Language ทำให้มี Type Safety ในการเขียนโปรแกรม
  2. สามารถ Compile & Build ได้อย่างรวดเร็ว เพราะภาษาออกแบบมาโดย Optimize ในเรื่องนี้โดยเฉพาะ
  3. มี Performance ที่สูง สามารถทำงานได้เร็วกว่าหรือใกล้เคียงกับภาษา Java เลยทีเดียว
  4. ทำ Concurrency ได้ดี ด้วย Goroutines และ Channel ที่สามารถทำ Multi Threading ได้ง่ายๆ
  5. ภาษามีความ Simple เรียนรู้ได้ง่าย อ่านง่าย เข้าใจง่าย Maintain ง่าย เพิ่ม Productivity ของ Developer

บริษัทต่างๆ และการใช้ภาษา Go

ซึ่งภาษา Go นั้นก็ถูกนำเอามาใช้ในการพัฒนาระบบหลังบ้านของ Google อย่างแพร่หลาย และใช้ในโปรเจคดังๆ อย่าง Youtube และ Kubernetes
.
และไม่ใช่เพียงแค่ Google เท่านั้นที่ใช้ภาษา Go แต่บริษัทชื่อดังต่างๆ ระดับโลกก็ยังหันมาใช้ Go ด้วยเช่นกันอย่างเช่นบริษัท Netflix, Twitch, Twitter, Medium หรือแม้กระทั่งเครื่องมือชื่อดังอย่าง Docker และ Kubernetes ก็ต่างใช้ Go เป็นภาษาหลักในการพัฒนา
.
หรืออย่างบริษัทที่อยู่ในประเทศไทยอย่าง Line, Grab, Lineman Wongnai, KBTG ก็ใช้ภาษา Go ด้วยเช่นกัน (และบริษัทอื่นๆ อีกมากมายนับไม่ถ้วน) .
ซึ่งมาจนถึงทุกวันนี้ภาษา Go ก็มีความเติบโตขึ้น และได้รับความนิยมมากขึ้นเรื่อยๆ จนเป็นหนึ่งในภาษาที่กำลังมาแรงมากในยุคนี้ที่สุดภาษาหนึ่ง

เรียนรู้เกี่ยวกับภาษา Go เพิ่มเติม

สำหรับผู้ที่อยากฝึกเขียน Go หรืออยากเป็น Go Developer มืออาชีพ ตอนนี้ทาง Skooldio ได้มีคอร์สซีรีส์ Golang Course Series ที่จะสอนตั้งแต่เริ่มต้นการใช้ภาษา Go ไปจนถึงระดับ Advanced และสามารถสร้าง Project จริงของตัวเองออกมาได้ด้วยภาษา Go สมัครเรียนในราคาพิเศษ ได้ที่นี่

References

More in:Technology

Comments are closed.