Native is Sucks! But you can’t live without it.

หลัง​จาก​ทำ​งาน​ด้าน​ซอฟต์แวร์​มา​ปีก​ว่าๆ สิ่ง​ที่​พบ​อย่าง​หนึ่ง​คือ​โลก​ธุรกิจ​ซอฟต์แวร์​บ้าน​เรา​ถูก​แบ่ง​ออก​เป็น​สอง​ขั้ว​โดย​ไม่​มอง​หน้า​กัน คือ โลก​ของ Managed Software อย่าง .NET และ Java กับ​โลก​ของ Native ที่​มี​สารพัด​จะัใช้​กัน​อยู่ ทั้ง​เครื่อง​ยูนิกซ์​รุ่น​เก่าๆ มา​จน​ถึง​ลิ​นุกซ์

ที่​น่า​รำคาญ​ใจ​ที่​สุด​คง​เป็น​เรื่อง​ของ​เมื่อ​เทคโนโลยี​ส่วน​หนึ่ง​ไม่​สามารถ​ตอบ​สนอง​ได้​ดี​พอ ธุรกิจ​ซอฟต์แวร์​บ้าน​เรา​กลับ​กลัว​ที่​จะ​ขอ​ความ​ช่วย​เหลือ​จาก​เทคโนโลยี​อื่นๆ เพื่อ​ลด​อุปสรรค แต่​กลับ​พยายาม​ใช้​เทคโนโลยี​ที่​ไม่​เหมาะ​สม​เพื่อ​ให้​ได้​ชื่อ​ว่า​ซอฟต์แวร์ X ทำ​งาน​อยู่​บน​เทคโนโลยี Y ให้​ได้

พอ​ดี​ว่า​อยู่​ฝั่ง Native หลาย​ครั้ง​ที่​อยาก​ร้อง​ขอ​เทคโนโลยี​ระดับ​สูง​กว่า เพื่อ​มา​ลด​งาน​ที่​น่า​เบื่อ (แต่​ต้อง​มา​ทำ​ใน C/C++) โดย​ได้​ประโยชน์​ด้าน​ประสิทธิภาพ​น้อย​กว่า​ร้อย​ละ 1 แต่​ก็​ไม่​ได้​เพราะ​เหตุผล​ที่​ว่า​เรา​ต้อง​การ​ให้​ซอฟต์แวร์​เป็น Native

ขณะ​เดียว​กัน​ผม​เชื่อ​ว่า​คน​ใช้​เทคโนโลยี​ฝั่ง Managed ทั้ง​หลาย ก็​หลีก​เลี่ยง​การ​เรียกฟังก์ชั่น Native ด้วย​ความ​กลัว​ว่า​มัน​จะ​ไม่ Portable หรือ​จะ​ต้อง​รอง​รับ​เทคโนโลยี​อื่น​เพิ่ม​เติม ไป​จน​ถึง​ปัญหา​การเมือง​อื่นๆ

ความ​กลัว​ที่​ไม่​เข้า​ท่า​เหล่า​นี้​สร้าง​ความ​น่า​เบื่อ​ให้​กับ​งาน​ใน​โลก​ซอฟต์แวร์​ไม่​ใช่​น้อย แทน​ที่​เรา​จะ​ใช้​สิ่ง​ที่​สร้าง​ขึ้น​มา​เพื่อ​แก้​ปัญหา​อย่าง​ตรง​ตัว เรา​กลับ​อ้อม​ไป​มา​ด้วย​ความ​กลัว​เกิน​เหตุ

บท​ความ​นี้​เขียน​ให้​ตัว​ผม​เอง​จำ​ไว้ วัน​ไหน​มี​อำนาจ​ตัดสิน​ใจ​แล้ว ก็​อย่า​กลัว​ที่​จะ​เรียน​รู้​เทคโนโลยี​ที่​เหมาะ​สม​กับ​ปัญหา​แล้ว​กัน

 

lewcpe

CTO at MFEC PLC. Chief Editor at Blognone.com

 

One thought on “Native is Sucks! But you can’t live without it.

  1. ผมว่าจุดหนึ่งคือต้องการที่จะให้ทั้งโปรเจคหรือระบบโดยรวมเป็นแบบเดียวกันที่สุดมั้ง (น่าจะใช้คำว่า consistency)
    แต่บางทีมันก็ไม่เหมาะสมอย่างที่ลิ่วบอก
    ส่วนเรื่องมุมว่าเป็น Manage กับ Native ผมไม่เคยมองเลยแฮะ – -“

Comments are closed.