หลังจากที่ไม่อยากข้องแวะกับโปรแกรมจัดการฐานข้อมูลมานาน ในที่สุด ความจำเป็นก็บังคับจนได้
ตอนนั้น ภาษา SQL ถือกำเนิดแล้ว
ใน PC โปรแกรมที่ใช้ SQL เป็นหลัก ที่รู้จักกันแพร่หลายสุด คงเป็นโปรแกรม Microsoft Access
ผมพอจะรู้เลา ๆ ว่า ภาษาคอมพิวเตอร์แต่ละยุค จะมีความสะดวกต่างกันมากหลายเท่า
ผมกะเอง ผมว่าราว 10 เท่าน่าจะได้
เช่น จากแรกเริ่ม ภาษาเครื่อง ไปเป็นภาษา Basic (C/fortran/Pascal ด้วย) ก็จะเป็นว่า เขียนได้สั้นกว่าราว 10 เท่า ในการสั่งงานเรื่องเดียวกัน
ผมพอจะรู้เลา ๆ ว่า ถ้าจัดการข้อมูล โปรแกรมที่ตรงด้าน เช่น Dbase/Fox/Clipper ก็น่าจะเป็นแบบเดียวกัน คือสั่งคำสั่งเดียว เทียบเท่าภาษา Basic นับสิบบรรทัด
และก็พอจะรู้เลา ๆ ว่า SQL ก็น่าจะสะดวกยิ่งกว่า DBase ในอัตราส่วนเดียวกัน
ผลคือ เมื่อความจำเป็นเฉพาะหน้ามาถึงให้ต้องทำฐานข้อมูล ผมจึงกระโดดไปหัด SQL โดยข้ามขั้น ไม่หัด Dbaseปรากฎว่าผมตัดสินใจถูก SQL ทำให้การจัดการข้อมูลง่ายขึ้นมากสำหรับตัวเอง
ดังนั้น ในงานทั่ว ๆ ไปที่ข้อมูลน้อย คำนวณมาก ผมก็จะใช้แต่ Basic
งานไหนข้อมูลมาก คำนวณน้อย ก็ใช้ SQL
งานไหนมีทั้งข้อมูลมาก ประมวลผลมาก ผมก็ใช้ทั้งสองแบบ
ถ้าจะว่าไปแล้ว ภาษาแต่ละยุค จะมีลำดับขั้นของ abstraction ที่ลึกลงไปเรื่อย ๆ
ในช่วงชีวิตของเรา คงทันเห็นการก้าวไปอีกก้าว ถัดจาก SQL คือการใช้ปัญญาประดิษฐ์มาเชื่อมต่อกับ SQLabstraction เป็นกระบวนการ de-skill
คือยิ่งพัฒนาไปมาก คนใช้ก็ไม่จำเป็นต้องมีทักษะแบบเดิมอีก
(แต่ต้องพัฒนาทักษะแบบใหม่ให้สอดคล้องกัน)
พูดง่าย ๆ คือ ยิ่ง abstract มาก ยิ่งมีพลังมาก แต่ต้องใช้เป็นนะครับ ถ้าใช้ไม่เป็น ก็เป็นการวาดฝันในอากาศไป
ยกตัวอย่าง ผมมีข้อมูลอายุทุกคนในชุมชนหนึ่ง ก็สามารถใช้ SQL คำสั่งเดียวแจงความถี่ในแต่ละช่วงชั้นอายุได้ โดยเรียงจากความถี่สูงสุดลงไปต่ำสุด สั่งทีเดียวก็ได้ผลแสดงตรงหน้า
ถ้าสั่งไม่เป็น หรือไม่รู้จักภาษา SQL (=query ใน Microsoft Access) บอกว่าทำอย่างนี้ได้เสร็จในครึ่งนาที ก็จะเป็นการคิดเพ้อเจ้อไป
แต่ถ้าผมใช้ภาษา Basic เขียน คงเป็นหลักร้อยบรรทัด ต้องเรียก subroutine sort กันวุ่น ต้องสร้างโครงสร้างข้อมูลวุ่นวายเพื่อรองรับคำสั่ง ใช้เวลาอย่างน้อยก็สิบนาทีขึ้น ต่อให้มีคลังโค้ดตุนไว้ก็เถอะ
ถ้าใครถนัดแต่ภาษาเครื่อง อาจต้องว่ากันหลายพันบรรทัด
จริงอยู่ว่า abstraction มีต้นทุนแฝงที่มองไม่เห็นอยู่มาก แต่ในระยะยาวก็ยังคุ้มที่จะจ่ายต้นทุนแฝงนั้น
เช่น วิเคราะห์ข้อมูลเดียวกัน ใช้ ภาษา FoxPro กับ Mcrosoft Access อาจใช้เวลาต่างกันหลายเท่า (ภาษายุคแรกจะทำงานไวมาก แต่ต้องสั่งกันทุกย่างก้าว แต่ภาษายุคหลัง สั่งสั้น ๆ จบ แต่การทำงานจะช้าอืดกว่ามากหลายเท่า) ซึ่งเป็นเรื่องที่แก้ได้ง่ายโดยใช้เงิน (ลงทุนฮาร์ดแวร์รุ่นใหม่)
ลองนึกดูว่า ถ้าถัดจาก SQL มีการ abstraction ลงไปอีกขั้นหรือสองขั้น นั่นก็อาจใกล้เคียงมากกับกระบวนการคิดของคนเรา
ยังมีเรื่องเกี่ยวกับ SQL ต่อครับ
ตอนนี้งานผมโดยส่วนใหญ่ใช้ Ruby ครับ ผมคิดว่าภาษา Ruby ออกแบบได้ดีในแง่ว่าสอดคล้องกับกระบวนการคิดของมนุษย์ทีเดียวครับ
เห็นด้วยครับ
แต่เดิมผมเคยเป็นช่างซ่อมเครื่องคอม
สมัยนั้นยังต้องมานั่งคูณ multiplie
ต้องเสียบ jumper กำหนด param ให้เครื่องแบบ manual อยู่เลย
ปัจจุบันนี้
ง่ายมากครับ ง่ายกว่าที่คิด
เพียงเสียบ cpu ล็อคกับ case
bios ของ mainboard
ก็จะกำหนดค่าเองเลย
อะไร ๆ ก็ง่ายขึ้น ดีครับผมชอบ
แต่ ทว่าค่าตัวผมก็ลดลงไปด้วย
ไม่เฉพาะด้าน Hardware เท่านั้น
ทางด้าน Software อะไรๆ ก็ง่ายขึ้น
ง่ายซะจนเด็กมัธยมทำงานได้เทียบเท่ากับเราหรืออาจจะดีกว่าเสียด้วยซ้ำ
ทั้งนี้คงเป็นเพราะ Tool ที่มีในปัจจุบัน
มันใช้ง่านง่าย ละมังครับ
สวัสดีครับ คุณKwanchai