- ผลของการฝังรอย (imprinting) ที่ภาษาแรกที่เราเรียนทำไว้ได้สร้างความผูกพันเฉพาะตัวต่อ Ruby ทำให้นักพัฒนาหลายคนยอมรับข้อบกพร่องของมันเสมือนเป็น "เสน่ห์เฉพาะ"
- เมื่อมาพบกับ Ruby ช้ากว่าเดิม จุดอ่อนของ dynamic typing, footgun และประสิทธิภาพที่ช้า ที่ซ่อนอยู่ใต้รูปลักษณ์ที่สวยหรูจะเปิดเผยตัวออกมาอย่างตรงไปตรงมา ทำให้รู้สึกว่าภาษานี้ยังคงติดอยู่ที่สมัยก่อนหน้า
- ยุค Fail Whale ของ Twitter และการย้ายไป Scala รวมถึงกระแส หลบหนี Ruby ตลอดทศวรรษ 2010 เป็นหลักฐานชัดเจนถึงข้อจำกัดด้านประสิทธิภาพของภาษา
- Rails เคยเป็นดาวเด่นของหนึ่งยุค แต่ปัจจุบันปรัชญาที่รวมระบบไว้ด้วยกันกลับกลายเป็น กำแพงขยายระบบ และไม่เข้ากับการเติบโตแบบระเบิดของเว็บอีกต่อไป
- ในปัจจุบันสิ่งที่ค้ำจุน Ruby คือมรดกของ Rails ความจงรักภักดีทางอารมณ์ของนักพัฒนารุ่นแรก และความผูกพันเชิงความทรงจำต่อชื่อที่สวยงามเท่านั้น
พลังของ “การฝังรอย” ในภาษาโปรแกรมมิ่ง
- ในทางจิตวิทยา การฝังรอย (imprinting) ก็ทำงานในลักษณะเดียวกับการเขียนโปรแกรมได้
เหมือนลูกห่านน้อยที่ยอมรับสิ่งที่เห็นเป็นแม่เป็นการแรก ภาษาแรกที่เรียน ก็สามารถครอบงำความรู้สึกของนักพัฒนาได้นาน
- Ruby คือ ตัวรับผลประโยชน์ที่เป็นตัวแทนของการฝังรอยนั้น โดยตรง
มันเชื่อมโยงกับช่วงเวลาของ "ครั้งแรกที่การเขียนโปรแกรมรู้สึกเป็นธรรมชาติอย่างแท้จริง" จึงทิ้งรอยยึดติดต่อภาษานี้ไว้ลึก
- เมื่อเรียนรู้ตั้งแต่แรก ความรู้สึกชื่นชอบจะมาก่อนข้อบกพร่องและทำให้มองไม่เห็นมัน แต่หากเรียนรู้ในภายหลัง จะเห็นตัวตนแท้ๆ โดยปราศจากเงาครอบคลุมของความชอบ
การกำเนิดและจุดเด่นของ Ruby
- Ruby ถูกสร้างโดย Yukihiro Matsumoto (Matz) นักพัฒนาจากโอซากา ประเทศญี่ปุ่น ในปี 1995 และเป็นภาษาการเขียนโปรแกรมหลักเพียงไม่กี่ภาษาเดียวที่ถือกำเนิดนอกโลกตะวันตก
- มีม็อตโต์ประจำชุมชน MINASWAN (Matz Is Nice And So We Are Nice) ที่แสดงถึงบุคลิกใจดีของ Matz
- รูปแบบไวยากรณ์ที่กระชับแบบไม่มี semicolon หรือเครื่องหมายวงเล็บ ทำให้การอ่านรู้สึกง่ายดุจภาษาอังกฤษที่เรียบง่าย แม้แต่ Python
- มักถูกกล่าวถึงในฐานะภาษาที่ให้บุคคลใหม่รู้สึกว่า "เข้าใจ" การเขียนโปรแกรมได้
หน้าตาจริงที่ปรากฏเมื่อเรียนรู้ Ruby ช้ากว่า
- เมื่อผ่านภาษาอื่นมาก่อนแล้วมาเข้าสู่ Ruby สิ่งที่รับรู้ก่อนคือ ความล้าสมัยและความหยาบหละหลวม มากกว่าอิทธิพลของเสน่ห์ที่คาดหวังไว้
- แท้จริงแล้วด้านหลังไวยากรณ์ที่ถูกออกแบบให้สวยงาม ความกำกวมและพฤติกรรมที่คาดเดาไม่ได้ของ dynamic typing ยังคงอยู่ครบ
- Ruby เป็นภาษาที่พึ่งพาชนิดข้อมูลแบบไดนามิก แม้จะยืดหยุ่นในโปรเจกต์ขนาดเล็ก แต่ในโครงสร้างขนาดใหญ่ข้อผิดพลาดจะปรากฏเฉพาะตอนรันไทม์
- Python และ JavaScript ได้พัฒนาชุดเครื่องมือด้านชนิดข้อมูลและระบบวิเคราะห์แบบคงที่มาอย่างต่อเนื่องตลอดหลายปี (เช่น TypeScript, mypy)
- Ruby กลับขาดเครื่องมือเทียบเท่านี้ จึงเสี่ยงต่อการตกเป็น "footgun" (ฟังก์ชันที่ทำให้ผู้ใช้ตีเท้าเอง)
- แม้ในโครงการขนาดเล็กจะดูนุ่มนวล แต่เมื่อระบบเติบโต มันยังคงแบกรับความเสี่ยงของข้อผิดพลาดที่จะเผยตัวเฉพาะช่วงการทำงานจริง
ขอบเขตสมรรถนะที่คงที่ของ Ruby
- ในการเปรียบเทียบประสิทธิภาพของภาษาโปรแกรมหลักๆ มักจะพบว่า Ruby อยู่ใน กลุ่มล่างสุด เสมอ
- ยุค Fail Whale ของ Twitter (ภาพวาฬที่ขึ้นเวลาขัดข้อง) สะท้อนข้อจำกัดของโครงสร้างพื้นฐานที่พึ่งพา Ruby อย่างชัดเจน และในช่วงฟุตบอลโลก 2010 เมื่อเกิดเหตุขัดข้องขนาดใหญ่ ขีดจำกัดนั้นก็ยิ่งเด่นชัด
- Twitter เลือกย้ายไปใช้ Scala และต่อมาในรอบชิงชนะเลิศฟุตบอลโลก 2014 สามารถประมวลผลได้ถึง 32 ล้านทวิตต์อย่างราบรื่น โดยระบบ backend ใหม่ทำงานได้เร็วขึ้นสูงสุด 100 เท่า เมื่อเทียบกับก่อนหน้า
- ตลอดทั้งทศวรรษ 2010 บริษัทจำนวนมากทยอยออกจากโครงสร้างพื้นฐานของ Ruby และส่วนที่เหลือก็ถูกเก็บไว้ในลักษณะมรดกระบบส่วนใหญ่
ที่ที่ Ruby สูญเสียไป
- เมื่ออดีตที่ Ruby เคยแข่งขันด้วย Python, JavaScript, Perl กวาดพื้นที่ชัดเจนแต่ละด้านได้
Python ครอบครองตลาด AI วิทยาศาสตร์ และการศึกษา ขณะที่ JavaScript ครอบงำเว็บโดยรวม
Perl แม้กำลังถดถอย แต่ก็ไม่เคยมีช่องว่างให้ Ruby เข้ามาแทนที่
- เมื่อพื้นที่ที่ Ruby ทำได้เป็นของตัวเองค่อยๆ หายไป ปัจจุบันจึงตกอยู่ใน โซนก้ำกึ่งที่ไม่ชัดเจน
Rails: เสาหลักสุดท้ายของ Ruby
- เหตุผลที่ Ruby ยังใช้งานในวงการจริงอยู่มากที่สุดคือ Rails
- หลังจากที่ DHH เปิดตัว Rails ในปี 2004 ในยุค Web 2.0 มันช่วยกำหนดทิศทางของเว็บ และในช่วงนั้นได้รวมองค์ประกอบการพัฒนาเว็บไว้ในวิสัยทัศน์แบบเดียว
- นักพัฒนาชาวเดนมาร์ก David Heinemeier Hansson (DHH) มีชื่อเสียงเป็นคนปฏิสัมภารณ์และมีเสน่ห์แบบมีแรงดึงดูดต่างจาก Matz อย่างชัดเจน
- ในตอนต้นของ Web 2.0 Rails ได้กลายเป็นแพ็กเกจครบวงจรทั้งฐานข้อมูล, frontend และ backend จึงได้รับความนิยมในสตาร์ทอัป
- บริษัทอย่าง Airbnb, GitHub, Twitter, Shopify, Stripe เริ่มต้นบน Rails
- แต่เมื่อขนาดของเว็บเติบโตขึ้นแบบแบบระเบิด สถาปัตยกรรมที่เป็นหนึ่งเดียวของ Rails กลับทำหน้าที่เป็น สิ่งกีดขวางการขยายตัว
เปรียบได้กับบ้านสไตล์ Usonian ของ Frank Lloyd Wright ซึ่งแรกเริ่มสวยงาม แต่ต่อมาปรับปรุงได้แทบไม่ไหว
การตกต่ำและแรงผลักดันที่ยังเหลืออยู่ของ Ruby
- ใน การสำรวจนักพัฒนาของ Stack Overflow Ruby ตกลงมาจาก Top 10 ในปี 2013 สูญเสียไปถึงอันดับ 18 ในปี 2025 และ ถูกทิ้งไว้หลังจาก Assembly
- นักพัฒนารุ่นใหม่ไหลเข้าสู่ Python และ JavaScript มากขึ้น ทำให้ Ruby ค้างอยู่กับกลุ่มผู้ใช้ที่มีความทรงจำในอดีตบางส่วน
- สิ่งที่ยังคงหนุน Ruby ไว้ในปัจจุบันคือ มรดกของ Rails, ความจงรักภักดีทางอารมณ์ของผู้ใช้ที่ถูกปลูกฝัง และเพียง ภาพลักษณ์เชิงความรู้สึกต่อไวยากรณ์ที่สวยงามและอ่านง่าย เท่านั้น
- ทว่าความรู้สึกอย่างเดียวไม่สามารถยกระดับสถานะของภาษากลับมาได้ เพราะความเป็นจริงได้ข้ามไปสู่เครื่องมือที่เร็วกว่า ปลอดภัยกว่า และขยายได้มากกว่า Ruby แล้ว
3 ความคิดเห็น
บทความนี้มีเหตุผลรองรับอ่อนมากจนน่าตกใจ...
คำตอบต่อ "Ruby ไม่ใช่ภาษาโปรแกรมที่จริงจัง"
ความเห็นบน Hacker News
ลิงก์สำรองคือ archive.is/O7rEl
เหตุผลที่บทความยกมามีแค่ประมาณว่า “ไม่ชอบ”, “เกลียดเพราะเป็น dynamic typing”, “Twitter เคยล่มเมื่อก่อน”, “ช้า”, “ติดแค่อันดับท็อป 20 ในแบบสำรวจ Stack Overflow” เลยรู้สึกว่าบางเบาไปหน่อย
ภาษาคอมพิวเตอร์ภาษาแรกของฉันคือ BASIC ภาษาที่สองคือแอสเซมบลีสำหรับ Z80A กับ 6502 และภาษาที่สามคือ Pascal แต่ไม่มีภาษาไหนเลยที่กำหนดรสนิยมของฉันไปตลอดชีวิต
กลับกัน ประสบการณ์ที่ส่งผลจริง ๆ คือสมัยเรียนมหาวิทยาลัยที่มีอาจารย์คนหนึ่งพูดว่า “คนที่เรียน BASIC มาคือโปรแกรมเมอร์ที่พังไปตลอดชีวิต” ตอนนั้นฉันได้เรียนรู้ว่าแม้แต่คนที่มีอำนาจก็สามารถทำร้ายคนอื่นด้วยอคติของตัวเองได้
สุดท้ายแล้วบทความนี้ดูเหมือนเป็นความพยายามจะอวดว่าผู้เขียนฉลาดแค่ไหน อาจอ่านเพลินแบบงานเขียนของ Steve Yegge ได้อยู่ แต่ Yegge อย่างน้อยก็ยังมีอะไรจะเล่ามากกว่านี้
ถ้าข้ออ้างของเขาถูกจริง ก็คงไม่มีความจำเป็นต้องเขียน บทความเชิงโจมตี แบบนี้เลย ข้อเท็จจริงที่ว่ามีผลงานจริงมากมายสร้างด้วย Ruby และภาษานี้ก็ยังพัฒนาต่อเนื่องอยู่ ก็คือคำโต้แย้งในตัวเอง
ฉันก็ไม่ได้คัดค้านบทความนี้ทั้งหมดหรอก แต่ถ้าใช้เกณฑ์แบบนี้ ก็สามารถเขียนคำวิจารณ์เดียวกันกับภาษา “มืออาชีพ” ส่วนใหญ่ได้เหมือนกัน ไม่ว่าจะเป็น Python, JS, หรือ C++
คำพูดที่ว่า “computing is pop culture” ยังใช้ได้อยู่ และการที่สื่ออย่าง Wired ลงบทความแบบนี้ก็เป็นหลักฐาน
อ่านจนจบแล้วก็ยังไม่เห็น เหตุผลเชิงปฏิบัติ ว่าทำไมไม่ควรใช้ Ruby
เนื้อหาให้ความรู้สึกเหมือน งานข่าวที่ล้มเหลว ซึ่งทำขึ้นด้วย ChatGPT ในเวลาไม่กี่ชั่วโมง เดาว่าโค้ดเบส Ruby ชุดแรกที่ผู้เขียนเจอน่าจะเละเทะเป็นพิเศษ
รู้สึกเหมือนเคยมีช่วงหนึ่งที่ Wired เป็นนิตยสารที่คุ้มค่าแก่การอ่าน แต่ตอนนี้จำไม่ได้แล้วด้วยซ้ำว่าเมื่อไหร่
ฉันคิดว่าการรีไรต์ไป Scala ไม่ใช่การตัดสินใจที่ดีในเชิงธุรกิจ ผ่านมา 15 ปีแล้ว ตอนนี้ Scala ก็มีความนิยมต่ำกว่า Ruby มาก ไม่รู้เหมือนกันว่าตอนนี้พวกเขาใช้อะไรอยู่
นี่มันดูเหมือนบทความ คลิกเบตไว้ล็อกหลังเพย์วอลล์ เฉย ๆ
ขอบคุณที่ทำให้นึกขึ้นได้ว่าฉันควร ยกเลิก การสมัคร Wired ที่ลืมไปแล้ว