เฮ้อ กว่าจะจูนให้เหมือนกันได้ WxWidgets

Share

บทความนี้ เกิดขึ้นหลังจาก หยุดการพัฒนาโปรแกรมที่ต้องใช้ Listview เป็นส่วนประกอบไปแล้ว สักพักหนึ่ง เนื่องจากเทคโนโลยีช่วงนั้น เปลี่ยนแปลงกันบ่อย microsoft ขยันอัพเดต เปลี่ยนโน่น นั่น นี่ และเปลี่ยนกันแต่ละที ของเก่าตายเรียบ!!!!
ด้วยความเบื่อหน่าย เลยค้นหาพวกตัวฟรี Framework ใหม่ๆ เพื่อใช้แทนมัน แต่ก็ยังคงพบข้อบกพร่อง ณ ขณะนั้น ในเรื่องของเอกสารช่วยเหลือหรือ Help นั่นเอง
สำหรับข้อดีของพวกนี้ อีกอย่างหนึ่งคือ บางเจ้าเป็น cross platform เขียนทีเดียว เอาไปใช้งานข้ามระบบได้สบายๆ ก็ถือว่า ดีในระดับหนึ่ง ขณะที่ปัจจุบันนี้ 2017 บริการส่วนใหญ่ ไปนอนอยู่บนเวบกันเกือบหมดแล้ว ก็คงต้องปรับตัวกันต่อไป สำหรับบรรดาเหล่านักพัฒนาทั้งหลาย

และในปัจจุบันนี้ 2017 ผมใช้งานโปรแกรมต่างๆ อยู่กับสามระบบ ได้แก่ ระบบบน tablet and phone android /Ubuntu Linux /และเพื่อนเก่า Windows แต่ตอนนี้ อยู่บน Linux กับ Tablet มากกว่า สาเหตุหลักๆ ก็มาจาก การเดินทางไปๆมาๆ และภาระอะไรบางอย่างที่ดูวุ่นวาย เกินกว่าจะแบกโน้ตบุคไปเพื่อทำงาน หวยเลยไปออกมาที่ Tablet ส่วนในโน้ตบุค ตอนนี้ กลับมาเป็น Ubuntu อีกครั้ง ผมชอบใจระบบตรงที่ มันไม่เคยมีไวรัสมากวนใจเลย ทำงานสบายใจหน่อย แต่ถ้าให้พัฒนาโปรแกรมรับกับมัน คงต้องดูว่า สามารถเล่นอะไรได้บ้าง เพราะตัวระบบ มันก็ไม่เหมือนกับวินโดว์เลยสักนิด ต้องทำความเข้าใจมันนิดนึงครับ (เฉพาะสายพันธุ์ อีกต่างหาก สายพันธุ์อื่น ก็จะเป็นอีกแบบหนึ่ง ลักษณะไม่เหมือนกัน)

——————————————

เป็นเวลากว่า 2 อาทิตย์ ที่ผมงมๆโข่งอยู่กับ Free CPP Library Frameworks ที่ชื่อว่า wxWidgets ที่เป็นตัวทำโปรแกรมใช้งานได้หลาย Platform คือ รันได้ทั้งใน windows Linux Mac และอื่นๆ แต่ผมก็พบว่า มันไม่ใช่เรื่องง่ายๆเลย สำหรับการใช้งานมัน….

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

หลายเจ้าที่ผมเจอมา จะเป็นแบบนี้ซะส่วนใหญ่ ทำให้ M$ จับตลาด user ส่วนใหญ่เอาไว้ได้ เพราะ user ก็คือ user พวกนี้จะใช้งานเป็นอย่างเดียวจริงๆ (ไม่มีเวลาว่างมานั่งปรับแต่งอะไรมากหรอก เพราะต้องทำมาหากิน เอาเวลาไปทำงานจะดีกว่า) เรื่องที่จะต้องลงโน่นนี่ ปรับแต่งเพิ่มเติม ค่อยว่ากันอีกทีในภายหลัง บางคนยังลงโปรแกรมกันไม่เป็นด้วยซ้ำ สำหรับทางแก้ของ Freeware และ OpenSource ที่สำคัญที่สุดคือ ทำไงก็ได้ ให้ผู้ใช้ ปวดหัวกับมันน้อยที่สุด เหมือนที่ windows หรือว่า Mac ทำได้ คือ ปรับแต่งให้เหมาะสมกับ user มือใหม่หรือว่า end user ให้มันใช้งานได้เลย ไม่ยุ่งยาก ฝากไว้เท่านี้ก่อนละกัน

