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

ตอนนั้น ภาษา SQL ถือกำเนิดแล้ว

ใน PC โปรแกรมที่ใช้ SQL เป็นหลัก ที่รู้จักกันแพร่หลายสุด คงเป็นโปรแกรม Microsoft Access

ผมพอจะรู้เลา ๆ ว่า ภาษาคอมพิวเตอร์แต่ละยุค จะมีความสะดวกต่างกันมากหลายเท่า

ผมกะเอง ผมว่าราว 10 เท่าน่าจะได้

เช่น จากแรกเริ่ม ภาษาเครื่อง ไปเป็นภาษา Basic (C/fortran/Pascal ด้วย) ก็จะเป็นว่า เขียนได้สั้นกว่าราว 10 เท่า ในการสั่งงานเรื่องเดียวกัน

ผมพอจะรู้เลา ๆ ว่า ถ้าจัดการข้อมูล โปรแกรมที่ตรงด้าน เช่น Dbase/Fox/Clipper ก็น่าจะเป็นแบบเดียวกัน คือสั่งคำสั่งเดียว เทียบเท่าภาษา Basic นับสิบบรรทัด

และก็พอจะรู้เลา ๆ ว่า SQL ก็น่าจะสะดวกยิ่งกว่า DBase ในอัตราส่วนเดียวกัน

ผลคือ เมื่อความจำเป็นเฉพาะหน้ามาถึงให้ต้องทำฐานข้อมูล ผมจึงกระโดดไปหัด SQL โดยข้ามขั้น ไม่หัด Dbase<p>ปรากฎว่าผมตัดสินใจถูก SQL ทำให้การจัดการข้อมูลง่ายขึ้นมากสำหรับตัวเอง</p><p>ดังนั้น ในงานทั่ว ๆ ไปที่ข้อมูลน้อย คำนวณมาก ผมก็จะใช้แต่ Basic</p><p>งานไหนข้อมูลมาก คำนวณน้อย ก็ใช้ SQL</p><p>งานไหนมีทั้งข้อมูลมาก ประมวลผลมาก ผมก็ใช้ทั้งสองแบบ</p><p>ถ้าจะว่าไปแล้ว ภาษาแต่ละยุค จะมีลำดับขั้นของ abstraction ที่ลึกลงไปเรื่อย ๆ</p>ในช่วงชีวิตของเรา คงทันเห็นการก้าวไปอีกก้าว ถัดจาก SQL คือการใช้ปัญญาประดิษฐ์มาเชื่อมต่อกับ SQL <p>abstraction เป็นกระบวนการ de-skill</p><p>คือยิ่งพัฒนาไปมาก คนใช้ก็ไม่จำเป็นต้องมีทักษะแบบเดิมอีก </p><p>(แต่ต้องพัฒนาทักษะแบบใหม่ให้สอดคล้องกัน)</p><p style="background-color: #33cccc">พูดง่าย ๆ คือ ยิ่ง abstract มาก ยิ่งมีพลังมาก แต่ต้องใช้เป็นนะครับ ถ้าใช้ไม่เป็น ก็เป็นการวาดฝันในอากาศไป</p><p>ยกตัวอย่าง ผมมีข้อมูลอายุทุกคนในชุมชนหนึ่ง ก็สามารถใช้ SQL คำสั่งเดียวแจงความถี่ในแต่ละช่วงชั้นอายุได้ โดยเรียงจากความถี่สูงสุดลงไปต่ำสุด สั่งทีเดียวก็ได้ผลแสดงตรงหน้า</p><p>ถ้าสั่งไม่เป็น หรือไม่รู้จักภาษา SQL (=query ใน Microsoft Access) บอกว่าทำอย่างนี้ได้เสร็จในครึ่งนาที ก็จะเป็นการคิดเพ้อเจ้อไป </p><p>แต่ถ้าผมใช้ภาษา Basic เขียน คงเป็นหลักร้อยบรรทัด ต้องเรียก subroutine sort กันวุ่น ต้องสร้างโครงสร้างข้อมูลวุ่นวายเพื่อรองรับคำสั่ง ใช้เวลาอย่างน้อยก็สิบนาทีขึ้น ต่อให้มีคลังโค้ดตุนไว้ก็เถอะ</p><p>ถ้าใครถนัดแต่ภาษาเครื่อง อาจต้องว่ากันหลายพันบรรทัด </p><p>จริงอยู่ว่า abstraction มีต้นทุนแฝงที่มองไม่เห็นอยู่มาก แต่ในระยะยาวก็ยังคุ้มที่จะจ่ายต้นทุนแฝงนั้น</p><p>เช่น วิเคราะห์ข้อมูลเดียวกัน ใช้ ภาษา FoxPro กับ Mcrosoft Access อาจใช้เวลาต่างกันหลายเท่า (ภาษายุคแรกจะทำงานไวมาก แต่ต้องสั่งกันทุกย่างก้าว แต่ภาษายุคหลัง สั่งสั้น ๆ จบ แต่การทำงานจะช้าอืดกว่ามากหลายเท่า) ซึ่งเป็นเรื่องที่แก้ได้ง่ายโดยใช้เงิน (ลงทุนฮาร์ดแวร์รุ่นใหม่) </p><p>ลองนึกดูว่า ถ้าถัดจาก SQL มีการ abstraction ลงไปอีกขั้นหรือสองขั้น นั่นก็อาจใกล้เคียงมากกับกระบวนการคิดของคนเรา </p><p>ยังมีเรื่องเกี่ยวกับ SQL ต่อครับ</p>