‹

00 · แผนที่

00 · ​แผนที่

​บท​นี้​คือ​ชั้นล่าง​สุด​ของ​หอคอย — ​แผนที่​ที่​ทุก​บท​เหนือ​ขึ้นไป​ถือว่า​คุณ​เห็น​มา​แล้ว

​ทำไม "​วิทยาการ​คอมพิวเตอร์ (computer science)" ​จึง​ไม่​ใช่​ทั้ง​เรื่อง​ของ​คอมพิวเตอร์​และ​ไม่​ใช่​วิทยาศาสตร์ — ​และ​สาขาวิชา​เหล่านี้​คือ​อะไร​กัน​แน่

​เดือน​กันยายน ​ปี 1967 ​ชาย​สาม​คนเขียน​จดหมาย​ถึง​วารสาร Science ​เพราะ​เพื่อน​ร่วมวง​การบอก​พวกเขา​ไม่​หยุด​ว่า​สาขาวิชา​ของ​พวกเขา​ไม่​มี​อยู่​จริง Allen Newell, Alan Perlis ​และ Herbert Simon ​ไม่​ใช่​พวก​เพี้ยน​ไร้​ชื่อ​ที่​ออกมา​ปกป้อง​กระแส​ชั่วครู่ Perlis ​ได้ Turing Award ​รางวัล​แรก​ที่​เคย​มอบให้​ใคร ​เมื่อปีก่อน​หน้า​นั้น Newell ​กับ Simon ​จะ​ได้​รางวัล​เดียวกัน​ร่วมกัน​ใน​ปี 1975 Simon ​จะ​ได้​รางวัลโนเบล​สาขา​เศรษฐศาสตร์​เพิ่ม​อีก​ใน​ปี 1978 ​คำ​แก้ต่าง​ของ​พวกเขา​ยาว​ประโยค​เดียว — ​วิทยาการ​คอมพิวเตอร์ (computer science) ​คือ "​การศึกษา​คอมพิวเตอร์​และ​ปรากฏการณ์​ทั้งหมด​ที่อยู่​รอบตัว​มัน" ("the study of computers and all the phenomena surrounding them") (Newell, Perlis & Simon, 1967)

​สิบ​แปด​ปี​ให้หลัง ​ตำรา​ที่​โด่งดัง​ที่สุด​เท่าที่​สาขา​นี้​เคย​ผลิต ​เปิด​เล่ม​ด้วย​การเถียง​กับ​ผู้ก่อตั้ง​สาขา​ของ​ตัวเอง Structure and Interpretation of Computer Programs ​ของ Abelson ​และ Sussman ​ประกาศ​ใน​คำนำ​ว่า​พวกเขา​เชื่อ​ว่า "​วิทยาการ​คอมพิวเตอร์" ​ไม่​ใช่​วิทยาศาสตร์ ​และ​ความสำคัญ​ของ​มัน​แทบ​ไม่​เกี่ยวกับ​คอมพิวเตอร์ (SICP, 1985) ​คำ​แดกดัน​ชุด​เดียวกัน​แต่​คม​กว่า​ยัง​หมุนเวียน​อยู่​จนถึง​วันนี้ — ​วิทยาการ​คอมพิวเตอร์​ไม่​ได้​เกี่ยวกับ​คอมพิวเตอร์ ​มาก​ไป​กว่า​ที่​ดาราศาสตร์​เกี่ยวกับ​กล้องโทรทรรศน์ (computer science is no more about computers than astronomy is about telescopes) — ​คน​มัก​ยก​ให้​เป็น​คำของ Edsger Dijkstra ​แต่ต้น​ตอ​ที่​สืบ​ย้อน​ได้​คือ Michael Fellows ​และ Ian Parberry ​ใน​ปี 1993 (Quote Investigator)

​ผู้ก่อตั้ง​เรียก​มัน​ว่า​วิทยาศาสตร์​ของ​คอมพิวเตอร์ ​คำสอน​ของ​สาขา​เอง​บอก​ว่า​มัน​ไม่​ใช่​ทั้งสอง​อย่าง ​ทั้งคู่​พูด​ถูก ​และ​การเห็น​ว่า​ทั้งคู่​ถูก​พร้อมกัน​ได้​อย่างไร ​คือ​งาน​ของ​บท​นี้ — ​และ​คือ​แนวคิด​ที่​จัดวาง​ทั้ง​เล่ม

