Technology

Golang คืออะไร? ดียังไง? ทำไมคนใช้เยอะ? รวมสิ่งที่ควรรู้เกี่ยวกับ Golang

หลายๆ คนที่สนใจงานด้าน Web Development หรือสนใจด้าน DevOps ก็คงเคยได้ยินเกี่ยวกับภาษา Golang มาบ้างไม่มากก็น้อย อาจจะเคยได้ยินว่าเป็นภาษาที่กำลังมาแรง หรือว่าเป็นภาษาที่มี Performance สูง สามารถทำงานได้อย่างรวดเร็ว หรือแม้กระทั่งเป็นภาษาที่พัฒนาโดยบริษัท Google

ซึ่งในบล็อกนี้ เราจะมาเจาะลึกรายละเอียดของภาษา Golang กันว่า Golang คืออะไร? Golang ดียังไง? ทำไม Golang ถึงเป็นภาษาที่นิยมใช้กันทั่วโลก?

งั้นเรามาเริ่มต้นทำความรู้จักกับภาษา Golang กันก่อนดีกว่าครับ

ภาษา Golang คืออะไร?

Golang คืออะไร? ดียังไง? ทำไมคนใช้เยอะ? รวมสิ่งที่ควรรู้เกี่ยวกับ Golang - Skooldio Blog | Golang Logo

ภาษา Golang หรือ ภาษา Go เป็นภาษา Programming แบบ Open-Source ถูกพัฒนาขึ้นโดยบริษัท Google ในปี 2007 และเป็นภาษาที่ได้รับความนิยมมากขึ้นเรื่อย ๆ ในยุคนี้

โดยภาษา Go นั้นจะมีจุดเด่นในเรื่องของ Performance ที่สามารถทำงานได้อย่างรวดเร็วเทียบกับภาษาอื่น ๆ อีกทั้งยังมีจุดเด่นในเรื่องของ Simplicity ที่เน้นความง่ายในการเขียนและการอ่าน และยังสามารถทำ Concurrent Programming ได้ง่าย เพราะภาษา Golang ถูกออกแบบมาเพื่อทำให้ Application ที่ต้องใช้ Multi-Threading หรือ Distributed Systems เป็นเรื่องที่ง่ายขึ้น

ใครใช้ Golang บ้าง?

Golang คืออะไร? ดียังไง? ทำไมคนใช้เยอะ? รวมสิ่งที่ควรรู้เกี่ยวกับ Golang - Skooldio Blog | Companies using Golang

มีบริษัทชื่อดังทั้งในระดับโลก และระดับประเทศมากมายที่ใช้ Golang ในการพัฒนาระบบและ Application ต่างๆ ไม่ว่าจะเป็น

  1. Google – ในโปรเจกต์ Kubernetes และ Youtube
  2. LINE – Chat Application ยอดนิยมในเมืองไทย
  3. Twitter – Social Media ชื่อดังระดับโลก
  4. Grab – แพลตฟอร์ม Logistics & Delivery ยอดนิยม
  5. Agoda – แพลตฟอร์มจองตั๋วเครื่องบิน และโรงแรมยอดนิยม
  6. Lineman Wongnai – แอปรีวิวร้านอาหาร และ Delivery ชื่อดังในไทย
  7. Twitch – แพลตฟอร์ม Streaming ชื่อดังระดับโลก
  8. Alibaba – บริษัท Ecommerce ขนาดยักษ์ในประเทศจีน
  9. Medium – แพลตฟอร์มชื่อดังสำหรับนักอ่าน Articles และ Blog
  10. Docker – Tool ชื่อดังยอดนิยมสำหรับทำ Containerization ใน DevOps

และบริษัทอื่นๆ อีกมากมาย

Golang ทำอะไรได้บ้าง?

