2009/04/03

Twitter ทิ้ง Ruby ซบ Scala

Twitter เป็นหนึ่งในกรณีศึกษาตัวอย่างของ Ruby on Rails แต่เมื่อผู้ใช้เพิ่มขึ้นอย่างก้าวกระโดด RoR ก็ถึงทางตันเสียแล้ว

Alex Payne นักพัฒนาของ Twitter เล่าว่าเว็บไซต์สมัยใหม่นิยมเลือก Ruby, Python, PHP ด้วยเหตุผลว่ามัน "น่าจะ" agile และพร้อมรับการเปลี่ยนแปลงในอนาคตได้ง่าย หรือไม่ก็เบื่อ C++/Java แต่ว่ากำแพงที่ Twitter พบก็คือระบบจัดคิวส่งข้อคววาม (message queuing system) ที่เขียนด้วย Ruby นั้นกลับไปติดกำแพงประสิทธิภาพที่ตัว virtual machine ของ Ruby เอง และการขยายตัวรองรับผู้ใช้ที่มากขึ้นเรื่อยๆ นั้นแก้ได้ทางเดียวคือซื้อเครื่องเพิ่มขึ้น ซึ่งไม่ใช่สิ่งที่นักลงทุนต้องการเท่าไรนัก (และนี่เป็นสาเหตุของ Twitter ล่มบ่อยในช่วงปีก่อน)

นักพัฒนา Twitter จำนวนหนึ่งจึงเริ่มพอร์ตโค้ดเดิมไปเป็นภาษา Scala ซึ่งทรงพลังกว่ามาก (ความเร็วในการกู้คืนเวลาระบบล่ม Ruby ใช้เวลา 2.5 ชม. ส่วน Scala ใช้ 20 วินาที) และนำมาใช้จริงช่วงปลายปี ทันการสาบานตนของโอบามา ซึ่งเป็นช่วงเวลาที่ Twitter ต้องรับโหลดหนักที่สุดพอดี

Alex Payne บอกว่า Scala เร็วพอๆ กับ C++ หรือ Java แต่ดีกว่าในแง่ฟีเจอร์ของภาษา ทั้งด้าน OOP และการเขียนโปรแกรมเชิงฟังก์ชัน ถึงแม้ว่า Scala แบบปกติจะรันบน JVM แต่ของ Twitter ไม่ได้ใช้ JVM ครับ

ที่มา - The Register

No comments: