Tags:
Node Thumbnail

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

Get latest news from Blognone

Comments

By: DoraeMew
AndroidSymbianUbuntuWindows
on 3 April 2009 - 09:34 #94460

เร็วพอๆ กับ Java? ... แปลว่ามันช้าใช่ป่าว :P

By: HyBRiD
ContributoriPhoneSymbianUbuntu
on 3 April 2009 - 09:55 #94471 Reply to:94460
HyBRiD's picture

+๑

NERD GOD

By: bossalove
iPhone
on 3 April 2009 - 10:08 #94475 Reply to:94460

java ทางฝั่ง server เร็วนะครับ มี just in time แถม optimize เวลา runtime ด้วย
ที่สำคัญ เรื่องการ scale หายห่วง มีตัวจัดการที่ดีมาก

การทำ web ใหญ่ๆ ถ้าไม่ติดเรื่อง productivity java เป็นตัวเลือกที่ดีและประหยัดเวลาปวดหัวเรื่องการ scale มากครับ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 3 April 2009 - 13:43 #94528 Reply to:94460
lew's picture

Java เองไม่ได้ช้าครับ

แต่หาโปรแกรมเมอร์ที่เขียน Java ได้เร็วนี่หายากมาก

LewCPE


lewcpe.com, @public_lewcpe

By: bow_der_kleine
WriterAndroidUbuntu
on 3 April 2009 - 17:20 #94562 Reply to:94528
bow_der_kleine's picture

+10

การเขียน Java ให้เร็วได้ เป็นศิลปะขั้นสูงมาก จนผมสงสัยว่าเขียน Java ให้เร็ว กับเขียนด้วย C/C++ ตั้งแต่แรก อะไร productivity จะดีกว่า

BioLawCom.De

By: lew
FounderJusci's WriterMEconomicsAndroid
on 3 April 2009 - 17:32 #94569 Reply to:94562
lew's picture

ผมเขียน Pure C แล้วจับยัดเข้า Python ผ่าน ctypes ครับ

เคยอ่าน JNI แล้วธาตุไฟแตก กระอักออกมาเป็น Byte Code

LewCPE


lewcpe.com, @public_lewcpe

By: roofimon on 3 April 2009 - 22:03 #94615 Reply to:94528

ชอบครับ comment นี้ ยอมรับว่า เด็กๆบ้านเราอยากก้าวข้ามตำแหน่ง Programmer ไปให้เร็วที่สุดเท่าที่จะทำได้ดังนั้นอย่าว่าแต่ จาวา เลยครับภาษายอดนิยมอย่าง PHP ก็ยังหาคนเขียนดีๆยากเลยครับ
ดังนั้นสิ่งที่เราได้จากคนที่ไม่มีใจรักในการเขียน code ก็คือ code ที่ทำให้มันเสร็จไปตามหน้าที่ ไม่ใช่ code ที่ถูกต้องสมควรจะเป็นครับ ซึ่งสิ่งเหล่านี้ส่งผลกระทบหลายอย่าง เพราะเมื่อเริ่มไม่ดี การจะขยายระบบ ก็ยากมากเหมือนจะต้องเขียนใหม่กันทั้งหมด
ตัวผมเองคิดว่าการทำอะไรสักอย่างออกมาให้ดีจำเป็นต้องใช้คนที่มี skill สูงทั้่งนั้นแหละครับ

มาช่วยกันสร้างคนที่ทำสิ่งที่ถูกกันเถอะครับ หรือเปลี่ยนให้คนที่สักแต่ทำให้เสร็จ มาเป็นคนที่ทำให้ถูก กันเถอะครับ เพื่อชาติ

By: tonkla
Ubuntu
on 3 April 2009 - 23:41 #94628 Reply to:94615

+1 ความคิดเห็นหล่อมาก : P

ผมเคยคิดว่าไม่ช้าหรือเร็วต้องมีข่าวนี้ เพราะพิสูจน์ด้วยตัวเองแล้วว่า Ruby ยังไม่พร้อมสำหรับ performance & stability แต่แปลกใจที่ข่าวนี้ออกมาช้ากว่าที่คาดการณ์ไว้ Twitter เก่งมาก

ถ้ามีโอกาสคงได้ลอง JRuby on Rails in Glassfish ดู เพราะลึกๆ แล้วผมยังเชื่อว่า...

rt @roofimon Java เร็ว #javafast

By: crucifier
iPhoneAndroidUbuntu
on 4 April 2009 - 01:10 #94662 Reply to:94628

