เคยมีคำถามถึงว่า Virtual Machine ชื่อ Virtual ของมัน หมายความถึงการจำลองอะไร ผมตอบไปว่า Virtual Machine ที่หมายถึง JVM .Net Framework และ Mono มันจำลอง OS
ผมเข้าใจว่า Virtual Machine ทั้งสามตัว เป็นตัวกลางในการอ่านโค้ดภาษา IL และคอมไพล์ให้กลายเป็น Native ของ Platform ที่มันอาศัยอยู่
สิ่งที่ผมคิดคือ มันจะทำให้ตัวเองกลายเป็น Core ของ OS ได้หรือไม่
จริงก็น่าจะได้ ผมเคยได้ยินชื่อ OOOS และจำได้ว่ามี OS ที่สร้างขึ้นมาจาก Java ซึ่งผมคิดว่า ต่อไปอาจจะมี Linux ที่สร้างขึ้นจาก Mono และมี Mono เป็น Core หรือ Windows ที่รันได้แต่โปรแกรม .Net
แต่เมื่อเป็นอย่างนั้น มันก็จะกลายเป็น Native Platform ไม่ต่างอะไรกับ Native ทุกวันนี้ มีการคอมไพล์ด้วยคอมไพเลอร์เฉพาะ แล้วก็รันบน Platform ได้จำนวนหนึ่ง สิ่งที่เกิดขึ้นมีแค่เป็นการเปลี่ยนมาตรฐานการเขียนโปรแกรมใหม่ อย่าง Library ทั้งหมดมี Metadata ในตัว(ไลบรารี่ของทั้งสามเฟรมเวิร์คเป็นแบบนั้น) และมีมาตรฐานมากขึ้น
ในอนาคตเราจะกลับไปสู่ยุค Native หรือไม่??? หรือว่าวงการเราจะเข็ดแล้ว และจะรักษาสภาพ Dynamic Language บนแต่ละ Platform แบบนี้ต่อไปเรื่อยๆ และภาษา C++ ก็ยังเป็นที่นิยมในฐานะภาษาที่อยู่ตรงกลางระหว่าง OS กับ Hardware ต่อไปเรื่อยๆ???
ช่วยวิเคราะห์กันหน่อยนะครับ
Framework ก็เป็น
mr.k Wed, 19/08/2009 - 16:03
Framework ก็เป็น Framework วันยันค่ำนั้นล่ะครับจนกว่า CPU จะถูกสั่งงานด้วย ByteCode (Java), IL(.Net, Mono) ได้โดยไม่ต้องมีตัวกลาง
แต่ถึงกระนั้นมันก็ยังไม่เป็น Native ตราบไดมันยังต้องถูกเรียกใช้โดยตัวกลางที่ไม่ไช่ OS
ไม่ใช่แล้
tekkasit Wed, 19/08/2009 - 17:14
ไม่ใช่แล้ว เด๋วจะออกทะเลกันไป
Framework ในทีนี้คือ software framework ซึ่งให้โครงสร้างพื้นฐานในการพัฒนาแอพพลิเคชัน บางคนอาจจะมองคล้ายกลุ่มของ library แต่จุดแตกต่างกันที่สำคัญคือ
framework จะกำหนดพฤติกรรมมาตรฐานไว้ นักพัฒนาสามารถพัฒนาโค้ดเพื่อให้เรียกใช้เมื่อถึงเหตุการณ์ที่กำหนด เช่น เมื่อกดปุ่มนี้ ให้ระบบทำอย่างโน้น
ของที่เรียกได้ว่า framework ได้แก่ Grails, ASP.Net, Rails (Ruby on Rails)
ส่วน native/machine code หรือ intermediate code นั่นเป็นเรื่องที่เกี่ยวกับการออกแบบ programming language ซึ่งภาษาที่มี intermediate code นี่ก็เยอะ Pascal (P-code), Java (Java bytecode), .Net (Common Intermediate Language)