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 ถ้ามีโค้ดที่รันอยู่บน JVM อยู่แล้ว (ไม่ว่าจะเขียนด้วยภาษาใดก็ตาม) ก็สามารถนำมาใช้งานได้ทันที
ที่มา - The Register
on
เร็วพอๆ
DoraeMew Fri, 03/04/2009 - 09:34
เร็วพอๆ กับ Java? ... แปลว่ามันช้าใช่ป่าว :P
+๑ NERD GOD
HyBRiD Fri, 03/04/2009 - 09:55
In reply to เร็วพอๆ by DoraeMew
+๑
NERD GOD
java ทางฝั่ง
bossalove Fri, 03/04/2009 - 10:08
In reply to เร็วพอๆ by DoraeMew
java ทางฝั่ง server เร็วนะครับ มี just in time แถม optimize เวลา runtime ด้วย
ที่สำคัญ เรื่องการ scale หายห่วง มีตัวจัดการที่ดีมาก
การทำ web ใหญ่ๆ ถ้าไม่ติดเรื่อง productivity java เป็นตัวเลือกที่ดีและประหยัดเวลาปวดหัวเรื่องการ scale มากครับ
Java
lew Fri, 03/04/2009 - 13:43
In reply to เร็วพอๆ by DoraeMew
Java เองไม่ได้ช้าครับ
แต่หาโปรแกรมเมอร์ที่เขียน Java ได้เร็วนี่หายากมาก
LewCPE
+10 การเขียน
bow_der_kleine Fri, 03/04/2009 - 17:20
In reply to Java by lew
+10
การเขียน Java ให้เร็วได้ เป็นศิลปะขั้นสูงมาก จนผมสงสัยว่าเขียน Java ให้เร็ว กับเขียนด้วย C/C++ ตั้งแต่แรก อะไร productivity จะดีกว่า
BioLawCom.De
ผมเขียน Pure C
lew Fri, 03/04/2009 - 17:32
In reply to +10 การเขียน by bow_der_kleine
ผมเขียน Pure C แล้วจับยัดเข้า Python ผ่าน ctypes ครับ
เคยอ่าน JNI แล้วธาตุไฟแตก กระอักออกมาเป็น Byte Code
LewCPE
ชอบครับ
roofimon Fri, 03/04/2009 - 22:03
In reply to Java by lew
ชอบครับ comment นี้ ยอมรับว่า เด็กๆบ้านเราอยากก้าวข้ามตำแหน่ง Programmer ไปให้เร็วที่สุดเท่าที่จะทำได้ดังนั้นอย่าว่าแต่ จาวา เลยครับภาษายอดนิยมอย่าง PHP ก็ยังหาคนเขียนดีๆยากเลยครับ
ดังนั้นสิ่งที่เราได้จากคนที่ไม่มีใจรักในการเขียน code ก็คือ code ที่ทำให้มันเสร็จไปตามหน้าที่ ไม่ใช่ code ที่ถูกต้องสมควรจะเป็นครับ ซึ่งสิ่งเหล่านี้ส่งผลกระทบหลายอย่าง เพราะเมื่อเริ่มไม่ดี การจะขยายระบบ ก็ยากมากเหมือนจะต้องเขียนใหม่กันทั้งหมด
ตัวผมเองคิดว่าการทำอะไรสักอย่างออกมาให้ดีจำเป็นต้องใช้คนที่มี skill สูงทั้่งนั้นแหละครับ
มาช่วยกันสร้างคนที่ทำสิ่งที่ถูกกันเถอะครับ หรือเปลี่ยนให้คนที่สักแต่ทำให้เสร็จ มาเป็นคนที่ทำให้ถูก กันเถอะครับ เพื่อชาติ
+1
tonkla Fri, 03/04/2009 - 23:41
In reply to ชอบครับ by roofimon
+1 ความคิดเห็นหล่อมาก : P
ผมเคยคิดว่าไม่ช้าหรือเร็วต้องมีข่าวนี้ เพราะพิสูจน์ด้วยตัวเองแล้วว่า Ruby ยังไม่พร้อมสำหรับ performance & stability แต่แปลกใจที่ข่าวนี้ออกมาช้ากว่าที่คาดการณ์ไว้ Twitter เก่งมาก
ถ้ามีโอกาสคงได้ลอง JRuby on Rails in Glassfish ดู เพราะลึกๆ แล้วผมยังเชื่อว่า...
rt @roofimon Java เร็ว #javafast
แล้วอะไรท
crucifier Sat, 04/04/2009 - 01:10
In reply to +1 by tonkla
แล้วอะไรที่เด่นๆ ข้างครับ ขอความเห็น รอเก็บข้อมูลเพราะไม่มีโอกาสใช้ทุกตัว :P
สิ่งที่เด
tonkla Sat, 04/04/2009 - 01:55
In reply to แล้วอะไรท by crucifier
สิ่งที่เด่นๆ ของ Ruby เท่าที่ผมนึกออกคือ Ruby on Rails ครับ : P
ข้อด้อยของ Ruby เมื่อเทียบกับภาษาอื่นที่ผมเคยเขียนมา
ส่วนข้อดี ผมมองว่า syntax ของ Ruby ค่อนข้างสวย เรียกใช้พวก class, module, method อะไรพวกนี้สะดวก และ make sense (กว่า Python) ยกเว้นเรื่องที่ต้องปิด end บ่อยๆ แล้ว อย่างอื่นดีหมดครับ
ที่สำคัญ Ruby on Rails เป็น web development framework ที่หล่อที่สุดในโลกครับ : )
เคยลองเล่
lew Sat, 04/04/2009 - 02:30
In reply to สิ่งที่เด by tonkla
เคยลองเล่น ruby อ่านไปเจอ magic quote จาก perl นี่เลิกเลย
LewCPE
ผมกลับมีป
mk Sat, 04/04/2009 - 07:40
In reply to สิ่งที่เด by tonkla
ผมกลับมีปัญหากับ Indent นะ คือไม่รู้ว่าโค้ดเก่าเนี่ยมัน indent ด้วยอะไร แล้วก็ไม่มีวิธีง่ายๆ ในการดูด้วย
ผมก็ไม่ชอ
Sikachu Sat, 04/04/2009 - 12:13
In reply to สิ่งที่เด by tonkla
ผมก็ไม่ชอบ end ของ ruby ครับ (ฮา ..) ทั้งๆ ที่เป็น ruby dev นี่แหละ
แต่คือว่าบางที ผมก็เปิด block แล้วก็ tab เข้าไปครั้งหนึ่งอยู่แล้ว .. มันก็ไม่น่าจะจำเป็นต้อง end อีก - -"
ยอมรับครับ Ruby 1.8 นี่กิน resource มากมาย ผมก็รอ 1.9 อยู่ครับ หวังว่าจะเวิร์คกว่านี้
บล็อกของผม: http://sikachu.com
สะท้อนดัง
roofimon Sat, 04/04/2009 - 07:55
In reply to +1 by tonkla
สะท้อนดังมาถึงนี่เลยหรือ
ถ้าไม่ต้อ
nat3738 Sat, 04/04/2009 - 00:34
In reply to Java by lew
ถ้าไม่ต้องการความแม่นยำระดับทศนิยมมากก็เขียนไม่ยากนะครับ
รู้จักแต่
anu Fri, 03/04/2009 - 09:53
รู้จักแต่ลิโด้ เพิ่งเคยได้ยินสกาล่านี่ล่ะ
จะ dev จะ compile
obtheair Fri, 03/04/2009 - 10:13
In reply to รู้จักแต่ by anu
จะ dev จะ compile ต้องนั่งรถไปสยามสแควร์ซอย 1 ก่อน
+100 comment of the day
plynoi Fri, 03/04/2009 - 10:20
In reply to จะ dev จะ compile by obtheair
+100 comment of the day
เผื่อไม่ม
sugree Fri, 03/04/2009 - 09:58
เผื่อไม่มีใครเห็น http://www.scala-lang.org/ ใช้ Drupal
เห็น drupal
lancaster Fri, 03/04/2009 - 12:29
In reply to เผื่อไม่ม by sugree
เห็น drupal เป็นไม่ได้นะครับ :)
ถ้าเป็นแบ
7ingN0ngN0i Fri, 03/04/2009 - 10:28
ถ้าเป็นแบบนี้ไปซบอก python ดีกว่าครับ อิอิ
When Twitter made the
sugree Fri, 03/04/2009 - 12:19
ไอ้ตรงนี้น่าจะแปลว่า
ตอนนี้ Scala น่าจะรันได้แค่บน JVM กับ CLR?
+1
atheist Fri, 03/04/2009 - 12:31
In reply to When Twitter made the by sugree
+1
+1
snck Fri, 03/04/2009 - 15:42
In reply to When Twitter made the by sugree
+1
แก้ไขให้แ
mk Fri, 03/04/2009 - 18:37
In reply to When Twitter made the by sugree
แก้ไขให้แล้วครับ
เหมือนว่า
Sikachu Fri, 03/04/2009 - 15:59
เหมือนว่าเคยได้ยินข่าวประมาณนี้มาสักพักแล้วนะคับ ซึ่งตรงส่วนที่แก้ให้เป็น Scalar นี่คือส่วนของ Middleware แต่ส่วนของ Frontend ยังคงจะเป็น Ruby on Rails เหมือนเดิม
ด้วยความที่ผมเป็นคนสนับสนุน Ruby on Rails ตัวพ่อ .. ผมว่าข่าวนี้อาจจะทำให้คนแตกตื่น และหันหลังหนีกันไปหมดเลยนะ แต่ว่าในทางกลับกัน ถ้าภาษาที่ Twitter ใช้ไม่ใช้ RoR แต่เป็น Django แล้วเกิดปัญหาเช่นเดียวกัน .. ผลลัพธ์ที่เกิดขึ้นก็จะคล้ายๆ กัน คือคนก็จะหันหลังให้กับสิ่งที่เว็บใหญ่ๆ เลือกเดินจากไป
เพียงแค่เขารู้ว่า Framework ที่เขาใช้ไม่เหมาะกับเว็บเขา มันไม่ได้จำเป็นที่จะแปลว่า Framework ตัวนั้นมันจะไม่เหมาะกับ web ของคุณ
Use the right tools for the right job ครับ :)
บล็อกของผม: http://sikachu.com
ผมสงสัียว
plynoi Fri, 03/04/2009 - 16:39
In reply to เหมือนว่า by Sikachu
ผมสงสัียว่า จะมีคนสนใจเทคโนโลยีข้างหลังมากกว่าข้างหน้าถึงขนาดเปลี่ยนเทคโนโลยีที่ใช้เขียนแต่ทำงานได้เหมือนเดิมก็จะไม่ใช้เพราะไม่ใช่เทคโนที่ตัวเองเชียร์?
มีครับ
wiennat Fri, 03/04/2009 - 23:44
In reply to ผมสงสัียว by plynoi
มีครับ ถ้าอีโก้สูงมาก ยังไงก็ไม่ยอมเปลี่ยนหรอกครับ
onedd.net
เช่นว่า Swing
mk Sat, 04/04/2009 - 00:23
In reply to มีครับ by wiennat
เช่นว่า Swing สวย ใช่ปะ :P
Swing
roofimon Sat, 04/04/2009 - 07:53
In reply to เช่นว่า Swing by mk
Swing มันหลอนมากครับ เห็นแล้วอ้วกเป็นเลือดทั้ง code ทั้ง presentation
แอบมา +1
Sikachu Sat, 04/04/2009 - 12:15
In reply to Swing by roofimon
แอบมา +1 ได้มั้ย ..
ผมอยากให้ L&F มันทำออกมาแล้วดู native จัง .. ดูๆ แล้ว Write once run anywhere นี่ผลร้ายจะมากกว่าดีนะเนี่ย พอมาถึงเรื่อง GUI ..
บล็อกของผม: http://sikachu.com
Sounds like you have a
isunsunsun Sat, 04/04/2009 - 17:39
In reply to แอบมา +1 by Sikachu
Sounds like you have a different version while running on different OS, :-)
ช่วงที่ผม
bow_der_kleine Sat, 04/04/2009 - 15:28
In reply to Swing by roofimon
ช่วงที่ผมบ้าเห่อ Java (สมัยเอ๊าะ ๆ) เคยพยายามทำความเข้าใจ event handling ของ Swing ถึงกับธาตุไฟแตก เพี้ยนจนมาถึงทุกวันนี้ มันยากจริง ๆ นะ
ว่าแต่ว่าถึงตอนนี้ใครยังใช้ Swing อยู่บ้างหว่า
เป็นข่าวบ่น Ruby อยู่ดี ๆ Java ก็โดนซะละ ท่าทางจะมีคนเก็บกดกับ Java เยอะ
BioLawCom.De
หลายคนชอบ
sugree Sat, 04/04/2009 - 00:34
In reply to ผมสงสัียว by plynoi
หลายคนชอบเข้าข้างหลังมากกว่าข้างหน้า
ฮา ....
isunsunsun Sat, 04/04/2009 - 03:52
In reply to หลายคนชอบ by sugree
ฮา ....
+1 BioLawCom.De
bow_der_kleine Fri, 03/04/2009 - 17:22
In reply to เหมือนว่า by Sikachu
+1
BioLawCom.De
+1 DBOoK
dbook Sun, 05/04/2009 - 00:00
+1
[D][][B][][O][][o][][K][]