"​การคำนวณ (computing)" ​ไม่​ใช่​สาขาวิชา​เดียว​ที่​สวม​ป้ายชื่อ​ห้า​ใบ ​นี่​คือ​สิ่ง​แรก​ที่​ต้อง​เข้าใจ ​แต่ละ​สาขา​คือ ​คำถาม ​คนละ​คำถาม​ที่​ถาม​กับ​เครื่องจักร​ชุด​เดียวกัน ​แผนที่​ทางการ​วาด​โดย​สมาคม​วิชาชีพ​ด้าน​คอมพิวเตอร์ ​รายงาน CC2005 (ACM, AIS ​และ IEEE Computer Society) ​ตรึง​สาขา​ดั้งเดิม​ทั้ง​ห้า​ไว้ ​และ​รุ่น​ต่อมา CC2020 — ​คณะทำงาน​ห้าสิบ​คน​จาก​ยี่สิบ​ประเทศ ​รายงาน​ผล​ปลายปี 2020 — ​รับ​ห้า​สาขา​นั้น​มา​ต่อ ​พร้อม​ต้อนรับ​ผู้มาใหม่​อีก​สอง ​ห้า​สาขา​ถาม​ว่า:

​วิทยาการ​คอมพิวเตอร์ (computer science, CS): ​อะไร​บ้าง​ที่​คำนวณ​ได้ ​และ​ด้วย​ต้นทุน​เท่าไร? ​วิศวกรรม​คอมพิวเตอร์ (CE): ​ไฟฟ้า​กลายเป็น​ตรรกะ​ได้​อย่างไร — ​และ​ฮาร์ดแวร์​จบ​ตรงไหน ​ซอฟต์แวร์​เริ่ม​ตรงไหน? ​วิศวกรรม​ซอฟต์แวร์ (SE): ​เกิด​อะไร​กับ​โปรแกรม​เมื่อ​มัน​ต้อง​อยู่​ไป​อีก​หลาย​ปี​และ​ถูก​แก้​ด้วยมือ​หลาย​คู่? ​ระบบ​สารสนเทศ (IS): ​การคำนวณ ​ทำ ​อะไร​ภายใน​องค์กร — ​ต่อ​การตัดสินใจ ​ต่อ​บันทึก​ข้อมูล ​ต่อ​อำนาจ? ​เทคโนโลยีสารสนเทศ (IT): ​ใคร​ทำให้​ระบบ​จริง​เดิน​อยู่​ได้​เพื่อ​ผู้ใช้​จริง ​และ​ทำ​อย่างไร? ​ผู้มาใหม่​สอง​ราย​คือ ​ความมั่นคง​ปลอดภัย​ไซเบอร์ (cybersecurity) (​ข้อแนะนำ​หลักสูตร: CSEC2017) ​และ ​วิทยาการข้อมูล (data science) (ACM competencies, 2021) — ​อายุ​น้อยกว่า ​และ​ดังที่​จะ​เห็น​ต่อไป ​มี​รูปทรง​ต่าง​จาก​ห้า​สาขา​รุ่นพี่

​จ้อง​สิ่งประดิษฐ์​ชิ้น​เดียว — ​ระบบ​เวช​ระเบียน​ผู้ป่วย​ของ​โรงพยาบาล — ​ห้า​สาขา​กลายเป็น​ห้า​อาชีพ​ทันที ​นัก​วิทยาการ​คอมพิวเตอร์​ถาม​ว่า​อัลกอริทึม​จับคู่​เวช​ระเบียน​ขยาย​ไป​รับ​ผู้ป่วย​สิบ​ล้าน​คน​ไหว​ไหม ​วิศวกร​คอมพิวเตอร์​ถาม​ว่า​ทำไม​ตัวควบคุม​ที่เก็บ​ข้อมูล​ทำให้​การเขียน​ข้อมูล​เสียหาย​ตอน​ไฟ​ดับ ​วิศวกร​ซอฟต์แวร์​ถาม​ว่า​จะ​แก้มอ​ดูล​เรียกเก็บเงิน​อย่างไร​ไม่​ให้​ระบบ​ของ​ฝ่าย​เภสัชกรรม​พัง ​ผู้เชี่ยวชาญ​ด้าน​ระบบ​สารสนเทศ​ถาม​ว่า​ทำไม​พยาบาล​ถึง​เลี่ยง​ระบบ​ไป​จด​ใส่​กระดาษ ​ผู้เชี่ยวชาญ​ด้าน​เทคโนโลยีสารสนเทศ​คือ​คน​ที่​ถูก​ตามตัว​ตอน​ตีสาม​เมื่อ​ระบบ​ล่ม ​เครื่อง​เดียวกัน ​ห้า​คำถาม

