Tags:

ตั้งหัวข้อข่าวให้เข้ากับกระแสบรรยากาศไทย ๆ เล็กน้อยครับ

จากบทวิเคราะห์ของ Peter Wayer และข่าวเก่า Neil McAllister เขียนเปิดประเด็นการมาของเครื่องจักรเสมือนอเนกประสงค์ (Generic Virtual Machines) ที่เราเริ่มจะเห็นกันมากขึ้น

ประเด็นที่น่าสนใจอยู่ที่เส้นทางของ "ภาษา"และ "แพล็ตฟอร์ม" เริ่มวิ่งมาตัดกัน Neil ย้อนให้ฟังถึงโครงการ Parrot ซึ่งเป็นเครื่องจักรเสมือนที่สร้างเพื่อ Perl 6 และคาดหวังว่าจะสนับสนุน Python ด้วย แต่เท่าที่ทราบเรื่องมันเงียบ ๆ ไปแล้ว จากนั้นก็ขยับมาที่ CLR (Common Language Runtime) ของ .NET ซึ่งหลักจากการประกาศตัวของ IronPython ทำให้เกิดการผลักดัน DLR (Dynamic Language Runtime) เพื่อเอื้อประโยชน์ให้ภาษาไดนามิค และแน่นอนว่าฝั่งจาวาก็ได้รับแรงกระตุ้นจาก DLR เช่นกัน จนทำให้เกิด Da Vinci Machine ขึ้นรอบนี้ JRuby เป็นภาษาแรกรันบนมันได้

ประเด็นถัดมาคือ ระบบปฏิบัติการ ไลบรารี (ของตัวรันไทม์) และเฟรมเวิร์ค มันพากันซับซ้อนเสียจนความต้องการใช้ C หรือ Assembly ในการพัฒนาแอพพลิเคชั่นนั้นแทบจะไม่มีแล้ว (แต่แน่นอนว่าในระดับของการพัฒนาใกล้ ๆ ฮาร์ดแวร์ยังต้องการ C/Assembly อยู่) รวมกับที่ภาษาที่ออกแบบมารันบนเครื่องจักรเสมือนมีความสามารถเด่น ๆ หลายอย่าง เช่น Garbage Collection - การเก็บกลับหน่วยความจำที่ไม่ได้ใช้, Runtime Bytecode Verification - การทวนสอบชุดคำสั่งก่อนทำงาน หรือ Security Sandbox - ระบบความปลอดภัยป้องกันการเข้าถึงทรัพยากรเครื่องโดยตรง เป็นต้น เมื่อเสริมด้วยความสะดวกของภาษาสคริปต์ที่ช่วยให้เขียนโปรแกรมได้มีกระชับขึ้น ทำให้เราได้ทั้งผลิตภาพ (productivity) และสมรรถภาพ (performance)

ประเด็นสุดท้ายที่ถูกชี้ออกมาคือการใช้เครื่องจักรเสมือนให้มากขึ้นจนมันลงไปอยู่ในระดับระบบปฏิบัติการ ซึ่งก็น่าสนใจว่าในที่สุดทิศทางจะเป็นแบบนี้จริงหรือ ประโยชน์มันชัดเจนหรือไม่เมื่อเทียบกับเทคโนโลยีอย่าง Virtualization (อ่านข่าวเก่า)

ที่มา - InfoWorld

Get latest news from Blognone

Comments

By: ZetaSolid
Windows PhoneSymbianUbuntuWindows
on 19 October 2008 - 14:12 #68540
ZetaSolid's picture

Geneic -> Generic หรือเปล่าครับ

By: cblue on 19 October 2008 - 15:04 #68546 Reply to:68540

ขอบคุณครับ แก้ไขแล้วครับ

By: somsak_sr
ContributorAndroidUbuntu
on 19 October 2008 - 16:40 #68549
somsak_sr's picture

Parrot ไม่ใช่ April Fool ของปีนั้นหรอกเหรอครับ

By: cblue on 19 October 2008 - 17:02 #68551 Reply to:68549

