Skip to main content

ไม่ใช่ความฝัน Android สามารถรันโปรแกรมของ Windows ได้ เพียงแค่จับมันดื่ม Wine?

ใครที่อยู่ในแวดวงของ Linux คงจะรู้จักว่า Wine คืออะไร สำหรับใครที่ไม่รู้จัก ผมขอสรุปคร่าวๆ ให้ฟังว่า Wine คือโปรเจคที่สร้างขึ้นมาเพื่อทำให้ app บน Windows Platform สามารถรันได้บน OS ตระกูล Unix หรือ Linux ได้ โดยระบบ Android เนื้อแท้ภายในจริงๆ แล้วมันคือ Linux ดังนั้นจึงไม่แปลกใจเท่าไรที่เราจะเห็นโปรเจคที่ว่านี้บน Android

แต่หลายๆ คนอาจจะสงสัยว่า Android ก็เกิดขึ้นมาตั้งนานแล้ว ทำไมนักพัฒนาถึงเพิ่งจะเริ่ม port มันมาลงบน Android เอาป่านนี้ ที่เป็นเช่นนี้เพราะ Computer ที่เราใช้กันทั่วๆ ไปในปัจจุบัน (ทั้ง PC และ Notebook) ใช้ CPU สถาปัตยกรรมแบบ CISC (Intel, AMD) ซึ่งเป็น CPU คนละสถาปัตยกรรมกับที่ใช้บน Android โดย Android จะใช้ CPU สถาปัตยกรรมแบบ RISC (ARM) ดังนั้นนี่จึงเป็นสาเหตที่ทำให้เราไม่เห็นโปรเจค Wine บน Android



เมื่อไม่นานที่ผ่านมานี้นาย Alexandre Julliard หนึ่งในผู้พัฒนา Wine ได้สาธิตและรัน Wine บนอุปกรณ์ Android ที่ใช้ CPU สถาปัตยกรรมแบบ RISC (ARM) ในงาน FOSDEM (Free and Open source Software Developers’ European Meeting) 2013 ที่กรุง Brussels แต่ยังไม่มีกำหนดการที่แน่นอนว่าจะปล่อยให้ผู้ใช้ทั่วไปได้ทดลองในช่วงไหน เพราะในตอนนี้ ถึงแม้ว่าจะนำ Wine มารันบน Android ที่ใช้ CPU สถาปัตยกรรมแบบ RISC (ARM) ได้แล้ว แต่ประสิทธิภาพที่ได้ยังไม่ดีเท่าที่ควร

ในขณะที่ทีมงานของ Wine กำลังพัฒนาให้ Wine รองรับ CPU สถาปัตยกรรมแบบ RISC (ARM) อยู่ ก็มีทีมนักพัฒนาท่านอื่นได้ port ลง Android แล้ว โดยโปรเจคนี้ชื่อว่า Winulator ซึ่งมีให้โหลดอยู่บน Play Store มีทั้งเวอร์ชั่นฟรีและเสียเงิน โดยด้านล่างเป็นวิดีโอที่สาธิตการใช้ Winulator เล่น Starcraft บนแท็บแล็ต ASUS EEE Pad Transformer รุ่นแรก


ที่มา Android Plice (1, 2)

Comments

Popular posts from this blog

ลองเล่นและเรียนรู้พื้นฐานขั้นต้นของ Spring Framework

** สำหรับใครที่ไม่เคยเรียนรู้ในด้านของ Java EE หรือ J2EE อาจจะมึนงงกับศัพท์หน่อยครับ ทำไมต้อง Spring Spring เป็น framework ที่นิยมมากในการนำไปสร้างระบบในระดับ enterprise ในเริ่มแรกที่ Spring เกิดมา มีจุดมุ่งหมายเพื่อที่จะมาแทนที่มาตรฐานของ Java อย่าง J2EE (Java 2 Enterprise Edition) ที่มันทั้งหน่วงทั้งอืดและยุ่งยาก โดยเฉพาะในส่วนของ EJB (Enterprise Java Bean) ที่ถือว่าเป็นฝันร้ายของนักพัฒนา ทำให้กูรูสาย Java ในช่วงนั้นถึงกับแนะนำว่า ถ้าจำเป็นที่ต้องพัฒนาระบบด้วย J2EE จงอย่าใช้ EJB ถึงขั้นถึงกับมีหนังสือแนะแนวทางการพัฒนาระบบ J2EE โดยไม่ใช้ EJB อย่างไรก็ตามทาง Sun ผู้เป็นเจ้าของ Java ในสมัยนั้น ถึงกับต้องมาล้างระบบ J2EE ใหม่ในปี 2006 จัดการใน EJB ให้ใช้ง่ายขึ้น มีประสิทธิภาพมากขึ้น และมีการเปลี่ยนชื่อจาก J2EE เป็น Java EE (Java Enterprise Edition) เพื่อลบภาพอันเลวร้ายของเดิมให้หมด และได้มีการนำฟีเจอร์เด็ดๆ ของ open source framework หลายๆ ตัว อย่างเช่นแกนหลักของ Spring อย่าง IoC (Inversion of Control) หรือ OR Mapping (Object Relational Mapping) ที่เป็นที่นิยมอย่าง Hibernate แต่ก็ไ

