Development

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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

DoraeMew Fri, 03/04/2009 - 09:34

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

bossalove Fri, 03/04/2009 - 10:08

In reply to by DoraeMew

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

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

lew Fri, 03/04/2009 - 13:43

In reply to by DoraeMew

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

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

LewCPE

bow_der_kleine Fri, 03/04/2009 - 17:20

In reply to by lew

+10

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

BioLawCom.De

roofimon Fri, 03/04/2009 - 22:03

In reply to by lew

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

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

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 by tonkla

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

สิ่งที่เด่นๆ ของ 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 ที่หล่อที่สุดในโลกครับ : )

mk Sat, 04/04/2009 - 07:40

In reply to by tonkla

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

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

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

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

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

nat3738 Sat, 04/04/2009 - 00:34

In reply to by lew

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

sugree Fri, 03/04/2009 - 12:19

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?

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

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

Sikachu Sat, 04/04/2009 - 12:15

In reply to by roofimon

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

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

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

bow_der_kleine Sat, 04/04/2009 - 15:28

In reply to by roofimon

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

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

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

BioLawCom.De