Golang คืออะไร? ดียังไง? ทำไมคนใช้เยอะ? รวมสิ่งที่ควรรู้เกี่ยวกับ Golang - Skooldio Blog | Use Cases of Golang

  1. Web Development & Backend Development
    Golang เป็นภาษาที่เหมาะสำหรับการทำ Web Development มาก ๆ เพราะ Golang สามารถใช้สร้างระบบที่รองรับการทำงานใน Scale ใหญ่ที่มี Request จำนวนมากได้ ซึ่ง Golang ถูกออกแบบมาเพื่องานประเภทนี้โดยเฉพาะ ยกตัวอย่างเช่น มี HTTP Package อยู่ใน Standard Library ของ Go เลยโดยที่ไม่ต้องลง Library เพิ่มเติม หรือจะใช้ Framework ต่างๆ ช่วยให้ทำ Web Development ได้ง่ายและสะดวกขึ้น เช่น Gin Gonic, Martini, Buffalo
  2. DevOps Automation
    เพราะ Golang เป็นภาษาที่มี Syntax ที่ง่ายและเบา ทำให้เหมาะกับการใช้สร้าง Script ง่ายๆ ในการทำ Tasks ต่าง ๆ ได้ดี โดยเฉพาะ Tasks ในด้านงานของ DevOps เช่นการทำ Task Automation ต่างๆ ใน CI/CD Pipeline เป็นต้น นอกจากนี้ Golang ยังสามารถถูก Compile ได้อย่างรวดเร็ว จึงเหมาะกับงานประเภทนี้มากเช่นกัน
  3. Cloud Computing Systems
    นอกจากนี้ Golang ก็ยังสามารถใช้ในการพัฒนา Cloud Computing Systems ที่ Scalable ได้ดีมาก ๆ ด้วย ยกตัวอย่างเช่นโปรเจกต์ชื่อดังที่ไม่มีสาย DevOps คนไหนไม่รู้จัก อย่าง Docker และ Kubernetes  ซึ่ง 2 โปรเจกต์นี้นั้นใช้ Golang เป็นภาษาหลักในการพัฒนา หรือแม้กระทั่งบริษัท Cloud Software ชื่อดังอย่าง Dropbox ก็ได้เปลี่ยนระบบหลังบ้านจาก Python มาเขียนใหม่ด้วย Golang แทน
  4. Command Line Interface Tools
    Golang ยังสามารถนำมาใช้สร้าง command-line interfaces หรือ CLI ได้ง่ายๆ ยกตัวอย่างเช่น docker-cli ของ Docker และ kubectl ของ Kubernetes ซึ่ง Golang เองก็มี framework ตัวช่วยอำนวยความสะดวกในการสร้าง CLI เช่น ใช้ Cobra ร่วมกับ Viper
  5. Other Applications
    Golang เองยังสามารถนำมาใช้สำหรับ Application อื่นๆ ได้อีกมากมาย เช่น การทำ Robot, Drone, IoT (Internet of Things) ด้วย tools อย่าง Gobot

ข้อดี ข้อเสีย ของ Golang

Golang คืออะไร? ดียังไง? ทำไมคนใช้เยอะ? รวมสิ่งที่ควรรู้เกี่ยวกับ Golang - Skooldio Blog | Golang Pros & Consข้อดีของ Golang

  • เป็นภาษาที่สร้างโดย และสนับสนุนโดย Google
  • เป็นภาษาที่ทำงานเร็ว เนื่องจากเป็นภาษาที่ใช้การ Compile
  • เหมาะสำหรับงานที่ต้องการรองรับ Request เป็นจำนวนมาก
  • ออกแบบมาเพื่อให้ทำ Concurrent Programming และ Multithreading ได้ง่าย
  • มี Syntax และ Concept ที่เรียบง่าย ทำให้เรียนรู้ได้ไม่ยาก
  • มี Standard Library และ Built-In Testing Module ที่ครอบคลุมการใช้งานใน Application ยุคใหม่
  • เป็นภาษาที่เป็น Static type ทำให้ป้องกัน Error บางส่วนได้

ข้อเสียของ Golang

  • เป็นภาษาที่ค่อนข้างใหม่ เมื่อเทียบกับภาษาอื่นๆ ทำให้อาจจะยังไม่มี Resource มากเมื่อเทียบกับภาษาอื่นๆ
  • ไม่มี Feature ที่นิยมอย่างเช่น Generics หรือ Function Overloading ซึ่งอาจทำให้ต้องมีการเขียนโค้ดที่ซ้ำซ้อน แต่ประเด็นนี้ก็เป็นที่ถกเถียงกันในหมู่คนใช้ภาษา Go เช่นกันเพราะว่าการไม่มี Feature นี้นั้น ทำให้ภาษา Golang มีความ Simple ไม่ซับซ้อน

ตัวอย่างการเขียนโค้ดภาษา Golang

Code Examples

ตัวอย่างคลาสสิคอย่าง Hello World

Golang จะมี Syntax ของภาษาที่ชาว Developer ส่วนใหญ่คุ้นเคยกัน ซึ่งสังเกตว่าจะมี Function Main ที่คล้ายการเขียนโค้ดภาษา C และ Java

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

 

ตัวอย่างการเขียน Simple Web Server ด้วย Standard Go Library

สังเกตว่า HTTP จะเป็น Standard Package ของ Golang ที่สามารถใช้ได้เลยโดยไม่ต้องลง Library เพิ่ม และมีการใช้ Function fmt.Fprintf ที่ใช้ความสามารถของ Interface ใน Golang ในการเขียน Http Response

package main

import ( 
    "fmt" 
    "net/http" 
)

func hello(w http.ResponseWriter, req *http.Request) { 
    fmt.Fprintf(w, "hello world\n") 
} 

func main() { 
    http.HandleFunc("/hello", hello) 
    http.ListenAndServe(":8080", nil) 
}

อยากเริ่มฝึก Golang แล้ว ทำยังไงดี?

สำหรับมือใหม่ที่อยากเริ่มเขียน Golang แนะนำให้เริ่มต้นจาก GoTour ในเว็บ Official ของ Golang ก่อนเลย ซึ่งใน GoTour จะแนะนำให้รู้จักกับภาษา Golang และ Feature เบื้องต้นต่างๆ ของ Golang ซึ่งมีแปลเป็นภาษาไทยด้วยสำหรับคนที่ไม่ถนัดภาษาอังกฤษ