แล้วอะไรที่เด่นๆ ข้างครับ ขอความเห็น รอเก็บข้อมูลเพราะไม่มีโอกาสใช้ทุกตัว :P

By: tonkla
Ubuntu
on 4 April 2009 - 01:55 #94670 Reply to:94662

สิ่งที่เด่นๆ ของ Ruby เท่าที่ผมนึกออกคือ Ruby on Rails ครับ : P

ข้อด้อยของ Ruby เมื่อเทียบกับภาษาอื่นที่ผมเคยเขียนมา

  • ไม่ชอบ "end" ชอบ indent แบบ Python มากกว่า(มากๆ) หรืออย่างน้อย { } ก็ยังดี เนื่องจากผมเขียนด้วย Vim ไม่มี auto-close นอกจากนี้ผมมองว่าการมี end อยู่เยอะๆ ทำให้โค้ดอ่านยากขึ้น (เมื่อเทียบกับ Python)
  • Ruby 1.8 ยังไม่พร้อมเรื่องประสิทธิภาพและเสถียรภาพ CPU 8 core พี่ฟาด 100% ไป 4 แถมซด RAM พอๆ กับ Java คาดว่า Ruby 1.9 หรือ JRuby คงจัดการปัญหานี้ได้ดีขึ้น

ส่วนข้อดี ผมมองว่า syntax ของ Ruby ค่อนข้างสวย เรียกใช้พวก class, module, method อะไรพวกนี้สะดวก และ make sense (กว่า Python) ยกเว้นเรื่องที่ต้องปิด end บ่อยๆ แล้ว อย่างอื่นดีหมดครับ

ที่สำคัญ Ruby on Rails เป็น web development framework ที่หล่อที่สุดในโลกครับ : )

By: lew
FounderJusci's WriterMEconomicsAndroid
on 4 April 2009 - 02:30 #94676 Reply to:94670
lew's picture

เคยลองเล่น ruby อ่านไปเจอ magic quote จาก perl นี่เลิกเลย

LewCPE


lewcpe.com, @public_lewcpe

By: mk
FounderAndroid
on 4 April 2009 - 07:40 #94704 Reply to:94670
mk's picture

ผมกลับมีปัญหากับ Indent นะ คือไม่รู้ว่าโค้ดเก่าเนี่ยมัน indent ด้วยอะไร แล้วก็ไม่มีวิธีง่ายๆ ในการดูด้วย

By: Sikachu
ContributoriPhoneIn Love
on 4 April 2009 - 12:13 #94721 Reply to:94670
Sikachu's picture

ผมก็ไม่ชอบ end ของ ruby ครับ (ฮา ..) ทั้งๆ ที่เป็น ruby dev นี่แหละ

แต่คือว่าบางที ผมก็เปิด block แล้วก็ tab เข้าไปครั้งหนึ่งอยู่แล้ว .. มันก็ไม่น่าจะจำเป็นต้อง end อีก - -"

ยอมรับครับ Ruby 1.8 นี่กิน resource มากมาย ผมก็รอ 1.9 อยู่ครับ หวังว่าจะเวิร์คกว่านี้

บล็อกของผม: http://sikachu.com


บล็อกของผม: http://sikachu.com

By: roofimon on 4 April 2009 - 07:55 #94707 Reply to:94628

สะท้อนดังมาถึงนี่เลยหรือ

By: nat3738
ContributorAndroidRed HatUbuntu
on 4 April 2009 - 00:34 #94653 Reply to:94528

ถ้าไม่ต้องการความแม่นยำระดับทศนิยมมากก็เขียนไม่ยากนะครับ

By: anu
Contributor
on 3 April 2009 - 09:53 #94468

รู้จักแต่ลิโด้ เพิ่งเคยได้ยินสกาล่านี่ล่ะ

By: obtheair on 3 April 2009 - 10:13 #94479 Reply to:94468

จะ dev จะ compile ต้องนั่งรถไปสยามสแควร์ซอย 1 ก่อน

By: plynoi
WriterAndroidUbuntu
on 3 April 2009 - 10:20 #94485 Reply to:94479

+100 comment of the day

By: sugree
FounderWriterAndroidBlackberry
on 3 April 2009 - 09:58 #94472

เผื่อไม่มีใครเห็น http://www.scala-lang.org/ ใช้ Drupal

By: lancaster
ContributorUbuntuWindows
on 3 April 2009 - 12:29 #94518 Reply to:94472

เห็น drupal เป็นไม่ได้นะครับ :)

By: 7ingN0ngN0i on 3 April 2009 - 10:28 #94488

ถ้าเป็นแบบนี้ไปซบอก python ดีกว่าครับ อิอิ

