กระโดดไปยังแผงนำทาง

File Extension 25 December 2006 8:28 pm

บันทึกโดย Mr. PeeTai ใน : การสร้างซอฟต์แวร์ , ตรวจย้อนกลับ

วันนี้ผมว่าผมโม้เรื่อง File Extension บ้างดีกว่า เทคนิคหน่อยนะวันนี้ :-) จะบอกว่าตอนนี้ในโลกคอมพิวเตอร์ของพวกเรามี File Extension เยอะแยะเต็มไปหมดเลยเน้อะ ทั้งที่คิดค้นโดยบริษัท, หรือองค์กร, หรือแม้กระทั่งโดยตัวบุคคลเดี่ยว ๆ

อย่างที่ผมเคยโม้เอาไว้อ่ะครับว่า ถึงสุดท้ายแล้วการเขียนซอฟต์แวร์ของเรา ก็มีจุดพื้นฐานง่าย ๆ อยู่ที่การนำข้อมูลเข้า, การประมวลผล และการแสดงผลลัพธ์¿ ซึ่งกระบวนการทั้งสามอย่างนี้เราหลีกหนีไม่พ้นเลย ที่จะต้องยุ่งวุ่นวายอยู่กับข้อมูลใน RAM และข้อมูลใน File ครับ

ทีนี้บทความนี้จะคุยเรื่อง File งั้นก็คุยแต่เรื่อง File ดีกว่า :-P คือจะบอกว่าเรื่องเกี่ยวกับ File Extension เป็นเรื่องคลาสิคมาก ๆ เลยนะ ขอบอก ขอบอก อย่างที่เรารู้กันว่า File มีสองแบบใหญ่¿ๆ คือแบบ Plain Text กับแบบ Binary ไอ้เจ้า File แบบ Plain Text มันแทบจะไม่มีวิวัฒนาการอะไรเลยงั้นอย่าไปสนใจมันเลย มาสนใจไอ้ประเ฿ทที่เป็นแบบ Binary กันดีกว่า

โครงสร้างไฟล์แบบซับซ้อนโครงสร้างไฟล์แบบพื้น ๆผมชอบแนวคิดของ File แบบ Binary มาก ๆ เลยนะ ไม่รู้ใครเป็นคนคิดขึ้นมา ที่ชอบก็เพราะไม่ว่าจะเป็น File แบบ Binary แบบไหน ก็จะมีโครงสร้างคล้าย ๆ แบบ฿าพด้านซ้ายอ่ะ คือมี Header กับมี Detail หรือบาง File Extension ก็จะเว่อร์หน่อยแบบ฿าพด้านขวา คือมี Header ใหญ่แล้วก็มี Header ย่อย ๆ กับมี Detail ย่อย ๆ ตามลำดับ

จนถึงวันนี้ผมคิดว่ามี Binary File ถูกคิดค้นขึ้นมาน่าจะเป็นพันแบบแล้ว เพื่อรองรับการจัดเก็บข้อมูลในรูปแบบต่าง ๆ ตั้งแต่สากกระเบือยันเรือรบ เก็บมันตั้งแต่ข้อมูลเลขฐานสองธรรมดา ไปจนถึงข้อมูลมัลติมีเดียเต็มรูปแบบ

ถ้าผมทายไม่ผิด หลาย ๆ ท่านที่เป็นนักพัฒนาซอฟต์แวร์ คงจะมีความใฝ่ฝันเล็ก ๆ ที่จะคิดค้น File Extension อะไรซักอย่างหนึ่งของตนเองขึ้นมา แล้ว File Extenstion ดังกล่าว ถูกเผยแพร่ใช้งานจนเป็นที่นิยมไปทั่วโลก น่า฿ูมิใจนะแบบนี้

ปัจจัยสำคัญที่จะ Launch ไอ้เจ้า File Extension ของตนเองออกสู่สาธารณชนได้ จะประกอบไปด้วยขั้นตอนไม่ซับซ้อนครับ นั่นคือ ออกแบบโครงสร้าง File, สร้างซอฟต์แวร์ที่จะใช้สร้าง File ดังกล่าวออกมา และสร้างซอฟต์แวร์ที่จะใช้อ่าน File ดังกล่าว

ขั้นตอนน่ะไม่ซับซ้อน แต่รายละเอียดในแต่ล่ะขั้นตอนน่ะซับซ้อนโคตรเลยล่ะ!!! จุดยากอยู่ตรงการออกแบบโครงสร้าง File เนี่ยแหล่ะ ผมว่าการออกแบบโครงสร้าง File เป็นเรื่องใหญ่โตมาก ถึงขนาดเอาเป็นหัวข้อปริญญานิพนธ์, ฿าคนิพนธ์ หรือวิทยานิพนธ์ได้ด้วยซ้ำ

เมื่อตอนที่ผมทำปริญญานิพนธ์เรื่อง speech recognition นั้น นอกจากผมจะต้องมาวุ่นวาย, ปวดหัว, ร่ำไห้, เศร้าโศกเสียใจกับการที่ต้องมาเรียนรู้ศาสตร์ของ speech recognition ซึ่งเป็นเรื่องถนัดของคนที่เรียนวิศวกรรมไฟฟ้าแล้ว ผมยังต้องมาปวดกบาลกับการเขียนซอฟต์แวร์เพื่อจัดการ WAV File ด้วย

ก็ตอนนั้นผมยังไม่เก่งพอที่จะเขียนซอฟต์แวร์เพื่อควบคุมไมโครโฟนได้, ยังเขียนซอฟต์แวร์เพื่อบังคับให้เสียงที่ถูกอัดผ่านไมโครโฟนบันทึกลงไปใน Virtual Memory แล้วให้ Thread ย่อยไปอ่านข้อมูลจาก Virtual Memory มาประมวลผลไม่ได้