​หนังสือ​เล่ม​นี้​ไม่​เดินตาม​แผนที่​นั้น​ทีละ​แผนก ​มัน​ตัด​คนละ​มุม — ​มุม​ที่​สาขา​นี้​เอง​ตัด​อย่าง​เงียบๆ ​ทุกวัน ​กลเม็ด​ใหญ่​หนึ่งเดียว​ของ​การคำนวณ ​กลเม็ด​ที่​รอง​อยู่​ใต้​ทุก​สาขาวิชา ​คือ ​นามธรรม (abstraction): ​สร้าง​ชั้น​ขึ้น​มา​หนึ่ง​ชั้น ​ซ่อน​กลไก​ของ​มัน​ไว้ ​ยื่น​ผิว (surface) ​ที่​ง่าย​กว่า​สิ่ง​ที่​มัน​ปิดบัง​ให้​ชั้นบน ​ประจุไฟฟ้า​ถูก​ซ่อน​โดย​ทรานซิสเตอร์ (transistor) ​ทรานซิสเตอร์​ถูก​ซ่อน​โดย​เกต​ตรรกะ (logic gate) ​เกต​ถูก​ซ่อน​โดย​ตัว​ประมวลผล (processor) ​ตัว​ประมวลผล​ถูก​ซ่อน​โดย​ระบบปฏิบัติการ (operating system) ​คำสั่ง​ดิบ​ของ​เครื่อง​ถูก​ซ่อน​โดย​ภาษา​โปรแกรม (programming language) ​เครื่อง​เดี่ยว​ถูก​ซ่อน​โดย​เครือข่าย (network) ​ไล่​ขึ้นไป​เรื่อยๆ ​จนถึง​เด็ก​คน​หนึ่ง​ลาก​รูปถ่าย​ข้ามหน้า​จอ ​สั่ง​สวิตช์​นับ​พัน​ล้าน​ตัว​ด้วย​นิ้ว​เดียว ​โดย​ไม่ต้อง​เข้าใจ​สวิตช์​ตัว​ไหน​เลย ​ไม่​มี​ใคร​ถือ​หอคอย​ทั้ง​หลัง​ไว้​ใน​หัว​พร้อมกัน ​นั่น​ไม่​ใช่​ความล้มเหลว​ของ​การศึกษา — ​มัน​คือ​การออกแบบ Dijkstra ​ชี้​จุด​ว่า​ทำไม​กลเม็ด​นี้​ได้ผล ​ใน​ปาฐกถา Turing Award ​ปี 1972 ​ของ​เขา ​จุดประสงค์​ของ abstraction ​ไม่​ใช่​เพื่อ​ความคลุมเครือ ​แต่​เพื่อ "​สร้าง​ระดับ​ความหมาย​ใหม่​ขึ้น​มา​ระดับ​หนึ่ง ​ที่​ซึ่ง​เรา​สามารถ​แม่นยำ​ได้​อย่าง​สมบูรณ์" ("to create a new semantic level in which one can be absolutely precise") (EWD340) ​แต่ละ​ชั้น​ไม่​ใช่​ภาพ​พร่ามัว​ของ​ชั้นล่าง ​มัน​คือ ​ภาษา​ใหม่ ​ที่​แม่นยำ​ใน​เงื่อนไข​ของ​ตัวเอง

​หลักฐาน​ว่า​หอคอย​นี้​ปีน​ได้ ​คือ​นักเรียน​ปีน​มัน​จริง ​ใน​ตำรา-​คอร์ส​เล่ม​เดียว​ของ Nisan ​และ Schocken ​ชื่อ The Elements of Computing Systems (nand2tetris.org) ​ผู้เรียน​เริ่ม​จาก logic gate ​ตัว​เดียว ​แล้ว​ก่อ​ขึ้นไป — ​เกต ​ชิป ​เครื่องจักร ​แอสเซมเบลอร์ (assembler) ​คอมไพเลอร์ ​ระบบปฏิบัติการ ​และ​เกม​หนึ่ง​เกม — ​ภายใน​หนึ่ง​เทอม ​คนเดียว​สร้าง​ชั้น​ซ้อน (stack) ​ได้​ทั้ง​กอง ​เพราะ​แต่ละ​ชั้น​ไม่ต้องการ​อะไร​จาก​ชั้นล่าง ​นอกจาก​ผิว​ของ​มัน

​ผิว​เหล่านั้น​ไม่​สมบูรณ์แบบ ​และ​นี่​คือ​ไอเดีย​ที่สอง​ที่​ทั้ง​เล่ม​พิง​อยู่ Joel Spolsky ​ตั้งชื่อ​ให้​มัน​ว่า​กฎ​ว่าด้วย abstraction ​ที่​รั่ว​เสมอ (the Law of Leaky Abstractions): "abstraction ​ที่​ไม่​ธรรมดา​ทุก​ตัว ​รั่ว​ไม่​มาก​ก็​น้อย" ("all non-trivial abstractions, to some degree, are leaky") (Spolsky, 2002) ​แอป​ของ​คุณ​สัญญา​ว่า​ข้อความ "​ถูก​ส่ง​แล้ว" ​จนกระทั่ง​เครือข่าย​ชั้นล่าง​ไม่​เห็นด้วย ​ลูป​สอง​ลูป​ที่​เหมือนกัน​ทุก​ประการ​ทาง​ตรรกะ ​ทำงาน​เร็ว​ช้า​ต่างกัน​สิบ​เท่า ​เพราะ​วิธี​ที่​ฮาร์ดแวร์​หน่วยความจำ​สามชั้น​ข้างล่าง​แคช (cache) ​ข้อมูล ​เมื่อ abstraction ​รั่ว ​ต้อง​มี​คน​ลง​บันได​ไปดู — ​และ​การรู้​ว่า​รั่ว​มาจาก​ชั้น*​ไหน* ​คือ​เนื้อ​ส่วนใหญ่​ของ​ความเชี่ยวชาญ​ใน​การคำนวณ ​ด้วยเหตุนี้​ทุก​บท​ใน​เล่ม​นี้​จึง​ตอบคำถาม​สาม​ข้อ​เกี่ยวกับ​ชั้น​ของ​ตัวเอง: ​ชั้นนี้​ซ่อน​อะไร ​ยื่น​ผิว​แบบ​ไหน​ขึ้นไป ​และ​รั่ว​ตรงไหน

​ข้อ​ถกเถียง​ระหว่าง​ปี 1967 ​กับ​ปี 1985 ​คลี่คลาย​ได้​ตรงนี้ Newell, Perlis ​และ Simon ​พูด​ถูก ​ปรากฏการณ์​เหล่านั้น​มี​อยู่​จริง ​และ​ชั้น​อย่าง​สถาปัตยกรรม (architecture) ​เครือข่าย ​และ machine learning ​ถูก​ศึกษา​ด้วย​การทดลอง ​เหมือน​ศึกษา​ธรรมชาติ Abelson ​กับ Sussman ​ก็​พูด​ถูก ​ไม่​มี​ชั้น​ใด​เหนือ​สองชั้น​ล่าง​สุด​ที่​เกี่ยวกับ​อิเล็กทรอนิกส์​แม้แต่น้อย — ​หอคอย​ส่วน​บน​ก่อ​ขึ้น​จาก​โครงสร้าง​ล้วนๆ ​ใกล้​คณิตศาสตร์​มากกว่า​เครื่องจักร​ใดๆ ​การคำนวณ​ไม่​ใช่​ความรู้​ชนิด​เดียว ​มัน​คือ​หอคอย​ที่​ฟิสิกส์​แข็งตัว​เป็น​วิศวกรรม ​วิศวกรรม​แข็งตัว​เป็น​ภาษา ​และ​ภาษา​แข็งตัว​เป็น​สิ่ง​ที่​ใกล้เคียง​ความคิด​อย่างยิ่ง

​วิธี​อ่าน​เล่ม​นี้: ​สิบห้า​ชั้น ​กับ​บท​ปิด​อีก​หนึ่ง​บท ​แต่ละ​บท​จบ​ใน​ตัวเอง ​ยาว​บท​ละ 900–1,400 ​คำ — ​เป็นหลัก​การ ​ไม่​ใช่​การสำรวจ​ภาพรวม ​บท​ที่ 01–03 ​คือ​ชั้น​รากฐาน (​อะไร​คำนวณ​ได้ ​อะไร​มีประสิทธิภาพ ​อะไร​คือ​สารสนเทศ) 04–06 ​ประกอบ​ตัว​เครื่อง​ขึ้น​มา 07–10 ​พา​มัน​ไป​สู่​สเกล​ใหญ่ 11–14 ​เดินตาม​ขอบ ​ที่​ซึ่ง​ฝ่ายตรงข้าม ​พฤติกรรม​ที่​เรียนรู้​ได้ ​และ​มนุษย์​เข้ามา​เกี่ยว ​อ่าน​ตามลำดับ​ถ้า​อยาก​ปีน​ขึ้นไป​ทั้ง​หอคอย ​หรือ​กระโดด​ไป​ชั้น​ไหน​ก็ได้ — ​ทุก​บท​บอก​ตำแหน่ง​ของ​ตัวเอง​ใน​ชั้น​ซ้อน​ไว้​ใน​บรรทัด​แรก ​และ​หัวข้อ "​เชื่อมโยง" ​บอก​ว่า​บันได​ไหน​พา​ไป​ที่ไหน