เอาล่ะ เข้าเรื่องของผมซะที ถ้าใครยังจำกันได้ ผมเอง เคยบ่นเรื่อง Help ของ ผลิตภัณฑ์ที่มาจากบริษัท Borland ว่า ไม่ได้เรื่อง ใช้งานยาก ตัวอย่างไม่มี ไม่รู้ว่าจะใช้งานกันยังไง มาเจอเข้ากับของฟรีอีกอันหนึ่ง ก็แทบบื้อไปเลย เพราะคล้ายกันมากล่ะครับ

ก่อนหน้าที่จะมาหัดใช้งานมันเนี่ย ผมเอง เขียนวิธีการ เขียนปัญหา วางทางแก้ ไว้ในกระดาษประมาณ 3-4 หน้า A4 ล่ะ จนกระทั่งผมมาตกลงใจที่ Free CPP Compiler Open Source และ Free CPP Framework แถมด้วย Free IDE Dev Tools แล้วค่อยนำมันมา จูนเข้าด้วยกัน

สาเหตุน่ะเหรอครับ สรุปกันสั้นๆ ก็คือว่า ตอนนี้ ยังไม่อยากยึดติดอะไรกับบริษัทที่ทำ Compiler Tools เลย เพราะยังเข็ดกับ M$ อยู่ไม่หายล่ะ ส่วนของ Borland เอง แม้ว่าจะฟรี แต่ก็มีปัญหาในเรื่องของ Help ที่เคยบ่นให้ฟังไปแล้ว

นอกจากนั้น การสร้างโปรแกรมในรูปแบบ Win32 API ดูเหมือนว่าจะเป็นงานหนักสำหรับการทำโปรแกรม เล็กๆ ให้ได้ใกล้เคียงกับของเก่า ซึ่งมีทั้ง VB และ MFC เพราะว่า ยังมีหลายส่วนของโปรแกรมที่ตอนนี้ ยังหาทางออกให้ใกล้เคียงกับของเก่าที่สร้างจาก M$ VB ไม่ได้เลยด้วยซ้ำ กว่าจะได้ code ที่ทำออกมาแล้ว การทำงานของโปรแกรมเหมือนหรือว่า ใกล้เคียงนั้น วิธีการเรียกใช้ การเขียน การกำหนดตัวแปร ค่อนข้างจะงง และยุ่งยาก

แต่จะให้กลับมาใช้ MFC เลย ก็ไม่ไหวอีก เพราะเหตุผลข้างบนนั่นแหละ เลยมาลองงมๆที่ wxWidgets นี่เอง

สำหรับ wxWidgets แล้ว มีโปรแกรมเมอร์เก่งๆ เขาทำ Production ให้คนเอาไปใช้งานกันอย่างแพร่หลาย พอสมควร เท่าที่ลองเช็คข้อมูลมา ก็พอใช้ได้เหมือนกัน

แน่นอนว่า ผมไม่ได้มาทำ Tutorials สอนวิธีการใช้งาน เพราะฉะนั้น เรื่องที่จะมาบอกว่า ต้องทำอะไรๆกับมันบ้าง เพื่อให้ได้มาซึ่งชุดเขียนโปรแกรมสำเร็จพร้อมใช้งาน ผมจะขอข้ามไป ถ้าอยากทราบว่า ต้องทำอย่างไรบ้าง ค้นหาได้จาก google ใช้ keyword ว่า wxwidgets เพียงเท่านี้ คุณก็จะได้คำตอบที่ต้องการ

เอาล่ะ กลับมาถึง เรื่องที่ผมจะบอกเล่าเสียที

เนื่องจากว่า ผมเอง ได้ทำการเขียนโปรแกรม เพื่อทดสอบ การใช้งาน ListView เพื่อ Port Program ที่ทำจาก VB ซึ่งเป็นโปรแกรมบัญชี ให้กลับมาในรูปแบบของ ภาษา CPP ตัวโปรแกรมทดสอบ จึงมีหลายเวอร์ชั่น อันได้แก่ Version C Win 32 API

ซึ่งทำจาก Compiler ของ M$ และ Borland ต่อมา ก็คือ Version CPP with Frameworks ซึ่งก็คือ MFC ของ M$ นั่นแหละ

