ตั้งหัวข้อข่าวให้เข้ากับกระแสบรรยากาศไทย ๆ เล็กน้อยครับ
จากบทวิเคราะห์ของ 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
Comments
Geneic -> Generic หรือเปล่าครับ
ขอบคุณครับ แก้ไขแล้วครับ
Parrot ไม่ใช่ April Fool ของปีนั้นหรอกเหรอครับ
มันเคยเป็นเหรอครับ ผมก็ไม่รู้ว่ามีใครเคยเอามาเป็นมุขรึเปล่า
แต่ตัวโครงการมีอยู่จริงครับ :)
ขอโทษนะครับ เอนก เขียนผิดครับ ต้องเขียนเป็น "อเนก" นะครับ
คนสะกดผิดคือผม ผมต่างหากที่ต้องขอโทษครับ
ขอบคุณมากครับ
คำว่า machine นอกจากจะแปลว่าเครื่องจักรแล้ว
ผมว่าน่าจะแปลเป็นคำอื่นได้บ้างนะครับ
เพราะผมดูหัวข้อแล้วนึกว่าเป็นเครื่องจักรกล
แต่มันกลับเป็นการเขียนโปรแกรมคอมพิวเตอร์ชนิดนึง
หรือเป็นอย่างไรกันครับ?
คิดเหมือนกันครับ ทีแรกผมก็นึกว่าเป็นเคลืองจักรกลอะไรซักอย่าง
ขอบคุณทั้ง 2 ความเห็นครับ กำลังรออยู่เลยครับ
ตรงนี้เป็นประเด็นแฝงที่ผมก็อยากจะให้ลองคุยกันว่า Virtual Machine จะแปลว่าอะไร หรือแปลยังไง จะทับศัพท์ดีหรือไม่ ลองเทียบดูกับคำว่า "ภาษาไดนามิก" ที่แปล+ทับศัพท์แล้วย่อยง่ายกว่า ส่วนตัวผมก็คิดเหมือนกันว่า Virtual Machine จะแปลแล้วมีปัญหา เลยออกตัวว่า "ตั้งหัวข้อข่าวให้เข้ากับกระแสบรรยากาศไทย ๆ เล็กน้อย" ไว้ครับ
ผมอยากให้ลองตั้งสมมติฐานว่ายังไงก็ต้องแปลคำนี้ ก็จะเป็น
ถ้าแปลว่า เครื่องจำลอง ล่ะครับ ผมว่าน่าจะพอเข้าใจสำหรับคนทั่วๆไปนะครับ หรือท่านอื่นมีคำที่ใช่เลยกว่านี้มั้ยครับ
สุดท้าย Virtual Machine ก็จะกลายเป็นระบบปฏิบัติการ ผมคิดแบบนี้เหมือนกันนะ
แล้วจะเรียกใช้อะไรมาทำอะไร ก็เป็นไลบรารี่ในเฟรมเวิร์คทั้งหมด
คิดว่า Linux Core ใหม่ กับ Windows 8 ก็คงจะเป็นแล้ว(คาดว่า)
ผมว่า C# ดีกว่า Java ตรงที่ มันมี unsafe ที่ใช้ลง Low level ได้ง่ายกว่า
+1 เห็นด้วยครับ
ถ้าแปลว่า เครื่องจำลอง ล่ะครับ ผมว่าน่าจะพอเข้าใจสำหรับคนทั่วๆไปนะครับ หรือท่านอื่นมีคำที่ใช่เลยกว่านี้มั้ยครับ
คำว่า "เครื่อง" ในภาษาไทย มันมีความหมายกว้างมากครับ เครื่องแก้ว เครื่องใช้ ได้หมด
machine ก็เป็นคำที่กว้างเหมือนกันนะครับ ในที่นี้ผมว่ามันเป็นตัวทำงานอย่างหนึ่ง ซึ่งก็น่าจะแปลว่า เครื่องจำลองการทำงาน และคำว่า เครื่อง ก็เป็นคำกว้างๆในภาษาไทยที่ประกอบกับคำอื่นทำให้มีความหมายได้หลากหลาย เช่น เครื่องยนต์ เครื่องบิน เครื่องเรือน เครื่องใช้ และอื่นๆครับ
คุณ cblue ผู้เขียนข่าว ถึงได้ใช้ "เครื่องจักร" ไงครับ
มีอีกคำที่ความหมายคล้ายกันกับ virtual machine คือ emulator ครับฃ
ขอแยกเป็นประเภทแล้วลองดูกันนะครับ
ถ้า 1 และ 2 พอจะจัดกลุ่มกันได้ว่าเป็น Emulator มันก็จะเป็น เครื่องจำลอง และ Emulation ก็จะเป็นการจำลองการทำงาน
และ 3 ก็จะไม่เข้ากลุ่ม เพราะมันไม่ได้จำลองอะไรมา โปรแกรมในกลุ่มข้อ 3 ตัวมันเองมี concept เป็น machine เพียงแต่ไม่ใช่ hardware ครับ
ผมเข้าใจว่ากลุ่ม 3 มันจำลองตัวเองเป็น OS ครับ คือโปรแกรมต้องไปรันบนมัน และไลบรารี่ก็อยู่บนมัน มันคุยกับ CPU เองได้ด้วย มีฮีปจำลองอีกต่างหาก
ถึงแม้ตอนนี้มันจะอาศัย C Library ใน OS ไปคุยกับฮาร์ดแวร์ต่ออีกชั้น แต่ต่อไปมันอาจจะคุยกับฮาร์ดแวร์ทุกตัวได้เองก็ได้
จำลองการทำงานของอุปกรณ์ ผมมักเรียกเป็น Emulator ครับ
จำลองการทำงานของเครื่องคอมพืวเตอร์ ผมก็ชินกับคำว่า Virtual Machine มากกว่า
ส่วนกลุ่ม 3 ผมเองก็เรียก Virtual Machine ถึงมันจะไม่ได้จำลองอะไรมาก็ตาม
คำๆ นึง ไม่จำเป็นต้องมีความหมายเฉพาะแค่อย่างนี้อย่างนั้น เพียงอย่างเดียวนี่ครับ
ในความเห็นของผม "Virtual Machine" มันฟังดูไม่มีตัวตนอยู่จริง แต่ "เครื่องจักรเสมือน" ฟังดูมีตัวตนมากกว่าครับ
Jusci - Google Plus - Twitter