มันเคยเป็นเหรอครับ ผมก็ไม่รู้ว่ามีใครเคยเอามาเป็นมุขรึเปล่า
แต่ตัวโครงการมีอยู่จริงครับ :)

By: Framekung
iPhone
on 20 October 2008 - 01:25 #68629

ขอโทษนะครับ เอนก เขียนผิดครับ ต้องเขียนเป็น "อเนก" นะครับ

By: cblue on 20 October 2008 - 07:36 #68653 Reply to:68629

คนสะกดผิดคือผม ผมต่างหากที่ต้องขอโทษครับ
ขอบคุณมากครับ

By: Iowan on 20 October 2008 - 10:40 #68667

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

By: DuRiAn on 20 October 2008 - 11:35 #68676 Reply to:68667

คิดเหมือนกันครับ ทีแรกผมก็นึกว่าเป็นเคลืองจักรกลอะไรซักอย่าง

By: cblue on 20 October 2008 - 19:21 #68756 Reply to:68676

ขอบคุณทั้ง 2 ความเห็นครับ กำลังรออยู่เลยครับ

ตรงนี้เป็นประเด็นแฝงที่ผมก็อยากจะให้ลองคุยกันว่า Virtual Machine จะแปลว่าอะไร หรือแปลยังไง จะทับศัพท์ดีหรือไม่ ลองเทียบดูกับคำว่า "ภาษาไดนามิก" ที่แปล+ทับศัพท์แล้วย่อยง่ายกว่า ส่วนตัวผมก็คิดเหมือนกันว่า Virtual Machine จะแปลแล้วมีปัญหา เลยออกตัวว่า "ตั้งหัวข้อข่าวให้เข้ากับกระแสบรรยากาศไทย ๆ เล็กน้อย" ไว้ครับ

ผมอยากให้ลองตั้งสมมติฐานว่ายังไงก็ต้องแปลคำนี้ ก็จะเป็น

  • ย่อแล้วเรียกว่า วีเอ็ม อันนั้นส่วนตัวผมก็รับได้
  • machine จะแปลให้เป็น "เครื่อง" เฉย ๆ จะดีกว่าหรือไม่ ก็จะเป็นคำว่า เครื่องเสมือน
  • ทับศัพท์ virtual ว่า เวอร์ชวล
  • ทับศัพท์ machine เป็น แมชชีน
  • อื่น ๆ
By: Iowan on 20 October 2008 - 22:42 #68774 Reply to:68756

ถ้าแปลว่า เครื่องจำลอง ล่ะครับ ผมว่าน่าจะพอเข้าใจสำหรับคนทั่วๆไปนะครับ หรือท่านอื่นมีคำที่ใช่เลยกว่านี้มั้ยครับ

By: Thaina
Windows
on 20 October 2008 - 13:53 #68693

สุดท้าย Virtual Machine ก็จะกลายเป็นระบบปฏิบัติการ ผมคิดแบบนี้เหมือนกันนะ

แล้วจะเรียกใช้อะไรมาทำอะไร ก็เป็นไลบรารี่ในเฟรมเวิร์คทั้งหมด

คิดว่า Linux Core ใหม่ กับ Windows 8 ก็คงจะเป็นแล้ว(คาดว่า)

ผมว่า C# ดีกว่า Java ตรงที่ มันมี unsafe ที่ใช้ลง Low level ได้ง่ายกว่า

By: ZetaSolid
Windows PhoneSymbianUbuntuWindows
on 20 October 2008 - 14:54 #68712 Reply to:68693
ZetaSolid's picture

+1 เห็นด้วยครับ

By: Iowan on 20 October 2008 - 22:41 #68775

ถ้าแปลว่า เครื่องจำลอง ล่ะครับ ผมว่าน่าจะพอเข้าใจสำหรับคนทั่วๆไปนะครับ หรือท่านอื่นมีคำที่ใช่เลยกว่านี้มั้ยครับ

By: mk
FounderAndroid
on 20 October 2008 - 23:13 #68784 Reply to:68775
mk's picture

คำว่า "เครื่อง" ในภาษาไทย มันมีความหมายกว้างมากครับ เครื่องแก้ว เครื่องใช้ ได้หมด

