Programming Language History #1

มกราคม 29, 2007 at 9:03 am 1 ความเห็น

หลังจากที่ เมื่อวันศุกร์ไปเข้าเรียน OOP มา
และได้รับคำ…ตักเตือนมาพอสมควรเกี่ยวกับเรื่อง ประวัติศาสตร์ในวงการ

…เข้าใจและยอมรับแต่โดยดี จึงคิดว่า ศึกษาเอาไว้ก็คงจะดีเหมือนกัน

…เริ่มกันเลยดีกว่า Computer ถูกประดิษฐ์ขึ้นมา โดย ชาร์ล บาบแบจ(Charles Babbages) เมื่อปี 1822 เพื่องานคำนวณครับ
และการที่จะควบคุมให้มันคำนวณงาน มันจะต้องมีอะไรซักอย่างนึง มาสั่งมัน ซึ่งมันก็คือ
…Programming Language นั่นเอง

ในสมัยแรกๆ Programming Language ของชาร์ล คือการเปลี่ยนเฟืองกลไกครับ
ดังนั้น Programming Language ในยุคแรกๆ เป็นการสั่งงานแบบ Physic Motion
หรือเอาง่ายๆก็คือ อัตโนมือ นั่นแหละครับ
…มันคงจะคล้ายๆการดีดลูกคิดอย่างนั้นมั้งครับ ที่คิดเลขเสร็จข้อนึง พอจะเปลี่ยนข้อก็ล้างลูกคิดแล้วก็มาดีดกันใหม่

ภายหลัง ประวัติศาสตร์ก็เปลี่ยนไปอีกหน้านึง โดยจากการดีดลูกคิด
…กลายเป็นการกดเครื่องคิดเลข(ขนาดมหึมา) ENIAC ถูกสร้างขึ้น โดยรัฐบาลของอเมริกา
ก็อย่างที่บอกครับ ว่ามันเป็นเหมือนเครื่องคิดเลข ไม่ต้องเปลี่ยนเฟือง
แต่จิ้มอย่างเดียว บนแผงควบคุมที่มีปุ่มเรียงกันมากกว่าคีย์บอร์ดปัจจุบัน 5 ตัวต่อกันซะอีก
เหมือนห้องควบคุมไฟในโรงงานใหญ่ๆ ซักแห่งเลยครับ ดูรูปเอาละกัน
แต่ สิ่งที่ไม่เปลี่ยน ก็คือ ความยุ่งยากในการใช้ และ ความน่าเบื่อที่ต้องมาตั้งต้นการเขียนโปรแกรมใหม่อยู่เรื่อยๆ
บนปุ่มมากมายขนาดนั้น

แต่ก็ดีขึ้น เมื่อปี 1945 จอห์น วอน นิวแมน(John von Neuman) เป็นผู้คิด 2 คอนเซปต์การเขียนโปรแกรม
ซึ่งเป็นการเปลี่ยนพลิกโฉมหน้าการโปรแกรมมิ่งในอดีตไปเลย

คอนเซปต์แรกของนิวแมน ก็คือ”share-program technic” ซึ่งใจความมีอยู่ว่า
“ฮาร์ดแวร์ ไม่ควรจะเป็นฝ่ายควบคุมซอฟต์แวร์ ในทางกลับกัน
ซอฟต์แวร์ต่างหาก ที่ควรเป็นฝ่ายควบคุมฮาร์ดแวร์ ”
คอนเซปต์นี้ ส่งผลให้การ Reprogramming ทำได้รวดเร็วขึ้นมาก(เพราะอะไร ขอไปหาเพิ่มเติมทีหลังนะครับ)

และอีกข้อสำคัญเลย นิวแมนเรียกว่า “Condition Control Transfer” ไอเดียนี้ ทำให้เกิดความคิดเรื่อง Subroutine
หรือ ฟังก์ชั่นย่อยนั่นแหละ นิวแมนกล่าวว่า โปรแกรม “ควรจะกระโดดไปทำงานตามส่วนย่อย
และกลับมาทำงานต่อที่เดิมได้ ไม่ใช่ต้องทำงานตามสเต็ปเป๊ะๆ ”
เพราะมันไม่ยืดหยุ่นและจะต้องมีคำสั่งซ้ำซ้อนโดยไม่มีความจำเป็น
…อันนี้แค่ส่วนแรก
ส่วนที่ 2 นิวแมนบอกว่า “โปรแกรม ควรจะมีกิ่งก้านสาขาเหมือนต้นไม้ กิ่งก้านที่ว่านี่ ก็คือ
คำสั่งเงื่อนไขนั่นเอง…
ก็ if else นั่นแหละครับ และยิ่งกว่านั้น ก็ต้องมีคำสั่งทำซ้ำอย่างเช่น คำสั่ง for ด้วย
…”Condition Control Transfer”  นี่แหละครับ ที่ทำให้สิ่งสำคัญของการเขียนโปรแกรมในปัจจุบันเกิดขึ้น
มันคือ”ไลบรารี่” ครับ

หลังจากที่คอนเซปต์ของนิวแมนออกมา ในปี 1949 ภาษาโปรแกรมตัวแรกที่เกิดจากแนวคิดของนิวแมนก็เกิดขึ้น
ภาษา Short Code เป็นภาษาอุปกรณ์อิเล็กทรอนิคส์ตัวแรก ที่ต้องมีโปรแกรมเมอร์ป้อนค่า 1 และ 0 ด้วยมือ
ถึงอย่างนั้นก็เถอะ Short Code ก็ถือเป็นก้าวแรกของภาษาโปรแกรมมิ่งที่ซับซ้อนขึ้นในปัจจุบัน

หลังจากนั้นมา วงการโปรแกรมมิ่งก็ก้าวหน้าขึ้นอย่างรวดเร็วครับ ในปี 1951 เกรซ ฮอปเปอร์ (Grace Hopper)
ก็เป็นคนแรกที่สร้าง Compiler ขึ้น สามารถแปลงคำสั่งที่เป็นภาษามนุษย์ไปเป็นภาษาเครื่องได้
สบายสิครับ งานนี้ และในยุคนี้แหละครับ ที่โปรแกรมเมอร์ เลิกทำงานแบบอัตโนมือได้ซะที

เฮ้อ…เอาเท่านี้ก่อนละกันนะ เด๋วไว้ค่อยมาเขียนต่อ

Entry filed under: Uncategorized.

พี่ไทยจะมีกับเขามั่งมั้ยเนี่ย Programming Language History #2

1 ความเห็น Add your own

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


del.icio.us For iPhone dev

Post Calendar

มกราคม 2007
พฤ อา
    ก.พ. »
1234567
891011121314
15161718192021
22232425262728
293031  

%d bloggers like this: