Code คืออะไร? เข้าใจผ่านหนัง The Matrix

เชื่อว่าหลายคนคงเคยดูหนังเรื่อง The Matrix เราลองมาทำความเข้าใจเรื่องว่า โค้ด (code) คืออะไรผ่านหนังเรื่องนี้กันเถอะ

แต่ก่อนที่เราจะเข้าไปใน The Matrix ขอแว๊บออกมาในโลกแห่งความจริงสักประเดี๋ยว…

เมื่อซอฟต์แวร์ครองโลก(แห่งความจริง)

smartphone
รูปภาพโดย Saulo Mohana จาก Unsplash

ในโลกที่เราใช้โทรศัพท์มือถือเสมือนเป็นอวัยวะหนึ่งของร่างกาย ในโลกที่รถขับเองได้ ในโลกที่ AI เล่นโกะชนะแชมป์โลก(ที่เป็นคน) มีสิ่งหนึ่งที่อยู่เบื้องหลังเทคโนโลยีเปลี่ยนโลกเหล่านี้…

เป็นเวลาเกือบหนึ่งศตวรรษที่ ซอฟต์แวร์ (software) เข้ามามีบทบาทในชีวิตของมนุษย์ ทุกวันนี้เราตื่นมาด้วยเสียงปลุกจาก app นาฬิกาในไอโฟน เราเรียกรถไปทำงานด้วย Grab/Uber เราคุยกับครอบครัว คนรัก เพื่อนฝูงด้วย LINE และ สอดรู้สอดเห็นเรื่องชาวบ้านบน Twitter จนกระทั่งเข้านอน

นี่ยังไม่นับเครื่องซักผ้าที่เราสามารถกดปุ่มตั้งเวลาซัก เครื่องปรับอากาศที่เราใช้รีโมทปรับอุณหภูมิ ลิฟท์ที่เรากดปุ่มเพื่อขึ้นลงจากตึกระฟ้า ไปจนถึงตู้ ATM ที่เรากดเงิน สิ่งที่จับต้องได้ในชีวิตเหล่านี้ล้วนมี software อยู่ข้างในทั้งนั้น

ยิ่งในโลกธุรกิจยิ่งเห็นชัดว่า software กำลังมา

tech-company

บริษัทแท็กซี่ อันดับหนึ่งของโลกอย่าง Uber ไม่มีรถเป็นของตัวเองสักคัน
สื่อ อันดับหนึ่งของโลกอย่าง Facebook ไม่ได้สร้าง content เองสักนิด
ร้านค้าปลีก ที่มีมูลค่าสูงสุดของโลกอย่าง Alibaba ไม่มีสต็อคของแม้แต่น้อย
และ โรงแรม ที่ใหญ่ที่สุดในโลกอย่าง Airbnb ไม่มีห้องพักเป็นของตัวเอง

ในขณะที่อีกหลายธุรกิจอย่าง Kodak แทบจะล้มหายตายจากไปเพราะปรับตัวตามโลกไม่ทัน…

Code vs Software

อารัมภบทมาซะยืดยาว ว่าแต่ตกลง code คืออะไรกันแน่?!

Code คือชุดคำสั่งที่โปรแกรมเมอร์เขียน

Software คือสิ่งที่ผู้ใช้สัมผัสได้

อย่างแรกต้องเข้าใจก่อนว่า คอมพิวเตอร์นั้นคิดเองไม่เป็น สมองกลเหล่านี้เพียงแต่ทำตามที่คนสั่งเท่านั้น ที่เราใช้ app อย่างสุขสบายอยู่ทุกวันนี้ มีสิ่งมีชีวิตที่เรียกว่าโปรแกรมเมอร์เขียน code เพื่อสั่งงานให้คอมพิวเตอร์ทำตามที่เราต้องการได้

ถ้าคุณกำลังอ่านบทความนี้ในคอมพิวเตอร์ สามารถดู code ของเว็บที่กำลังอ่านอยู่ได้ง่ายๆ ดังนี้:

  1. คลิกขวาตรงไหนก็ได้ในหน้า (webpage) ที่กำลังดูอยู่
  2. กดปุ่ม ‘Inspect’ หรือ ‘Inspect Element’
  3. เพียงเท่านี้คุณก็จะเห็น code ของหน้าที่ดูอยู่ หน้าตาอาจจะประมาณรูปข้างล่าง

หมายเหตุ ใครอ่านในมือถือ ข้ามตรงนี้ไปก่อนได้นะ ค่อยไปทำที่บ้าน (^_^)

lines-of-code
รูปภาพโดย Ilya Pavlov จากเว็บ Unsplash

