🦀 10 ปีที่เดิมพันกับ Rust จากยุคสุดเจ็บปวด สู่ภาษาที่ Dev รักที่สุดในโลก พร้อมมองอนาคตอีก 10 ปีข้างหน้า

มีบทความดี ๆ ที่น่าสนใจมาฝากเพื่อน ๆ ชาว Dev อีกแล้วครับ คราวนี้เป็นบทความจากคุณ Alec Mocatta, Founder ของ Tably  โดยแกได้เขียนแชร์ประสบการณ์การเดินทางบนเส้นทางของภาษา Rust มาอย่างยาวนานถึง 10 ปี (เรียกได้ว่าใช้ภาษา Rust มาในยุคแรก ๆ ที่ Rust เปิดตัวเลย)

เขาเริ่มเขียน Rust ครั้งแรกตั้งแต่เดือนมิถุนายน 2015 ซึ่งเป็นช่วงเวลาเพียงหนึ่งเดือนหลังจาก Rust 1.0 เปิดตัวอย่างเป็นทางการ จากวันนั้นจนถึงวันนี้ เขาสร้าง Startup ที่ใช้ Rust เป็นหลักมาแล้ว 2 แห่ง และเขียนโค้ด Rust ไปแล้วกว่า 500,000 บรรทัด!

ภาษา Rust กับสิ่งที่ยุ่งยากในช่วงแรก

คุณ Alec เล่าว่าช่วงแรก ๆ ของการใช้ Rust นั้นรู้สึก painful (ปวดร้าว) เลยทีเดียวครับ ปัญหาหลัก ๆ คือ

ความเข้ากันได้ของเวอร์ชัน (Version Compatibility)
.
นี่เป็นเหมือนนรกแตกเลยครับ ทั้งเวอร์ชันของ Crates (Library) ที่ไม่เข้ากัน Crates ที่ต้องพึ่งพา unstable crate อย่าง syntex (dependency สำคัญของ serde ในยุคนั้น) และการอัปเดต Compiler แต่ละครั้งก็อาจจะทำให้ทุกอย่างพังได้ ทำให้ต้องเสียเวลามากมายไปกับการหาเวอร์ชันที่มันทำงานร่วมกันได้จริง ๆ

การต่อสู้กับ Borrow Checker (Fighting the Borrow Checker)
.
สำหรับคนที่มาจากภาษาอย่าง C, Python, JavaScript (หรือแม้แต่ C++, Java) คอนเซ็ปต์เรื่อง Ownership, Lifetimes, และ Borrowing ของ Rust เป็นอะไรที่ต้องใช้เวลาในการทำความเข้าใจและปรับตัวอย่างมากในช่วงแรก

Compile Time ที่ยาวนาน
.
พอ Codebase และทีมเริ่มใหญ่ขึ้น ปัญหา Compile Time ที่ยาวนานก็กลายเป็นอีกหนึ่งความเจ็บปวด ทำให้ Cycle การทำงานช้าลง และการทำ Rapid Prototyping ต้องใช้ความพยายามในการตั้งค่ามากกว่าภาษาอื่น

วันที่ Rust กลายเป็น "Safe Bet" และสิ่งที่ทำให้มันยอดเยี่ยม (What Went Right)
...

ความสวยงามและจุดเด่นของ Rust

แม้จะเริ่มต้นอย่างยากลำบาก แต่ Rust ก็มีพัฒนาการที่ยอดเยี่ยมจนกลายเป็นภาษาที่ได้รับความนิยมสูงสุดในผลสำรวจของ Stack Overflow ถึง 9 ปีซ้อน สิ่งที่ทำให้ Rust มาถึงจุดนี้ได้คือ

คอมมูนิตี้และ "รสนิยม" ในการเขียนโปรแกรมที่ยอดเยี่ยม
.
ผู้เขียนชื่นชมว่า Ecosystem ของ Rust นั้นมี Taste ที่ดีมาก Dependency หรือ Crate ต่าง ๆ มักจะมี Build System ที่เรียบง่าย มี Implementation ที่สวยงาม (Elegant) และมี Performance ที่รวดเร็วและเสถียร (Robust) เมื่อเทียบกับการไปใช้ Ecosystem ของ TypeScript หรือ Python แล้วรู้สึกหงุดหงิดกว่าเยอะ

