📅 กรกฎาคม 2026
⚠️ อ้างอิงจากแหล่งปฐมภูมิ ตรวจสอบแล้ว — แต่เช็คข้อมูลล่าสุดก่อนแชร์
ถ้าคุณพิมพ์ภาษาไทยแล้วไม่พัง
เขียน Go แล้วรู้สึกว่ามันง่ายเกินคาด
หรือสงสัยว่าทำไมภาษาใหม่ ๆ ถึงไม่มี inheritance
คุณกำลังใช้ของที่ผู้ชายคนหนึ่งใช้เวลา 40 ปีทำ
Rob Pike
เด็กเนิร์ดแคนาดา
Rob Pike เกิดปี 1956 โตมาในยุคที่คอมพิวเตอร์ยังเป็นเครื่องจักรขนาดห้อง
จบ BS จาก University of Toronto แล้วไปต่อที่ Caltech เขาสนใจ operating system กับ programming language ตั้งแต่วันแรก
ปี 1980 ได้งานที่ Bell Labs บ้านของ Unix, C และภาษาโปรแกรมมิ่งอีกนับไม่ถ้วน
ที่นั่นเขาได้ร่วมงานกับ Ken Thompson (ผู้สร้าง Unix) และ Dennis Ritchie (ผู้สร้าง C) สองคนที่วงการนี้เรียกว่าระดับเทพ
ยุค Bell Labs
สร้าง window system ตัวแรกของ Unix
ปี 1981 Pike เขียน window system ตัวแรกให้ Unix ก่อนที่โลกจะมี Windows หรือ Mac GUI ด้วยซ้ำ ต่อมาพัฒนาเป็น Blit terminal (1984) ที่มี overlapping windows
Plan 9 — OS ที่ล้ำเกินยุค
ทีม Pike, Thompson, Ritchie สร้าง Plan 9 ระบบปฏิบัติการที่เอาแนวคิด "ทุกอย่างคือไฟล์" ไปสุดทาง
ใน Unix พวก filesystem, network, devices ต่างก็เป็นไฟล์ แต่ยังมีข้อยกเว้น Plan 9 ทำแม้กระทั่งหน้าต่าง GUI ก็เป็นไฟล์ คุณ mount window ของคนอื่นมาดูผ่าน network ได้เลย
Plan 9 ล้ำมาก แต่ไม่เคยเป็น mainstream โลกไปทาง Windows กับ Linux แทน
แต่แนวคิดของ Plan 9 กลายเป็น DNA ของทุกอย่างที่ Pike ทำต่อมา
Inferno — Plan 9 เวอร์ชัน network
ต่อจาก Plan 9 พวกเขาสร้าง Inferno OS ที่ออกแบบให้รันบน network ตั้งแต่เกิด
มาพร้อมภาษา Limbo ที่หน้าตาเหมือน Go เวอร์ชันดั้งเดิม แต่ก่อน Limbo ก็ยังมี Newsqueak ภาษาที่ Pike เขียนตอนปี 1989 สำหรับ experiment เรื่อง concurrency โดยเฉพาะ
นี่คือจุดที่สำคัญ goroutine และ channel ที่เราใช้ใน Go ทุกวันนี้ มีต้นแบบตรง ๆ จาก Newsqueak (1989) → Alef (1992) → Limbo (1995) → Go (2009) สาย DNA นี้ตรงมาก คนเขียน Go ส่วนใหญ่ไม่รู้ว่า concurrency model ที่ตัวเองใช้ทุกวัน อายุเกือบ 40 ปีแล้ว
Inferno ก็เหมือน Plan 9 ล้ำเกินไปสำหรับยุคนั้น
UTF-8 — ของที่คุณใช้ทุกวันโดยไม่รู้ตัว
นี่คือหนึ่งใน origin story ที่ดีที่สุดของวงการคอมพิวเตอร์
กันยายน 1992 Pike ได้เมลจากคณะกรรมการ X/Open ให้ช่วยรีวิวข้อเสนอ encoding ใหม่ชื่อ FSS/UTF Pike ลิสต์สิ่งที่ encoding ที่ดีควรทำได้ แล้วพบว่า FSS/UTF ขาดไปอย่างน้อยหนึ่งข้อ
เย็นวันนั้น Pike กับ Ken Thompson ไปกินข้าวที่ร้านอาหารใน New Jersey Ken Thompson เป็นคนออกแบบ bit-packing ของ UTF-8 บนกระดาษรองจาน (placemat) Pike นั่งดูอยู่ตรงหน้า
คืนนั้นพวกเขาโทรกลับไปหา X/Open บอกว่าพร้อมจะ implement ให้เสร็จภายในวันจันทร์
วันศุกร์สัปดาห์เดียวกัน Plan 9 รันบน UTF-8 เต็มระบบ (บันทึกใน source code: 4 กันยายน 1992 เวลา 19:51:55)
หัวใจของ UTF-8 คือ backward compatibility กับ ASCII ตัวอักษร A-Z ยังใช้ 1 byte เหมือนเดิม แต่ภาษาไทย จีน ญี่ปุ่น เติมอีกไม่กี่ byte
วันนี้ UTF-8 ใช้กับเกือบ 98% ของเว็บทั้งโลก ทุกครั้งที่คุณส่งข้อความภาษาไทยแล้วไม่พัง คุณกำลังใช้ของที่ Thompson ออกแบบและ Pike นั่งดูอยู่ข้าง ๆ ในร้านอาหารเย็นนั้น
Pike เคยแก้ความเข้าใจผิดด้วยตัวเอง: "UTF-8 was designed, in front of my eyes, on a placemat in a New Jersey diner one night in September or so 1992" — ไม่ใช่ IBM เป็นคนออกแบบ
หนังสือ The Unix Programming Environment
ปี 1984 Pike เขียนหนังสือ "The Unix Programming Environment" ร่วมกับ Brian Kernighan (อีกหนึ่งตำนาน Bell Labs)
หนังสือเล่มนี้สอนปรัชญา Unix: เขียนโปรแกรมที่ทำอย่างเดียวแต่ทำให้ดี, ต่อท่อเชื่อมกัน, ใช้ text เป็น interface ปรัชญานี้กลายเป็นกระดูกสันหลังของ Go ในอีก 25 ปีต่อมา
Google และการเกิดของ Go
ที่มา: ตำนาน 45 นาทีที่เปลี่ยนทุกอย่าง
ปี 2002 Pike ย้ายไป Google
ตามตำนานที่ Pike เองเรียกว่า "origin myth" วันหนึ่งปี 2007 มี build ของ Google binary ใหญ่ตัวหนึ่งที่ใช้เวลานานมาก (คนเล่ากันว่า 45 นาที) Pike หันไปคุยกับ Robert Griesemer ระหว่างรอ Ken Thompson มาร่วมวง
21 กันยายน 2007 ทั้งสามคนเริ่มร่างภาษาใหม่บน whiteboard ในห้องประชุมของ Google
เป้าหมายชัด: compile เร็วแม้ codebase จะใหญ่แค่ไหน, ไม่มี inheritance ไม่มี exception, concurrency ในตัว (goroutine + channel สืบทอดมาจาก Newsqueak และ Limbo), และ garbage collection ที่ไม่ทำให้ช้า
Pike เสนอชื่อ "go" เพราะสั้น พิมพ์ง่าย
Go เปิดตัว
พฤศจิกายน 2009 Google open source Go
สิ่งที่ทำให้ Go ต่าง: มันไม่ใช่ academic language ไม่มี paper รองรับ ไม่มี type system ซับซ้อน มันคือภาษาของวิศวกรที่อยากทำงานให้เสร็จ
Compile เป็น static binary ไฟล์เดียว ไม่มี dependency hell และมี gofmt โค้ดทุกคนหน้าตาเหมือนกัน เลิกเถียงเรื่อง style ได้เลย
Go 1.0 ปล่อยมีนาคม 2012 และรักษา backward compatibility มาจนถึงทุกวันนี้
Go ชนะเพราะอะไร
Pike ออกแบบ Go ด้วยหลักการเดียวที่สรุปเป็นชื่อ talk ปี 2012 ของเขา: "Less is exponentially more."
ไม่ใช่แค่ทำน้อย ๆ แต่มันคือการตัดทุกอย่างที่ไม่จำเป็นออก จนเหลือแต่ของที่ต้องมีจริง ๆ
Go เลือกตัด inheritance (ใช้ composition + interface แทน), exception (ใช้ error return value), generic (ตอนแรก เพิ่มใน Go 1.18)
ทุกอย่างที่ Go ไม่มี คือสิ่งที่ Pike มองว่าเป็นภาระ ไม่ใช่ฟีเจอร์
ผลที่ได้: Go กลายเป็นภาษาเบอร์หนึ่งของ cloud infrastructure Docker, Kubernetes, Terraform, Prometheus ทั้งหมดเขียนด้วย Go
ปรัชญาของ Pike
Pike ไม่ใช่คนที่พูดเยอะ แต่ของที่พูดมักคม
"Less is exponentially more." หัวใจของ Go และทุกอย่างที่ Pike ทำ
"Object-oriented design is the roman numerals of computing." (2004) OOP คือเลขโรมันของวงการคอมพิวเตอร์ ใช้ได้แต่ไม่ควรเป็นค่า default
"Concurrency is not parallelism." ชื่อ talk ปี 2012 ที่กลายเป็นประโยคคลาสสิก concurrent ไม่ใช่ parallel
"A little copying is better than a little dependency." ก็อปโค้ดนิดหน่อย ดีกว่าเพิ่ม dependency ใหม่ทั้งตัว (Go proverb)
"Clear is better than clever." โค้ดที่ชัดเจน ดีกว่าโค้ดที่ฉลาด (Go proverb)
"Don't communicate by sharing memory; share memory by communicating." อย่าสื่อสารด้วยการแชร์ memory ให้แชร์ memory ด้วยการสื่อสาร หัวใจของ goroutine + channel
ทุกวันนี้
Pike ไม่ได้เกษียณ (ถึง Wikipedia จะพยายามเขียนแบบนั้นหลายรอบ แต่ไม่มีแหล่งอ้างอิง)
เขาเรียกตัวเองว่า "Professional dilettante" ยัง review Go code อยู่ ยังเขียนโค้ดใหม่ ๆ ลง GitHub เรื่อย ๆ
ผลงานล่าสุด: Ivy (เครื่องคิดเลขแนว APL), ภาษา Lisp ของตัวเอง, เครื่องมือภาษาญี่ปุ่น
2024 พูดที่ GopherConAU ในหัวข้อ "What We Got Right, What We Got Wrong" ยอมรับทั้งสิ่งที่ Go ทำถูก (spec, gofmt, compatibility, concurrency) และสิ่งที่พลาด (async/await ดีกว่า CSP? concurrency กับ parallelism อธิบายผิดมาตลอด?)
2025 โพสต์ "On Bloat" ชวนคิดว่า package เล็ก ๆ กลายเป็นปัญหาได้ยังไงเมื่อมี dependents เยอะ
มกราคม 2026 ลงลึกเรื่อง high-precision math ใน Ivy
ยัง active บน Mastodon และ Bluesky ใช้ชีวิตระหว่างสหรัฐฯ กับออสเตรเลียกับ Renée French ภรรยาที่เป็น illustrator และเป็นคนวาด Go gopher ที่เราเห็นกันทุกวันนี้
Pike กับโปรแกรมเมอร์ไทย
UTF-8 ทำให้ภาษาไทยอยู่บนเว็บได้โดยไม่พัง ก่อนหน้านั้น TIS-620 กับ Windows-874 ชนกันตลอด
Go เป็นภาษาที่บริษัทเทคไทยใช้กันเยอะขึ้น Agoda, LINE MAN Wongnai, SCB TechX ทั้งหมดมี Go ใน production
ปรัชญา "less is exponentially more" ของ Pike ยิ่งสำคัญในยุคที่ AI สร้างโค้ดได้เป็นล้านบรรทัด ทำน้อยแต่ดี ไม่ใช่ทำเยอะแล้วงง
สรุป
Rob Pike ใช้เวลา 40 ปีทำโจทย์เดียว: ทำยังไงให้คอมพิวเตอร์ง่ายสำหรับมนุษย์
UTF-8 ที่เราใช้ทุกวัน Go ที่รันบนเซิร์ฟเวอร์เป็นล้านเครื่อง ปรัชญา "less is exponentially more" ที่กลายเป็น DNA ของ developer รุ่นใหม่
ทั้งหมดเริ่มจากผู้ชายคนหนึ่งที่รอ C++ compile 45 นาที แล้วคิดว่า "เราทำได้ดีกว่านี้"
ที่มา: Wikipedia, go.dev, Rob Pike's blog (commandcenter.blogspot.com), UTF-8 history (Pike's own account 2003), Go FAQ, GitHub (github.com/robpike), Wikiquote
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.