By: Iowan on 20 October 2008 - 23:49 #68793 Reply to:68784

machine ก็เป็นคำที่กว้างเหมือนกันนะครับ ในที่นี้ผมว่ามันเป็นตัวทำงานอย่างหนึ่ง ซึ่งก็น่าจะแปลว่า เครื่องจำลองการทำงาน และคำว่า เครื่อง ก็เป็นคำกว้างๆในภาษาไทยที่ประกอบกับคำอื่นทำให้มีความหมายได้หลากหลาย เช่น เครื่องยนต์ เครื่องบิน เครื่องเรือน เครื่องใช้ และอื่นๆครับ

By: mk
FounderAndroid
on 21 October 2008 - 01:34 #68806 Reply to:68793
mk's picture

คุณ cblue ผู้เขียนข่าว ถึงได้ใช้ "เครื่องจักร" ไงครับ

By: cblue on 21 October 2008 - 10:31 #68836 Reply to:68793

มีอีกคำที่ความหมายคล้ายกันกับ virtual machine คือ emulator ครับฃ

ขอแยกเป็นประเภทแล้วลองดูกันนะครับ

  1. กลุ่มที่จำลองการทำงานของเครื่องคอมพิวเตอร์ พวก VMWare, Xen, Qemu เราจะเรียกกันว่าอะไร?
  2. กลุ่มที่จำลองการทำงานของอุปกรณ์ เช่น Android, iPhone และอื่น ๆ เราจะเรียกกันว่าอะไร? เป็นกลุ่มเดียวกับข้อ 1 ได้หรือไม่ ?
  3. กลุ่ม JVM, .NET, Parrot, LLVM, Rubinius และอื่น ๆ พวกนี้ไม่ได้จำลองการทำงานของอุปกรณ์หรือฮาร์ดแวร์ ตัวมันเอกมีเอกลักษณ์ มี instruction set ของมันเฉพาะ

ถ้า 1 และ 2 พอจะจัดกลุ่มกันได้ว่าเป็น Emulator มันก็จะเป็น เครื่องจำลอง และ Emulation ก็จะเป็นการจำลองการทำงาน
และ 3 ก็จะไม่เข้ากลุ่ม เพราะมันไม่ได้จำลองอะไรมา โปรแกรมในกลุ่มข้อ 3 ตัวมันเองมี concept เป็น machine เพียงแต่ไม่ใช่ hardware ครับ

By: Thaina
Windows
on 21 October 2008 - 11:18 #68846 Reply to:68836

ผมเข้าใจว่ากลุ่ม 3 มันจำลองตัวเองเป็น OS ครับ คือโปรแกรมต้องไปรันบนมัน และไลบรารี่ก็อยู่บนมัน มันคุยกับ CPU เองได้ด้วย มีฮีปจำลองอีกต่างหาก

ถึงแม้ตอนนี้มันจะอาศัย C Library ใน OS ไปคุยกับฮาร์ดแวร์ต่ออีกชั้น แต่ต่อไปมันอาจจะคุยกับฮาร์ดแวร์ทุกตัวได้เองก็ได้

By: mementototem
ContributorJusci's WriterAndroidWindows
on 21 October 2008 - 11:37 #68848 Reply to:68836
mementototem's picture

จำลองการทำงานของอุปกรณ์ ผมมักเรียกเป็น Emulator ครับ

จำลองการทำงานของเครื่องคอมพืวเตอร์ ผมก็ชินกับคำว่า Virtual Machine มากกว่า

ส่วนกลุ่ม 3 ผมเองก็เรียก Virtual Machine ถึงมันจะไม่ได้จำลองอะไรมาก็ตาม

คำๆ นึง ไม่จำเป็นต้องมีความหมายเฉพาะแค่อย่างนี้อย่างนั้น เพียงอย่างเดียวนี่ครับ

ในความเห็นของผม "Virtual Machine" มันฟังดูไม่มีตัวตนอยู่จริง แต่ "เครื่องจักรเสมือน" ฟังดูมีตัวตนมากกว่าครับ


Jusci - Google Plus - Twitter