ผมเรียนรู้อะไรจากการเขียนโปรแกรมใช้เอง (6) - abstraction ... อีกที


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

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

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

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

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

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

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

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

ผลคือ เมื่อความจำเป็นเฉพาะหน้ามาถึงให้ต้องทำฐานข้อมูล ผมจึงกระโดดไปหัด SQL โดยข้ามขั้น ไม่หัด Dbase

ปรากฎว่าผมตัดสินใจถูก SQL ทำให้การจัดการข้อมูลง่ายขึ้นมากสำหรับตัวเอง

ดังนั้น ในงานทั่ว ๆ ไปที่ข้อมูลน้อย คำนวณมาก ผมก็จะใช้แต่ Basic

งานไหนข้อมูลมาก คำนวณน้อย ก็ใช้ SQL

งานไหนมีทั้งข้อมูลมาก ประมวลผลมาก ผมก็ใช้ทั้งสองแบบ

ถ้าจะว่าไปแล้ว ภาษาแต่ละยุค จะมีลำดับขั้นของ abstraction ที่ลึกลงไปเรื่อย ๆ

ในช่วงชีวิตของเรา คงทันเห็นการก้าวไปอีกก้าว ถัดจาก SQL คือการใช้ปัญญาประดิษฐ์มาเชื่อมต่อกับ SQL 

abstraction เป็นกระบวนการ de-skill

คือยิ่งพัฒนาไปมาก คนใช้ก็ไม่จำเป็นต้องมีทักษะแบบเดิมอีก

(แต่ต้องพัฒนาทักษะแบบใหม่ให้สอดคล้องกัน)

พูดง่าย ๆ คือ ยิ่ง abstract มาก ยิ่งมีพลังมาก แต่ต้องใช้เป็นนะครับ ถ้าใช้ไม่เป็น ก็เป็นการวาดฝันในอากาศไป

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

ถ้าสั่งไม่เป็น หรือไม่รู้จักภาษา SQL (=query ใน Microsoft Access) บอกว่าทำอย่างนี้ได้เสร็จในครึ่งนาที ก็จะเป็นการคิดเพ้อเจ้อไป 

แต่ถ้าผมใช้ภาษา Basic เขียน คงเป็นหลักร้อยบรรทัด ต้องเรียก subroutine sort กันวุ่น ต้องสร้างโครงสร้างข้อมูลวุ่นวายเพื่อรองรับคำสั่ง ใช้เวลาอย่างน้อยก็สิบนาทีขึ้น ต่อให้มีคลังโค้ดตุนไว้ก็เถอะ

ถ้าใครถนัดแต่ภาษาเครื่อง อาจต้องว่ากันหลายพันบรรทัด 

จริงอยู่ว่า abstraction มีต้นทุนแฝงที่มองไม่เห็นอยู่มาก แต่ในระยะยาวก็ยังคุ้มที่จะจ่ายต้นทุนแฝงนั้น

เช่น วิเคราะห์ข้อมูลเดียวกัน ใช้ ภาษา FoxPro กับ Mcrosoft Access อาจใช้เวลาต่างกันหลายเท่า (ภาษายุคแรกจะทำงานไวมาก แต่ต้องสั่งกันทุกย่างก้าว แต่ภาษายุคหลัง สั่งสั้น ๆ จบ แต่การทำงานจะช้าอืดกว่ามากหลายเท่า) ซึ่งเป็นเรื่องที่แก้ได้ง่ายโดยใช้เงิน (ลงทุนฮาร์ดแวร์รุ่นใหม่)

ลองนึกดูว่า ถ้าถัดจาก SQL มีการ abstraction ลงไปอีกขั้นหรือสองขั้น นั่นก็อาจใกล้เคียงมากกับกระบวนการคิดของคนเรา 

ยังมีเรื่องเกี่ยวกับ SQL ต่อครับ

คำสำคัญ (Tags): #programming
หมายเลขบันทึก: 94225เขียนเมื่อ 4 พฤษภาคม 2007 09:12 น. ()แก้ไขเมื่อ 11 กุมภาพันธ์ 2012 18:28 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (3)

ตอนนี้งานผมโดยส่วนใหญ่ใช้ Ruby ครับ ผมคิดว่าภาษา Ruby ออกแบบได้ดีในแง่ว่าสอดคล้องกับกระบวนการคิดของมนุษย์ทีเดียวครับ

เห็นด้วยครับ

แต่เดิมผมเคยเป็นช่างซ่อมเครื่องคอม
สมัยนั้นยังต้องมานั่งคูณ multiplie 
ต้องเสียบ jumper กำหนด param ให้เครื่องแบบ manual อยู่เลย

ปัจจุบันนี้
ง่ายมากครับ ง่ายกว่าที่คิด
เพียงเสียบ cpu ล็อคกับ case
bios ของ mainboard
ก็จะกำหนดค่าเองเลย

อะไร ๆ ก็ง่ายขึ้น ดีครับผมชอบ

แต่ ทว่าค่าตัวผมก็ลดลงไปด้วย

ไม่เฉพาะด้าน Hardware เท่านั้น
ทางด้าน Software อะไรๆ ก็ง่ายขึ้น

ง่ายซะจนเด็กมัธยมทำงานได้เทียบเท่ากับเราหรืออาจจะดีกว่าเสียด้วยซ้ำ

ทั้งนี้คงเป็นเพราะ Tool ที่มีในปัจจุบัน
มันใช้ง่านง่าย ละมังครับ

สวัสดีครับ ท่านอาจารย์Pดร. ธวัชชัย ปิยะวัฒน์

 

  • ใช้เครื่องมือที่ไปแนวเดียวกับวิธีคิดของมนุษย์ เป็นวิธีที่ทุ่นแรง และน่าจะทำให้สร้างสรรค์งานได้ง่ายและเร็วกว่ากรณีที่ไม่ใช้
  • อาจารย์น่าจะเขียนเล่ารายละเอียดเรื่องนี้บ้างนะครับ ถ้ามีเวลา...
  • เชื่อว่าจะมีคนรออ่านกันตรึม...

 

สวัสดีครับ คุณPKwanchai

  • ผมโชคดีที่ได้เห็นด้านสนุกของ IT โดยไม่ต้องเจอปัญหาอย่างเดียวกัน 
  • IT ยุคหน้า ใคร ๆ ก็ว่าจะเห็นการเปลี่ยนที่เร็วและเชี่ยวกรากกว่าเดิมอีก
  • แต่ถ้ามีจิตบริการและวิ่งตาม IT ก็คงไปได้ แม้จะเป็นการวิ่งตามเพื่ออยู่ที่เดิม (running to stand still) ก็ตาม
  • งานนี้ห้ามหยุดวิ่งกระมังครับ...

 

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท