ภาษาอ็อบเจกทีฟ-ซี (อังกฤษ: Objective-C
หรือ ObjC) เป็นภาษาโปรแกรมเชิงวัตถุและมีสมบัติการสะท้อน
โดยแรกเริ่ม ภาษาอ็อบเจกทีฟ-ซี
พัฒนาขึ้นจากภาษาซีโดยยังคงคุณลักษณะของภาษาซีไว้ครบทุกประการเพียงแต่เพิ่มระบบส่งข้อความ
(messaging) แบบเดียวกับภาษาสมอลล์ทอล์กเข้าไปเท่านั้น (Objective-C
runtime) ปัจจุบันภาษาอ็อบเจกทีฟ-ซีมีคุณสมบัติอื่นๆเพิ่มเติมจากการพัฒนาภาษาอ็อบเจกทีฟ-ซี
2.0 โดยบริษัทแอปเปิล
ปัจจุบันภาษาอ็อบเจกทีฟ-ซีถูกใช้มากใน
Cocoa (API) ใน Mac OS X, GNUstep (API) และ
Cocotron (API) เป็นต้น
ซึ่งระบบเหล่านี้ได้รับการพัฒนาขึ้นโดยมีพื้นฐานจากมาตรฐาน OpenStep (API) ใน Nextstep
(Operating system) โดยมีภาษาภาษาอ็อบเจกทีฟ-ซีเป็นภาษาหลัก
ปัจจุบัน Mac OS Xใช้ Cocoa เป็นเฟรมเวิร์กสำหรับสร้างโปรแกรมประยุกต์
โดย ไลบรารีและ/หรือ API เหล่านี้เป็นเพียงส่วนเพิ่มขยาย (Software
extension) เท่านั้น
โปรแกรมที่ใช้ภาษาอ็อบเจกทีฟ-ซีทั่วไปที่ไม่ได้ใช้ส่วนเพิ่มขยายเหล่านี้ก็ยังสามารถคอมไพล์ได้
เช่นอาจใช้แต่ gcc ซึ่งรองรับภาษาอ็อบเจกทีฟ-ซี
ในช่วงของต้นทศวรรษที่ 1980 วิศวกรรมซอฟต์แวร์นิยมออกแบบโปแกรมเป็นแบบโครงสร้าง(Structure)
เรานิยามการการออกแบบโปรแกรมแบบโครงสร้างขึ้นเพื่อแยกย่อยโปรแกรมขนาดใหญ่ออกเป็นส่วนเล็ก
ๆ เพื่อให้ง่ายต่อการจัดการเมื่อโปรแกรมมีขนาดใหญ่ขึ้น
อย่างไรก็ดีโปรแกรมแบบโครงสร้างก็จำเป็นที่จะต้องมี Procedure จำนวนมากเพื่อรองรับปัญหาที่ใหญ่ขึ้น
และทำให้การ coding มีความซับซ้อนและยุ่งเหยิง
ทางเลือกหนึ่งสำหรับการแก้ปัญหาดังกล่าวคือการเขียนโปรแกรมเชิงวัตถุ
ที่จริงแล้วภาษาสมอลล์ทอล์กเป็นภาษาแรกที่มีการสนับสนุนการเขียนโปรแกรมเชิงวัตถุ(Object
Oriented Programming) และภาษาสมอลล์ทอล์กยังได้รับการออกแบบมาเพื่อแก้ไขปัญหาที่เกิดขึ้นกับการเขียนโปรแกรมแบบโครงสร้างแต่ปัญหาใหญ่ที่เกิดขึ้นจากภาษาสมอลล์ทอล์ก
ก็คือ ความเร็วของตัวภาษาที่มีความเร็วในการประมวลคำสั่งของคอมไพลเออร์(Complier)
ต่ำและยังใช้หน่วยความจำ
จำนวนมากเนื่องด้วยคอมพิวเตอร์ในอดีตมีข้อจำกัดมากกว่าในปัจจุบันจึงทำให้ตัวภาษาสมอลล์ทอล์กไม่เป็นที่นิยมเท่าที่ควร
หลังจากนั้นในช่วงยุค
80 Brad Cox และ Tom Love ผู้ก่อตั้งบริษัท Stepstone ได้พัฒนาภาษา
อ็อบเจ๊กทีฟ-ซีขึ้นที่บริษัท โดยพวกเขาได้เรียนรู้ภาษาสมอลล์ทอล์กจาก Programming
Technology Center ของบริษัท TITT Corpotation ในปี ค.ศ. 1981 Cox ให้ความสนใจกับปัญหาการนำรหัสมาใช้ซ้ำ(Reusability)ในกระบวนการวิศวกรรมซอฟต์แวร์
เขาคิดว่าภาษาสมอลล์ทอล์กไม่เหมาะจะพัฒนา สำหรับนักพัฒนาซอฟต์แวร์ระบบที่ ITT
Cox เริ่มแก้ไข เริ่มแก้ไขคอมไพเลอร์ภาษาซี
โดยเพิ่มความสามารถด้านการจัดการเชิงวัตถุของภาษาสมอลล์ทอล์กเข้าไป
โดยเขาเรียกมันว่า "OOPC" หมายถึง Object-Oriented
Programming in C ในขณะนั้น Love ซึ่งทำงานให้กับ
Schlumberger Research ในปี 1982 ก็ได้มีโอกาสใช้งาน Smalltalk-80
ซอฟต์แวร์ซึ่งส่งอิทธิพลต่อการพัฒนาภาษาอ็อบเจกทีฟ-ซีในเวลาต่อมาในปีค.ศ. 1988
บริษัท NeXT ซึ่งตั้งขึ้นโดย Steve Jobs ได้ลิขสิทธิ์จาก
StepStone (เจ้าของเครื่องหมายการค้าภาษาอ็อบเจกทีฟ-ซีในขณะนั้น)
โดยได้พัฒนาคอมไพเลอร์ภาษาอ็อบเจกทีฟ-ซีและชุดไลบรารี
ของตัวเองโดยนำมาใช้พัฒนาระบบติดต่อผู้ใช้และระบบพัฒนาซอฟต์แวร์ชื่อ NEXTSTEP
ถึงแม้ว่าเครื่อง NeXT จะขายไม่ดี
แต่เครื่องมือพัฒนาของมันกลับได้รับความนิยมพอสมควร และในที่สุด NeXT ก็เลิกขายฮาร์ดแวร์
และหันมาขายซอฟต์แวร์แทน ภายใต้ชื่อ NeXTstep และ
OpenStep
โครงการกนู
ได้พัฒนาระบบพัฒนาซอฟต์แวร์หนึ่งตามมาตรฐาน OpenStep ในรูปแบบซอฟต์แวร์เสรี
โดย Dennis Glatting ได้พัฒนา gnu-objc runtime ตัวหนึ่งขึ้นในปี
1992 โดย Richard Stallman ได้เขียนอีกตัวขึ้นแทนในเวลาไล่เลี่ยกัน
ส่วน GNU Objective-C runtime ตัวที่ถูกใช้งานตั้งแต่ 1993 พัฒนาโดย Kresten
Krab Thorup เมื่อเขาเป็นนักเรียนมหาวิทยาลัยในเดนมาร์ค
หลังจากที่ซื้อกิจการของ
NeXT ในปี 1996 Apple ได้ใช้ OpenStep ในระบบปฏิบัติการของตนเองหรือ
Mac OS
X โดยได้รวมเอาภาษาอ็อบเจกทีฟ-ซีและระบบพัฒนาซอฟต์แวร์จาก NeXT ชื่อ Project Builder ซึ่งถูกแทนที่โดย Xcode ในเวลาต่อมา
รวมถึงระบบออกแบบระบบการติดต่อผู้ใช้แบบ object ชื่อ Interface Builder และ Apple เรียกไลบรารีซึ่ง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น