← กลับไปยังบทความทั้งหมด

Gleam ภาษาโปรแกรมมิ่งแบบ Functional ที่ทรงพลังและทันสมัย

สรุปใจความสำคัญ

  • Gleam คอมไพล์เป็น Erlang หรือ JavaScript ได้
  • เป็นภาษาแบบ Statically-typed ซึ่งแตกต่างจาก Erlang และ Elixir
  • Toolchain ของภาษาถูกพัฒนาด้วยภาษา Rust
  • ได้รับความนิยมสูงในด้าน Developer Experience (DX) และเป็นภาษาที่ 'most admired' อันดับ 2 ใน Stack Overflow Survey 2025

Gleam เป็นภาษาโปรแกรมมิ่งแบบ general-purpose, concurrent, functional และ high-level ที่มีความโดดเด่นในการคอมไพล์เป็นซอร์สโค้ดของ Erlang หรือ JavaScript ทำให้สามารถนำไปใช้งานได้หลากหลายแพลตฟอร์ม

ประวัติความเป็นมา

Gleam ถูกสร้างขึ้นในปี 2016 โดย Louis Pilfold เพื่อใช้ในการบรรยายในงานคอนเฟอเรนซ์ และต่อมาได้ถูกพัฒนาและปรับปรุงจนกลายเป็นภาษาที่ใช้ได้จริงในปัจจุบัน

  • 15 เมษายน 2019: เปิดตัวเวอร์ชันแรกที่มีหมายเลขกำกับ
  • เวอร์ชัน v0.16: เริ่มรองรับการคอมไพล์เป็น JavaScript
  • ปี 2023: Erlang Ecosystem Foundation ให้ทุนสนับสนุนการสร้างหลักสูตรการเรียนรู้ Gleam บนแพลตฟอร์ม Exercism
  • 4 มีนาคม 2024: เปิดตัวเวอร์ชัน v1.0.0
  • เมษายน 2025: Thoughtworks Technology Radar จัดให้ Gleam อยู่ในกลุ่ม Assess (ภาษาและเฟรมเวิร์กที่ควรค่าแก่การสำรวจ)

การยอมรับและการใช้งาน

ผู้พัฒนาได้ให้ความสำคัญกับ Developer Experience (DX) อย่างมาก ซึ่งเป็นปัจจัยสำคัญที่ทำให้ Gleam ได้รับความนิยมเพิ่มขึ้น โดยผู้ใช้ส่วนใหญ่ไม่ได้มีพื้นฐานมาจากภาษา Erlang หรือ Elixir แต่มาจากระบบนิเวศอื่น ๆ

จากผลสำรวจของ Stack Overflow Developer Survey ปี 2025 พบว่า Gleam เป็นภาษาที่ "most admired" อันดับ 2 โดยมีผู้ใช้ถึง 70% ที่ต้องการทำงานกับภาษานี้ต่อไป

คุณสมบัติเด่นของ Gleam

Gleam มีคุณสมบัติที่ช่วยให้การเขียนโปรแกรมมีความปลอดภัยและลดข้อผิดพลาด ดังนี้:

  • Result type: สำหรับการจัดการข้อผิดพลาด (Error Handling)
  • Immutable objects: วัตถุที่ไม่สามารถเปลี่ยนแปลงค่าได้
  • Algebraic data types: ชนิดข้อมูลแบบพีชคณิต
  • Pattern matching: การจับคู่รูปแบบเพื่อจัดการข้อมูล
  • No null pointers: ไม่มีการใช้ null pointer เพื่อลดปัญหา runtime error
  • No implicit type conversions: ไม่มีการแปลงชนิดข้อมูลโดยอัตโนมัติ

การนำไปใช้งาน (Implementation)

Toolchain ของ Gleam ถูกเขียนขึ้นด้วยภาษา Rust ซึ่งรวมเอาคอมไพเลอร์, เครื่องมือสร้าง (build tool), ตัวจัดการแพ็กเกจ (package manager), ตัวจัดรูปแบบโค้ด (formatter) และ language server ไว้ในไฟล์ binary เดียวกัน

นอกจากนี้ยังมีเวอร์ชัน WebAssembly binary ที่ช่วยให้สามารถคอมไพล์โค้ด Gleam ได้โดยตรงภายในเว็บเบราว์เซอร์ ซึ่งถูกนำไปใช้ใน interactive language tour และ online playground ของทางผู้พัฒนา

คำถามที่พบบ่อย

Gleam คืออะไร?

Gleam is a general-purpose, concurrent, functional programming language that compiles to Erlang or JavaScript source code.

Gleam แตกต่างจาก Erlang และ Elixir อย่างไร?

Gleam เป็นภาษาแบบ Statically-typed (มีการระบุชนิดข้อมูลที่ชัดเจน) ในขณะที่ Erlang และ Elixir เป็นภาษาแบบ Dynamic-typed ซึ่งช่วยให้ Gleam มีความปลอดภัยในการเขียนโปรแกรมมากขึ้น

Gleam สามารถนำไปใช้กับอะไรได้?

Gleam สามารถนำไปใช้พัฒนาแอปพลิเคชันที่ต้องการความสามารถในการทำงานแบบ Concurrent และมีความเสถียรสูง โดยสามารถรันบน BEAM virtual machine หรือรันบน JavaScript environment ได้