Inversion of Control และ Dependency Injection

Inversion of Control (IoC) คืออะไร IoC เป็นทฤษฏีที่ว่าด้วย การลดความผูกมัด (dependency) กันในระหว่าง module เพื่อให้ application ของเราแก้ไข (maintain) ต่อเติม (extensible) หรือทดสอบ (test) ได้ง่ายขึ้น ซึ่งเอาจริงๆ IoC เป็นอะไรที่ทำให้เราสับสนและงุนงงมากๆ ว่ามันคืออะไร หลายๆ คนจึงยกให้ว่า IoC คือ Dependency Injection (DI) ซึ่งจริงๆ มันก็ไม่ถูกซะทีเดียว  Dependency คืออะไร Dependency คือการผูกมัดที่เกิดขึ้นในระบบ เมื่อ module นึงมีการเรียกใช้อีก module นึงด้วยการอ้างอิง (reference) ตรงๆ แล้วอะไรที่เรียกว่าการ อ้างอิง (Reference) แบบตรงๆ   อย่างภาพ diagram ด้านบน class LogEngine มีการเรียกใช้ ConsoleLog โดยตรง ซึ่งมองผ่าน diagram อาจจะไม่เห็นภาพลองดู code กัน public class ConsoleLog { public void openLog(){ //do something to open log } public void log(String message){ //do something to log } public void closeLog(){ //do something to close log } } public class LogEngine { private ConsoleLog log; public LogEngine(){

ลองเล่น Lambda Expression ฟีเจอร์เด่นใน Java 8

ประวัติความเป็นมาของ Lambda expression Lambda expression ไม่ใช่สิ่งแปลกใหม่ในวงการ ภาษาโปรแกรม ( Programming Language ) เพราะ lambda มันเป็นแกนหลักของ การเขียนโปรแกรมเชิงฟังก์ชัน ( Functional Programming ) ซึ่งมีอายุมานานมากแล้ว แต่ Java เพิ่งนำเอาคุณสมบัตินี้เอามาใส่ลงในเวอร์ชัน 8 หากจะกล่าวถึงที่มาของ lambda คงต้องไปดูที่ถึงที่มาของ lambda calculus ซึ่งถูกสร้างขึ้นมาตั้งแต่ปี 1930 โดยนักคณิตศาสตร์ชาวอเมริกัน  Alonzo Church  เพื่อใช้ในการแก้โจทย์ปัญหาทางคณิตศาสตร์ที่มีความซับซ้อน ในบางครั้งสมการทางคณิตศาสตร์ที่ยาวไปอาจจะทำให้เกิดความซับซ้อนโดยใช่เหตุ lambda calculus จะทำการยุบบางส่วนของสมการนั้นออกมาเป็นฟังก์ชันย่อยๆ เพื่อทำให้สมการนั้นเข้าใจง่ายขึ้น ต่อมาหลักการของ lambda calculus ได้ถูกนำไปใช้ใน Turing Machine ซึ่งเป็นแบบจำลองในอุดมคติของ Alan Turing  ที่ต่อมากลายเป็นต้นแบบที่ถูกนำไปใช้ในการผลิต  Von Neumann Machine  ซึ่ง Von Neumann Machine ตัวนี้ได้กลายเป็นต้นแบบของคอมพิวเตอร์เครื่องแรกของโลกในเวลาต่อมา ท้ายที่สุดแนวคิดของ lambda calculus ก็ถูกนำมาแปลงเป็นภาษาโปรแกรมท