จากนั้น เมื่อผมทำการทดสอบ wxWidgets ผมก็เลยต้องทำโปรแกรมด้วยชุดคำสั่งของมันนั่นแหละ ร่วมกับการใช้งาน Dev Tools อื่นๆ เช่น ตัววาด form ใน IDE พบว่า การ Port จาก มาตรฐาน M$ เป็น มาตรฐานอื่น ค่อนข้างจะยากเอาเรื่องทีเดียว

สิ่งที่ผมเจออย่างแรกเลยก็คือว่า สำหรับ C Win 32 API เนี่ย มันบังคับอยู่แล้วว่า ต้อง windows เท่านั้น อย่างอื่นหมดสิทธิ เลยต้อง follow ตาม คำสั่งใน MSDN ไปก่อนซึ่งก็ไม่ค่อยจะมีปัญหาอะไรมาก

ผมมาพบปัญหาเข้าตอนที่มันผูกกันเป็น Framework แล้วนั่นแหละ ก็คือว่า ในคำสั่ง Framework ของ M$ กับ wxWidgets การเรียกใช้งาน เพื่อให้ได้ผลลัพธ์แบบเดียวกันนั้น จะไม่เหมือนกันเลย ในรายละเอียด แถมที่ยากขึ้นไปอีก ก็คือว่า ใน Help ของ Free Framework ไม่มีตัวอย่างการเรียกใช้ ถึงมีก็น้อยมาก จะไปบอกเอาตรงชุดโปรแกรมตัวอย่าง ว่า การเรียกใช้ทั้งหมดเป็นอย่างไรบ้าง ซึ่งหลายครั้ง ก็ต้องดัดแปลงและประยุกต์จากตัวอย่างกันเอาเอง เพราะไม่มีสิ่งที่ผมต้องการ แน่นอนว่า ผมต้องเทียบความคล้ายคลึงของมัน กับ ของเก่าที่ทำได้จาก M$ ด้วย ว่า อันไหนใช้ได้ อันไหนใกล้เคียง บางอันก็มั่วๆเอาเพื่อให้ได้ผลลัพธ์ที่ใกล้เคียง แต่ก็ถือว่า ใช้ได้แล้วนะ ประมาณ 80% เลยล่ะ สำหรับการหนีออกจาก M$ ในเรื่องของ เครื่องมือการทำงาน

ยกตัวอย่างเลยก็แล้วกันว่า 4 operation ที่เคยทำไว้สำหรับ Listview control ในการใช้งานกับ M$ และ Borland C Compiler ปรากฎว่า ต้องกำหนดวิธีการกันใหม่เกือบหมด เพื่อให้ได้ผลที่เหมือนเดิม นอกจากนี้ การสั่งให้เลือกค่าในแถวแรกของ listview เวลาที่ เปิดโปรแกรมขึ้นมา ยังสั่งงานไม่เหมือนกันอีกด้วย เนื่องจากว่า ปัจจุบันนี้ มี versions ใหม่ของ library ออกมา ทำให้ผมแน่ใจว่า อาจจะต้อง compile กันใหม่อีกที แล้วค่อยมาดูกันว่า มีอะไรใหม่ เพราะว่า ของฟรีนี้ พัฒนากันตลอด และทำให้เข้ากับของเก่าอยู่แล้ว คิดว่า ไม่น่าจะมีปัญหาอะไรมาก

สรุปก็คือว่า การใช้งาน Library ตัวนี้ คนทำ Help คงต้องพัฒนากันอีกหน่อย หรือจะให้ดี ชี้ช่องทางด้วยว่า Tutorials วิธีการใช้งานต่างๆ มีบอกไว้ที่ไหนเพื่อใช้ควบคู่กันกับ Help นักพัฒนาจะได้ตามหาให้ครบถ้วนทั้งวิธีการใช้และการกำหนดตัวแปร ของชุดคำสั่ง เพราะเท่าที่ลองๆใช้งานดู ก็คิดว่า คุณภาพของชุดคำสั่งเมื่อใช้งานจริงแล้วก็ยอมรับได้ในระดับหนึ่ง ก็ต้องทดลองใช้กันต่อไป หวังว่า อนาคตข้างหน้า น่าจะได้ปักหลักอยู่กับมัน ตลอดไป จบแล้วครับ ^_^

เฮ้อ กว่าจะจูนให้เหมือนกันได้ WxWidgets

Tagged on:         

Leave a Reply

Your email address will not be published. Required fields are marked *