Program? App?

แล้วคำว่า โปรแกรม (program) คำว่า แอพ (app) หละ? เคยได้ยินคำว่าเขียนโปรแกรม ต่างกันยังไงหรอ?

จริงๆ แล้วคำเหล่านี้ในบางมิติมีความหมายคล้ายกัน หรือไม่ได้มีการตกลงกันอย่างชัดเจนว่าอะไรแปลว่าอะไร แต่ถ้าจะให้อธิบายก็น่าจะประมาณนี้…

Code

ถ้าจะให้เปรียบแล้ว code เหมือนตัวหนังสือ การเขียน code เหมือนการ “เขียนหนังสือ” ในความหมายที่ว่าเราเห็นเพื่อนเขียนอะไรสักอย่างอยู่ในบนกระดาษ โดยที่เราไม่จำเป็นต้องรู้ว่าเขาเขียนอะไร หรือสิ่งที่เขาเขียนจะมีความหมายหรือไม่

Program

ในขณะที่การเขียน program หากเปรียบเป็นการ “เขียนหนังสือ” ก็จะมีความหมายในบริบทที่นักเขียนกำลังแต่งหนังสือออกมาเป็นเล่มจริงๆ สิ่งที่เขียนมีความหมาย มีเรื่องราว มี logic ทำงานใดงานหนึ่งสำเร็จได้ในตัวเอง

“เขียนหนังสือ” เหมือนกันแต่คนละความหมาย

code-to-program
Designer ในทีมอยากกะพริบ…

Software

นั้นมีความหมายค่อนข้างทับซ้อน (overlap) กับคำว่า program อยู่พอสมควร ส่วนมากคำว่า software ใช้ในบริบทที่เปรียบเทียบกับ ฮาร์ดแวร์ (hardware) ซึ่งเป็นอะไรที่จับต้องได้

อีกนัยหนึ่ง software จะหมายถึงอะไรที่ผู้ใช้สัมผัสได้ สัมผัสในแง่ของ เห็น ได้ยิน รับรู้ ด้วยประสาทสัมผัสใดๆ ก็ตาม ในขณะที่ program นั้นอาจจะเป็นอะไรที่ประมวลผลอยู่ข้างหลัง ใน software หนึ่งๆ อาจมีหลาย program ได้

Application

เป็นศัพท์ทางการตลาดเสียมากกว่า เดี๋ยวนี้คนเห็น software อะไรก็จะเรียกเป็น app ซะหมด ทั้งๆ ที่จริงๆ สมัยที่เรามองว่า Nokia เป็น สมาร์ทโฟน เราเรียกสิ่งเหล่านี้ว่า widget


เอาเป็นว่าสำหรับคนทั่วไปแล้วให้ถือว่าเขียน code กับเขียน program มีความหมายเหมือนๆ กัน ในขณะที่ software เป็นคำแทนกว้างๆ (umbrella term) ที่หมายถึงสิ่งที่ทำให้ hardware มีชีวิต ทำงานตามคนสั่งได้…

Welcome to the Matrix

the-metrix-software

The Matrix (Software)

ตัว The Matrix เองเป็น software โลกจำลองที่มนุษย์เข้าไปใช้ชีวิตอยู่ สังเกตว่ามนุษย์สัมผัสและรับรู้ The Matrix ได้ (แต่ไม่รู้ว่าตัวเองถูกขังในโลกจำลอง)

agent-smith-and-colleagues
Agent Smith and colleagues

Agent Smith (Program)

หนึ่งในตัวละครหลักของ The Matrix คงจะหนีไม่พ้น Agent Smith โดยตามคำนิยามข้างบนของเรานั้น Agent Smith จะถือว่าเป็น program เพราะเป็นชุดคำสั่งที่ไว้ทำงานอย่างใดอย่างหนึ่ง นั่นคือรักษากฎระเบียบใน The Matrix และไล่ล่าพวกกบฎนั่นก็คือ Neo และพรรคพวกนั่นเอง

หากมองดีๆ จะพบว่า Agent ทั้ง 3 คนนี้ก็เปรียบเสมือน anti virus ของระบบ The Matrix ถึงแม้คนดูจะรู้สึกว่า Agent เหล่านี้เป็นตัวร้าย แต่พอมองในมุมของระบบแล้ว Agent เหล่านี้คอยขจัดสิ่งสกปรกออกจากระบบ

the-oracle
The Oracle

Oracle ธิดาพยากรณ์ (Program)