ทีมงานและอาสาสมัครที่แข็งแกร่ง
.
หัวใจสำคัญของความสำเร็จนี้คือกลุ่มอาสาสมัครที่ทุ่มเท มีความคิดเห็นที่ชัดเจน และมีวัฒนธรรมในการกล้าที่จะพูดว่า "No" หรือ "Not yet" เพื่อรักษาคุณภาพและทิศทางของภาษาไว้

Hiring Advantage
.
การเป็น Rust Shop ทำให้บริษัทของผู้เขียนสามารถดึงดูด Engineer เก่ง ๆ ที่อยากจะทำงานด้วยภาษาที่ตัวเองรักได้ง่ายขึ้น และเขาก็ยอมรับว่าโดยเฉลี่ยแล้ว โปรแกรมเมอร์ Rust มักจะมีทักษะที่สูงกว่าโปรแกรมเมอร์ในภาษาอื่น ๆ ส่วนใหญ่

ความเสถียรของภาษา
.
ในช่วงแรก ๆ การใช้ Rust หมายถึงการต้องสร้างล้อขึ้นมาใหม่เองแทบทุกอย่าง (Reinventing wheels) แต่ปัจจุบัน Standard Library (std) ของ Rust นั้นสมบูรณ์และมีฟีเจอร์ที่จำเป็นครบครันและ Optimize มาอย่างดี ทำให้ไม่ต้องมานั่งเขียน Workaround หรือ Extension เองเหมือนเมื่อก่อน การ Build และ Upgrade ก็คาดเดาได้ง่ายขึ้น ไม่ค่อยมีปัญหา Compile ระเบิด และ Ecosystem ก็เคารพ SemVer มากขึ้น

Borrow Checker ที่เป็นมิตรขึ้น
.
การปรับปรุงเรื่อง Inference ใน Compiler ทำให้ Borrow Checker ฉลาดขึ้นและเป็นมิตรกับผู้เริ่มต้นมากขึ้น

เมื่อ 10 ปีก่อน การเลือกใช้ Rust ในงาน production คือการเลือกที่จะต้องเจอกับปัญหามากมาย แต่สำหรับวันนี้ การใช้ Rust ในงาน Backend และ System Engineering นั้นถือเป็น Safe Bet หรือทางเลือกที่ปลอดภัยและไว้ใจได้แล้วครับ มันช่วยให้ Developer สามารถโฟกัสกับ Business Logic ได้เต็มที่ โดยที่ยังได้แอปพลิเคชันที่เร็วและเสถียรสุด ๆ

Rust ในวันนี้: ภาษาที่สร้างโดยโปรแกรมเมอร์ เพื่อโปรแกรมเมอร์ (Rust today)
...
คุณ Alec บอกว่า Rust ในปัจจุบันให้ความรู้สึกเหมือนภาษาโปรแกรมมิ่งในอุดมคติ (Ideal Programming) เลยครับ เพราะมันมีความเห็นอกเห็นใจโปรแกรมเมอร์ (Programmer Empathy) อยู่ในระดับที่หาได้ยากในโปรเจคซอฟต์แวร์ขนาดใหญ่ ไม่ว่าจะเป็น
- Build System ที่เรียบง่ายและเสถียร
- Error Message และ Linter ที่ดีที่สุดในวงการ
- Documentation และ IDE Integration ที่ยอดเยี่ยม
ไปจนถึงระบบ CI และ Regression Testing ที่แข็งแกร่ง ทั้งหมดนี้ทำให้รู้สึกเหมือน Rust เป็น โปรเจคที่ทำด้วยใจรัก (Passion Project) ที่สร้างขึ้นโดยโปรแกรมเมอร์ เพื่อโปรแกรมเมอร์จริง ๆ

จากประสบการณ์ของคุณ Alec กับภาษา Rust ในครั้งนี้ สะท้อนให้เห็นถึงวิวัฒนาการอันน่าทึ่งของภาษา Rust ได้เป็นอย่างดีครับ จากภาษาที่เคยใช้งานยากและเจ็บปวดในยุคแรก ๆ สู่การเป็นภาษาที่ได้รับความรักและความไว้วางใจจาก Developer ทั่วโลกในปัจจุบัน และอนาคตข้างหน้าก็ดูจะสดใสยิ่งขึ้นไปอีก


ที่มา:
10 years of betting on Rust and what I’m looking forward to next.