By: sugree
FounderWriterAndroidBlackberry
on 3 April 2009 - 12:19 #94517

When Twitter made the Scala switch, it wasn't using Java Virtual Machines (JVMs). But, Payne argues, the language is that much more attractive if you're already running Java.

ไอ้ตรงนี้น่าจะแปลว่า

ตอนตัดสินใจย้ายค่ายมา Scala นั้น Twitter ไม่ได้ใช้ JVM ซึ่ง Scala จะน่าสนใจมากขึ้นไปอีกถ้าใช้ JVM อยู่แล้ว

ตอนนี้ Scala น่าจะรันได้แค่บน JVM กับ CLR?

By: atheist
AndroidUbuntuWindows
on 3 April 2009 - 12:31 #94519 Reply to:94517

+1

By: snck
iPhoneAndroidUbuntu
on 3 April 2009 - 15:42 #94547 Reply to:94517

+1

By: mk
FounderAndroid
on 3 April 2009 - 18:37 #94575 Reply to:94517
mk's picture

แก้ไขให้แล้วครับ

By: Sikachu
ContributoriPhoneIn Love
on 3 April 2009 - 15:59 #94548
Sikachu's picture

เหมือนว่าเคยได้ยินข่าวประมาณนี้มาสักพักแล้วนะคับ ซึ่งตรงส่วนที่แก้ให้เป็น 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


บล็อกของผม: http://sikachu.com

By: plynoi
WriterAndroidUbuntu
on 3 April 2009 - 16:39 #94553 Reply to:94548

ผมสงสัียว่า จะมีคนสนใจเทคโนโลยีข้างหลังมากกว่าข้างหน้าถึงขนาดเปลี่ยนเทคโนโลยีที่ใช้เขียนแต่ทำงานได้เหมือนเดิมก็จะไม่ใช้เพราะไม่ใช่เทคโนที่ตัวเองเชียร์?

By: wiennat
Writer
on 3 April 2009 - 23:44 #94632 Reply to:94553

มีครับ ถ้าอีโก้สูงมาก ยังไงก็ไม่ยอมเปลี่ยนหรอกครับ

onedd.net


onedd.net

By: mk
FounderAndroid
on 4 April 2009 - 00:23 #94646 Reply to:94632
mk's picture

เช่นว่า Swing สวย ใช่ปะ :P

By: roofimon on 4 April 2009 - 07:53 #94706 Reply to:94646

Swing มันหลอนมากครับ เห็นแล้วอ้วกเป็นเลือดทั้ง code ทั้ง presentation

By: Sikachu
ContributoriPhoneIn Love
on 4 April 2009 - 12:15 #94722 Reply to:94706
Sikachu's picture

แอบมา +1 ได้มั้ย ..

ผมอยากให้ L&F มันทำออกมาแล้วดู native จัง .. ดูๆ แล้ว Write once run anywhere นี่ผลร้ายจะมากกว่าดีนะเนี่ย พอมาถึงเรื่อง GUI ..

บล็อกของผม: http://sikachu.com


บล็อกของผม: http://sikachu.com

By: isunsunsun on 4 April 2009 - 17:39 #94771 Reply to:94722

Sounds like you have a different version while running on different OS, :-)

By: bow_der_kleine
WriterAndroidUbuntu
on 4 April 2009 - 15:28 #94745 Reply to:94706
bow_der_kleine's picture

ช่วงที่ผมบ้าเห่อ Java (สมัยเอ๊าะ ๆ) เคยพยายามทำความเข้าใจ event handling ของ Swing ถึงกับธาตุไฟแตก เพี้ยนจนมาถึงทุกวันนี้ มันยากจริง ๆ นะ

ว่าแต่ว่าถึงตอนนี้ใครยังใช้ Swing อยู่บ้างหว่า

เป็นข่าวบ่น Ruby อยู่ดี ๆ Java ก็โดนซะละ ท่าทางจะมีคนเก็บกดกับ Java เยอะ

BioLawCom.De

By: sugree
FounderWriterAndroidBlackberry
on 4 April 2009 - 00:34 #94652 Reply to:94553

หลายคนชอบเข้าข้างหลังมากกว่าข้างหน้า

By: isunsunsun on 4 April 2009 - 03:52 #94696 Reply to:94652

ฮา ....

By: bow_der_kleine
WriterAndroidUbuntu
on 3 April 2009 - 17:22 #94563 Reply to:94548
bow_der_kleine's picture
By: dbook on 5 April 2009 - 00:00 #94830

+1

DBOoK