ตัว Oracle เองก็เป็น program หนึ่งใน The Matrix ที่มีหน้าที่คอยช่วยเหลือฝ่ายกบฎ อาจมองได้ว่า Oracle เป็น virus ก็ได้ เพราะยุยงก่อกวนให้ระบบล่มสลาย

agents-smith
Agents Smith

Agent Smith (Program)

ในตอนหลัง Agent Smith หลุดพ้นจากข้อจำกัดของระบบและแพร่พันธ์ได้เองอย่างไม่มีอะไรมาจำกัดไว้ได้ ทำให้ผันตัวเองกลายมาเป็น virus กัดกินระบบเสียเอง…

neo-and-the-architect
Neo and the Architect

The Architect

ถ้าให้เทียบ The Architect กับโลกแห่งความจริงแล้วจะตรงกับกลุ่มคนที่เรียกตัวเองว่า programmer, software engineer หรือ software architect — ในการสร้าง software มีผู้เกี่ยวข้องหลายตำแหน่งมาก ซึ่งอาจจะเหมาะสมกว่าถ้าไว้อธิบายในโอกาสหน้า — ซึ่งเป็นผู้ออกแบบหรือผู้สร้าง software ขึ้นมา

ถ้าเราต้องการสร้าง software มาใช้งาน เราก็ต้องหาคนเข้าใจวิธีออกแบบและสร้างสิ่งเหล่านี้ได้

metrix

เมื่อเข้าใจ ชีวิตจะเปลี่ยนไปตลอดกาล

ในฉากที่ Neo มองเห็นเหล่า Agent ชุดดำและ The Matrix ในรูป code วิ่งไปวิ่งมาเป็นฉากที่ Neo เข้าใจ logic ของโลก The Matrix อย่างทะลุปรุโปร่ง

เขาเห็นว่าท้ายที่สุดแล้ว software (The Matrix) ก็คือกลุ่มของ code ที่ทำงานตามที่เราสั่งได้ (หลอกมนุษย์ว่าโลกจริงๆ เป็นเช่นใน The Matrix) และหลายครั้งใน software ก็มี program (Agent Smith, Oracle, บลาๆ) — ซึ่งก็ประกอบด้วย code อีกนั่นแหละ — ที่ทำงานอยู่ภายในแม้ผู้ใช้ส่วนใหญ่จะไม่เห็นหรือไม่เข้าใจก็ตามอยู่


 Programming…สิ่งที่คุณทำอยู่ทุกวัน?

หลายคนอ่านมาถึงตรงนี้อาจจะเกิดความกลัวว่ามีศัพท์อะไรเต็มไปหมด และในชีวิตก็ไม่เคยคิดจะเป็นโปรแกรมเมอร์ แต่เชื่อหรือไม่ว่าทุกวันนี้เราก็ เขียนโปรแกรม กันอยู่แล้ว!?

ใครที่เคยใช้ Excel แล้วใส่สูตรให้ Excel ทำงาน การใส่สูตรนั้นก็เรียกได้ว่าเป็นการเขียนโปรแกรมรูปแบบหนึ่ง

Programming = กดเครื่องคิดเลข

เราอาจมองได้ด้วยซ้ำว่าการกดเครื่องคิดเลข — ซึ่งเป็นการสั่งให้คอมพิวเตอร์ทำตามที่เราต้องการ — ก็เหมือนเป็นการเขียนโปรแกรม (แบบง่ายๆ (โคตรๆ)) อยู่กลายๆ

Neo-Trinity
ปืนมา!!

ในหนังเองก็มีฉากที่ Trinity กับ Neo ขอปืนจากทีมที่อยู่นอก The Matrix นั่นก็เป็นตัวอย่างการใช้งาน software ไม่ต่างจากการกดเครื่องคิดเลข หรือการใช้ Google Maps

ถามว่าเราใช้ชีวิตอยู่บนโลกนี้ได้มั้ยถ้าใช้เครื่องคิดเลขไม่เป็น?

คำตอบคือได้…แต่จะมีบางอย่างที่คนอื่นทำง่ายแต่เราทำไม่ได้ #การเขียนโปรแกรมก็เช่นกัน


Your Choice: Red Pill or Blue Pill

red-pill-blue-pill
Red Pill or Blue Pill

“You take the blue pill, the story ends. You wake up in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland, and I show you how deep the rabbit hole goes.” — Morpheus

เลือกเม็ดสีฟ้าเพื่ออยู่กับโลกใบเก่าที่เราไม่เข้าใจเทคโนโลยี

หรือ…

เลือกเม็ดสีแดงเพื่อตื่นมาพบโลกใหม่ที่เราเข้าใจและพร้อมใช้มัน

 

Leave a Reply

Your email address will not be published. Required fields are marked *