เกี่ยวกับภาษา Go

ผมคิดว่าสำหรับ programmer ทั่ว ๆ ไป ภาษา Go เป็นภาษาที่น่าศึกษาไว้นะครับ เพราะมัน:

  1. ง่าย ดู ๆ สัก 20 นาทีก็อาจจะเริ่มเขียนได้แล้วก็ได้ แต่จริง ๆ ช่วยปลาย ๆ ปี 2013 ผมก็ดูเป็นวันเหมือนกันเพราะงงตรง channel กับลูกศร https://learnxinyminutes.com/docs/go/
  2. โปรแกรมมันก็ทำงานได้ไวด้วยถึงหลายกรณีอาจจะช้ากว่า C++ หรือ Rust ก็ตาม https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=go

แต่ว่าควรจะเอาไปใช้หรือเปล่าก็เป็นอีกเรื่องหนึ่ง คงต้องพิจารณากันเป็นกรณี ๆ ไป

ผมเคยชวนมิตรสหายท่านหนึ่งใช้ Go ดูกันแล้วข้อสรุปก็คือไม่ เพราะมิตรสหายท่านนั้นใช้ท่า map/reduce/filter จริง ๆ จะทำให้ Go ก็ได้ แต่ก็เหมือนเป็นท่าที่ฝืน ๆ กับชาวบ้านเขา

ผมเคยลองเอามาเขียนโปรแกรมตัดคำความรู้สึกของผมคือเหนื่อย ภาษาที่ว่าง่ายบางทีก็ทำให้คำสั่งที่มีให้เรียกจาก standard library มันก็น้อยไปด้วย เช่น ไม่มี .reverse ของ string หรือ rune array ก็ตาม ซึ่งเขียนเอาเอง 6-7 บรรทัดก็เสร็จแล้ว ซึ่งในแง่หนึ่งก็เป็นสิ่งที่ดีที่คนเรียนรู้ใหม่ก็ไม่ต้องมาจำคำสั่งอะไรกันเยอะ เห็น code ก็อ่านรู้เรื่องเลย แต่สำหรับผมแล้วรู้สึกว่าฝืนตัวเอง

ถึงอย่างนั้นก็ตามในอนาคตผมเดา ๆ เอาเองว่าน่าจะเขียน Go หรือแก้ source code ที่เขียนด้วย Go เพราะผมมองว่าเป็นภาษายอดนิยมเข้าใจง่ายมีโครงการซอฟต์แวร์เสรีใช้เยอะเช่น Docker และ TiDB (เป็น NewSQL DBMs ตัวหนึ่ง) ก็อาจจะ patch อะไรบ้าง

อีกอันที่ผมเดา ๆ เอา (มโน) ในซอฟต์แวร์กลุ่มวิสาหกิจ (Enterprise) โดยเฉพาะกลุ่มที่รับ programmer หน้าใหม่เข้ามาทำเยอะ ๆ และอาจจะอยู่ไม่นานเช่นว่า 3 เดือนก็ลาออกแล้วก็น่าจะเหมาะ เพราะหัดเขียน 3 วันก็อาจจะเขียน Go ได้เลย 3 เดือนก็อาจจะงานเป็นชิ้นเป็นอันแล้ว  นอกจากนั้น Go ก็บังคับประกาศ Type ในระดับหนึ่งก็น่าจะทำให้โปรแกรมอ่านง่ายขึ้นด้วย ถึงแม้บางทีอาจจะมึนเพราะมันยาวก็ตาม

ป.ล. ผมก็มโน ๆ เอาเป็นส่วนมากครับ สามารถตำหนิ (ด่า) ใน comment ได้ตามสะดวกครับ แต่ว่าอย่างแรงมากเดี๋ยวบรรกาศ blog จะดูไม่ดี 😛