​เชื่อมโยง

​ชั้นล่าง​ของ​บท​นี้: ​ไม่​มี — ​นี่​คือ​พื้นดิน ​บท​อื่น​ทั้งหมด​ยืน​อยู่​บน​มัน ​สาขาวิชา​ทาบ​ทับ​กับ​ชั้น​ต่างๆ ​ไม่​เท่ากัน ​และ​ควร​สังเกต​ไว้​ขณะ​อ่าน: CS ​ครอบคลุม​เต็ม​บท​ที่ 01–03 ​และ 12, CE ​เป็นเจ้าของ​บท​ที่ 04, SE ​เป็นเจ้าของ​บท​ที่ 07, IS ​กับ IT ​โผล่​ใน​บท​ที่ 08–10 ​ส่วน​ผู้มาใหม่​สอง​ราย​ที่​อายุ​น้อยกว่า — security ​กับ data science — ​กลับ​ไม่​ใช่​ชั้น​สัก​ชั้น ​แต่​เป็น​ช่อง​บันได​ที่​ตัด​ขึ้น​ลง​แนวดิ่ง​ผ่าน​ทุกอย่าง (​บท​ที่ 11 ​และ 12 ​อธิบาย​ว่า​ทำไม)

​คำถาม​ที่​ยัง​เปิด​อยู่

​การคำนวณ​คือ​วิทยาศาสตร์ ​แขนง​หนึ่ง​ของ​วิศวกรรม ​หรือ​คณิตศาสตร์​แบบ​ใหม่? ​จดหมาย​ปี 1967 ​ไม่​ได้​ฟันธง ​และ​หกสิบ​ปี​ผ่าน​ไป ​สาขาวิชา​นี้​ยัง​ให้ทุน​กับ​คำตอบ​ทั้ง​สาม​แบบ data science ​กับ cybersecurity ​จะ​แข็งตัว​เป็น​สาขาวิชา​ที่​มี​ชั้น​ของ​ตัวเอง ​หรือ​จะ​ละลาย​กลายเป็น​สมรรถนะ (competency) ​ที่​มืออาชีพ​ด้าน​การคำนวณ​ทุกคน​ต้อง​มี — ​การอ่าน​แบบ​หลัง​นี้​เอง​ที่​กรอบ​คิด​แบบ competency-first ​ของ CC2020 ​เอียง​ไปหา​อย่าง​เงียบๆ? ​แล้ว​หอคอย​นี้​หยุด​โต​แล้ว​หรือยัง? ​บท​ที่ 12 ​หยิบ​ความเป็นไปได้​ที่​ยัง​เปิด​อยู่​ขึ้น​มา ​ว่า​ภาษาธรรมชาติ​เอง​กำลัง​กลายเป็น​ชั้น​ใหม่​ล่าสุด — ​ผิว​ที่ซ่อน​ทุกอย่าง​ใน​เล่ม​นี้​ไว้​ข้างใต้

​อ่าน​ต่อ

บทถัดไป · 2 / 1601 · ทฤษฎีการคำนวณ
Size
Page
Font

The Tower of Abstractions — An Encyclopedia of the Computing Disciplines

❦
100 · แผนที่201 · ทฤษฎีการคำนวณ302 · อัลกอริทึมและโครงสร้างข้อมูล403 · สารสนเทศและการเข้ารหัส504 · สถาปัตยกรรมคอมพิวเตอร์605 · ระบบปฏิบัติการ706 · ภาษาและคอมไพเลอร์807 · วิศวกรรมซอฟต์แวร์908 · ฐานข้อมูล1009 · เครือข่าย1110 · ระบบกระจาย1211 · ความปลอดภัยและวิทยาการรหัสลับ1312 · ปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง1413 · ปฏิสัมพันธ์มนุษย์–คอมพิวเตอร์ และกราฟิกส์1514 · พรมแดน1699 · ปิดเล่ม — หอคอยเมื่อมองทั้งหลัง