Tags:

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

Comments

By: DoraeMew
AndroidSymbianUbuntuWindows
DoraeMew's blog
on 03/04/09 8:34 #94460 toggle
DoraeMew's picture

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


บู๊ลิ้ม

By: HyBRiD
iPhoneSymbianUbuntu
HyBRiD's blog
on 03/04/09 8:55 #94471 Reply to:94460 toggle
By: bossalove
bossalove's blog
on 03/04/09 9:08 #94475 Reply to:94460 toggle
bossalove's picture

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

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

By: lew
FounderAndroidSymbian
lew's blog
on 03/04/09 12:43 #94528 Reply to:94460 toggle
lew's picture

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

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

LewCPE


LewCPE's Google+

By: bow_der_kleine
WriterAndroidUbuntu
bow_der_kleine's blog
on 03/04/09 16:20 #94562 Reply to:94528 toggle
bow_der_kleine's picture

+10

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

BioLawCom.De


XimpleSoft

By: lew
FounderAndroidSymbian
lew's blog
on 03/04/09 16:32 #94569 Reply to:94562 toggle
lew's picture

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

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

LewCPE


LewCPE's Google+

By: roofimon
roofimon's blog
on 03/04/09 21:03 #94615 Reply to:94528 toggle
roofimon's picture

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

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


Make Love Not War

By: tonkla
Ubuntu
tonkla's blog
on 03/04/09 22:41 #94628 Reply to:94615 toggle
tonkla's picture

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

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

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

rt @roofimon Java เร็ว #javafast

By: crucifier
crucifier's blog
on 04/04/09 0:10 #94662 Reply to:94628 toggle
crucifier's picture

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


ผมเป็นศิลปินทำงานศิลปะด้วยการเขียนโปรแกรม

By: tonkla
Ubuntu
tonkla's blog
on 04/04/09 0:55 #94670 Reply to:94662 toggle
tonkla's picture

สิ่งที่เด่นๆ ของ 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
FounderAndroidSymbian
lew's blog
on 04/04/09 1:30 #94676 Reply to:94670 toggle
lew's picture

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

LewCPE


LewCPE's Google+

By: mk
FounderAndroidRed HatWindows
mk's blog
on 04/04/09 6:40 #94704 Reply to:94670 toggle
mk's picture

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

By: Sikachu
ContributoriPhone
Sikachu's blog
on 04/04/09 11:13 #94721 Reply to:94670 toggle
Sikachu's picture

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

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

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

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


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

By: roofimon
roofimon's blog
on 04/04/09 6:55 #94707 Reply to:94628 toggle
roofimon's picture

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


Make Love Not War

By: nat3738
AndroidRed HatUbuntuWindows
nat3738's blog
on 03/04/09 23:34 #94653 Reply to:94528 toggle
nat3738's picture

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

By: anu
ContributorWindows Phone
anu's blog
on 03/04/09 8:53 #94468 toggle
anu's picture

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

By: obtheair
obtheair's blog
on 03/04/09 9:13 #94479 Reply to:94468 toggle
obtheair's picture

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

By: plynoi
WriterAndroidUbuntu
plynoi's blog
on 03/04/09 9:20 #94485 Reply to:94479 toggle
plynoi's picture

+100 comment of the day

By: sugree
FounderWriterAndroidBlackberry
sugree's blog
on 03/04/09 8:58 #94472 toggle
sugree's picture

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

By: lancaster
ContributoriPhoneAndroidWindows
lancaster's blog
on 03/04/09 11:29 #94518 Reply to:94472 toggle
lancaster's picture

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


Sent from my computer

By: 7ingN0ngN0i
7ingN0ngN0i's blog
on 03/04/09 9:28 #94488 toggle
7ingN0ngN0i's picture

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

By: sugree
FounderWriterAndroidBlackberry
sugree's blog
on 03/04/09 11:19 #94517 toggle
sugree's picture

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
AndroidUbuntu
atheist's blog
on 03/04/09 11:31 #94519 Reply to:94517 toggle
atheist's picture

+1

By: snck
snck's blog
on 03/04/09 14:42 #94547 Reply to:94517 toggle
snck's picture

+1

By: mk
FounderAndroidRed HatWindows
mk's blog
on 03/04/09 17:37 #94575 Reply to:94517 toggle
mk's picture

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

By: Sikachu
ContributoriPhone
Sikachu's blog
on 03/04/09 14:59 #94548 toggle
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
plynoi's blog
on 03/04/09 15:39 #94553 Reply to:94548 toggle
plynoi's picture

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

By: wiennat
Writer
wiennat's blog
on 03/04/09 22:44 #94632 Reply to:94553 toggle
wiennat's picture

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

onedd.net


onedd.net

By: mk
FounderAndroidRed HatWindows
mk's blog
on 03/04/09 23:23 #94646 Reply to:94632 toggle
mk's picture

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

By: roofimon
roofimon's blog
on 04/04/09 6:53 #94706 Reply to:94646 toggle
roofimon's picture

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


Make Love Not War

By: Sikachu
ContributoriPhone
Sikachu's blog
on 04/04/09 11:15 #94722 Reply to:94706 toggle
Sikachu's picture

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

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

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


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

By: isunsunsun
isunsunsun's blog
on 04/04/09 16:39 #94771 Reply to:94722 toggle
isunsunsun's picture

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

By: bow_der_kleine
WriterAndroidUbuntu
bow_der_kleine's blog
on 04/04/09 14:28 #94745 Reply to:94706 toggle
bow_der_kleine's picture

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

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

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

BioLawCom.De


XimpleSoft

By: sugree
FounderWriterAndroidBlackberry
sugree's blog
on 03/04/09 23:34 #94652 Reply to:94553 toggle
sugree's picture

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

By: isunsunsun
isunsunsun's blog
on 04/04/09 2:52 #94696 Reply to:94652 toggle
isunsunsun's picture

ฮา ....

By: bow_der_kleine
WriterAndroidUbuntu
bow_der_kleine's blog
on 03/04/09 16:22 #94563 Reply to:94548 toggle
By: dbook
dbook's blog
on 04/04/09 23:00 #94830 toggle