สำหรับคนที่พอมีประสบการณ์ในการเขียน Golang มาระดับนึงแล้ว แนะนำให้ศึกษาใน Official Guide ของ Golang ที่ชื่อว่า Effective Go ที่จะสอนเกี่ยวกับ Convention ต่างๆ ในวิธีการเขียน Go ที่ดีและมีประสิทธิภาพ

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

บทความอื่นๆ ที่เกี่ยวข้อง

  1. ทำไม Google ถึงต้องสร้างภาษา Go ขึ้นมา?
  2. 4 ตัวอย่าง Tech ระดับโลก ที่ใช้ภาษา Go สร้าง High Performance Software
  3. Case Study: Microservices ภาษา Go รองรับมากกว่า 1 แสน request ต่อวินาที
  4. Go Tutorial Series EP.1: สร้าง REST API ด้วย Gin Framework
  5. Go Tutorial Series EP.2: เก็บข้อมูล API ใน Database ด้วย Gorm Library
  6. Go Tutorial Series EP.3: ทำ Authorization ด้วย JWT และ Middleware

References

  1. https://codilime.com/blog/why-golang-may-be-a-good-choice-for-your-project/
  2. https://github.com/golang/go/wiki/GoUsers
  3. https://brainhub.eu/library/companies-using-golang/
  4. https://hackr.io/blog/best-programming-languages-to-learn-2021-jobs-future
  5. https://gobyexample.com/

You may also like

Progressive Web App คืออะไร
Technology

Progressive Web Apps คืออะไร?

แค่เขียน Apps อย่างเดียวคงไม่พอ! เมื่อ Users เลือกดาวน์โหลด Apps เท่าที่จำเป็นเพื่อประหยัดพื้นที่ใช้งาน จากสถิติการใช้งานของ Users ที่ “ไม่ตัดสินใจติดตั้ง Apps” เพราะขั้นตอนที่ยุ่งยากและเลือกติดตั้งเฉพาะ Apps ...
Data

Apache Airflow คืออะไร แล้วทำไมองค์กรชั้นนำส่วนใหญ่ถึงเลือกใช้

Apache Airflow คือ 1 ใน Workflow Management ที่ได้รับความนิยม และองค์กรชั้นนำระดับโลกหลายๆ องค์กรเลือกใช้ โดยเฉพาะอย่างยิ่งในการสร้าง Data Pipelines เพื่อจัดการกับข้อมูลจำนวนมหาศาล ส่วนหนึ่งเพราะองค์กรต่าง ...

More in:Technology

8 เหตุผลทำไมควรเขียน Scala Technology

8 เหตุผลที่ Dev ควรลองเขียนภาษา Scala ตั้งแต่ตอนนี้

เราเคยเกริ่นถึงภาษา Scala ไปบ้างแล้วจากบทความ ภาษา Scala มีจุดเด่นอะไร? ทำไมกำลังมาแรงในสาย Developer และ Data Engineer แต่ในกลุ่มนักพัฒนาหลายคนยังสงสัยว่าภาษา Scala มีความเหมาะไปใช้ในงานแบบไหน? ทำไมถึงต้องหันมาศึกษา ...
ภาษา Scala คืออะไร Technology

ภาษา Scala มีจุดเด่นอะไร? ทำไมกำลังมาแรงในสาย Developer และ Data Engineer

Scala คือ ภาษา Programming ที่กำลังมาแรงและเริ่มมีความนิยมใช้กันขึ้นเรื่อย ๆ จุดเริ่มต้นภาษา Scala เรียกได้ว่าเป็นลูกอีกคนหนึ่งของภาษา Java เช่นเดียวกับภาษา Kotlin ที่พัฒนาต่อยอดมาเพื่อแก้ไขข้อบกพร่องบางอย่างของภาษา Java ในจุดประสงค์ที่แตกต่างกัน ...
Software Architecture Technology

3 Software Architecture Design ที่นิยมใช้พัฒนาระบบซอฟต์แวร์ขนาดใหญ่

ในการออกแบบซอฟต์แวร์ขนาดใหญ่ในองค์กร มักจะมีการทำงานร่วมกันโดยคนจำนวนมาก หากเราต่างคนต่างเขียนซอฟต์แวร์ไปในทางที่ตัวเองเห็นว่าดี ซอฟต์แวร์ที่แต่ละคนทำก็อาจจะทำงานร่วมกันไม่ได้หรือมีปัญหาตอนที่ Integrate เป็น Solution ใหญ่ ดังนั้น การทำซอฟต์แวร์ในระดับนั้นจึงจำเป็นต้องมีการแบ่งสันปันส่วน และมีการออกแบบ Software Architecture เพื่อให้ทำงานร่วมกันได้ดีและมองเห็นภาพรวมไปในทางเดียวกัน ทั้งระหว่างนักพัฒนาในทีมพัฒนากันเอง ...

Comments are closed.