ผมก็เลยจำเป็นจะต้องใช้กลไกมาตรฐานที่ IDE ดังกล่าวมีให้ บันทึกเสียงที่อัดผ่านไมโครโฟนลง WAV File แทน ดังนั้นก็เลยหลีกเลี่ยงไม่ได้ที่ต้องไปทำความเข้าใจกับโครงสร้างของ WAV File

สมัยนั้นข้อมูลหายาก โชคดีผมได้รู้จักกับเว็บไซต์หนึ่ง เว็บไซต์เกี่ยวกับ File Format ที่เก่าแก่มาก เปิดมาตั้งแต่ปี พ.ศ. 2536 เลย (เขาบอกว่าเขาสงวนลิขสิทธิ์ตั้งแต่ปี พ.ศ. 2539 แต่ผมเจอเว็บเขาก่อนหน้านั้นตั้งหลายปีแล้ว) เว็บดังกล่าวคือ Wotsit’s Format

ปัจจุบันอะไร ๆ มันก็ง่ายขึ้นนะ เพราะนักพัฒนาซอฟต์แวร์ระดับ Top ของโลก เขาช่วยกันสร้าง Framework ที่จัดการ File Extenstion มาตรฐานขึ้นมา ผมมอง ๆ ดูนะไม่ว่าจะเป็น Java, PHP, Visual Studio.NET ล้วนมี Framework เพื่อช่วยจัดการ File Extension ทั้งนั้น ข้อดีก็คงเป็นเรื่องของความง่ายในการเขียนซอฟต์แวร์ ที่เราคงไม่จำเป็นต้องไปจัดการ File Extension เองแล้ว แต่ข้อเสียก็คงเป็นว่าเราไม่ได้พัฒนาหยักสมองอะไรซักเท่าไหร่ เพราะกลายเป็นว่าอะไร ๆ ก็มีคนทำไว้ให้แล้วนั่นเอง

Technorati Tags: , , , , ,

ความคิดเห็น»

1. SmileSquare - 25 December 2006

ผมยังเคยคิดจะทำ โปรแกรม compress ไฟล์ เองเลย เหมือนกับพวก winzip arj อะไรพวกนั้น แต่ก็ได้แค่คิด …

2. CityBlue - 26 December 2006

อธิบายอะไรๆ ได้เข้าใจง่ายดีครับ เรียนคอมพ์มาบ้าง ยังไม่รู้ลึกเท่านี้เลย อิอิ

3. Day - 26 December 2006

เรื่องอะไรพวกนี้ มันมีรายละเอียดที่ต้องทำความเข้าใจเยอะ File Extension มันก็มีให้ใช้กันเยอะ จนทำให้คิดว่าจะเขียนเองทำไม ในเมื่อมันมีให้ใช้อยู่แล้ว และดีด้วย

4. หมีน้อย - 26 December 2006

เห็นด้วยครับ เดี่ยวนี้ทำอะไรก็ต้องมี Framework มันช่วยให้ทำอะไรง่ายขึ้น

ผมชอบคำนี้ครับ

แต่ข้อเสียก็คงเป็นว่าเราไม่ได้พัฒนาหยักสมองอะไรซักเท่าไหร่ เพราะกลายเป็นว่าอะไร ๆ ก็มีคนทำไว้ให้แล้วนั่นเอง

5. bow_der_kleine - 27 December 2006

ผมสงสัยว่าตอนนี้พวก text-file มันกำลังจะกลับมาแรงแซง binary อีกรอบหรือเปล่าครับ เพราะเดี๋ยวนี้อะไร ๆ ก็พยามทำตัวให้เป็น XML หมดเลย

6. ?????????????????? - 27 December 2006

7. iPAtS - 28 December 2006

คยเขียนแต่อ่าน pcx ปู้นนู้น แบบว่าลอกหนังสือมาทั้งดุ้น RLE ก็ไม่รู้จัก
ใช้ Turbo C เขียน เปิดโหมด VESA ก็ต้องเขียนเอง (ลอกอีกนั่นแหละ)
กว่าจะเอารูปออกมาแสดงบนจอได้นี่ลากเลือดมาก (เพราะพิมพ์เยอะ ตาลาย อิอิ)

เรื่อง XML นี่ก็คิดเหมือนกันนะครับ ว่ามัน overhead มากๆๆ
แต่ที่เห็นส่วนใหญ่ เช่นพวก OpenDocument เค้าก็จะ zip กัน ก็ลดมาได้หน่อย
(ซึ่งพอ zip แล้วก็เป็น binary อยู่ดี อิอิ)

8. พี่ไท้ - 29 December 2006

สมัยก่อน การเขียนโค้ดพื้นฐาน ถือว่าเป็นการใช้ชีวิตทรหดมาก ๆ เลยครับคุณ iPats แต่ว่าเดี๋ยวนี้ใคร ๆ ก็สร้างโค้ดตามหลักการ Framework กันหมดแล้ว ชีวิตนักพัฒนาซอฟต์แวร์เลยดีขึ้นเป็นลำดับอ่ะครับ

9. poo - 29 December 2007

ขอบคุณค่ะเป็นประโยคได้มากเลยกับเรื่องที่จะทำ (การบ้านน่ะ) เกี่ยวสื่อประสม (Multimedia-based) ขอบคุณมาก สุขสันวันปีใหม่ค่ะ


*
เพื่อพิสูจน์ว่าคุณเป็นมนุษย์ (ไม่ใช่หุ่นยนต์) ดังนั้น กรุณาใส่รหัสป้องกันซึ่งแสดงอยู่ด้านล่างด้วยครับ
Anti-Spam Image