ดาวน์โหลดโปรแกรมฟรี
       
   สมัครสมาชิก   เข้าสู่ระบบ
THAIWARE.COM | ทิปส์ไอที
 

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
ภาพจาก : https://www.freepik.com/free-vector/isometric-university-background_4482527.htm
เมื่อ :
|  ผู้เข้าชม : 2,331
เขียนโดย :
0 Library+%E0%B9%83%E0%B8%99%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%A0%E0%B8%97+%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%94%E0%B8%B5-%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B9%80%E0%B8%AA%E0%B8%B5%E0%B8%A2+%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%99
A- A+
แชร์หน้าเว็บนี้ :

Library (Computing) คืออะไร ?

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

บทความเกี่ยวกับ Programming อื่นๆ

โดยในทางวิทยาการคอมพิวเตอร์ หรือวิทยาศาสตร์คอมพิวเตอร์นั้น Library เป็นสิ่งที่มีความสำคัญต่อการพัฒนาโปรแกรมเป็นอย่างมาก มีประโยชน์หลากหลายด้าน การพัฒนาโปรแกรมในปัจจุบันนี้ มีการนำ Library มาใช้อย่างแพร่หลาย

ในบทความนี้ เราก็เลยอยากจะมาแนะนำว่า Library (Computing) คืออะไร ?

เนื้อหาภายในบทความ

Library ในทางคอมพิวเตอร์ คืออะไร ? (What is a Library in Computing ?)

สำหรับวิทยาการคอมพิวเตอร์แล้ว Library เป็นทรัพยากรแบบ "Read-Only (อ่านได้อย่างเดียว)" ที่ถูกนำมาใช้ในระหว่างขั้นตอนพัฒนาซอฟต์แวร์ที่จะนำไปใช้บนคอมพิวเตอร์

ในอดีต Library จะประกอบไปด้วย Subroutine (หรือที่ปัจจุบันนี้เรียกว่า "ฟังก์ชัน - Function) แต่ในปัจจุบันนี้ได้เพิ่มพวก โค้ดที่สามารถเปิดใช้งานได้โดยตรง (Executable Code) ที่รวมไปถึงคลาส (Class) และ ข้อมูลที่ไม่สามารถเปิดใช้งานได้โดยตรง (Non-Executable Data) อย่างรูปภาพ (Image) และข้อความ (Text) ด้วย นอกจากนี้ ยังอาจหมายความถึงคอลเลคชันของ Source Code ก็ได้

ภายใน Library จะมีโค้ดที่ถูกเขียนเตรียมเอาไว้แล้ว นักพัฒนาสามารถเลือกใช้ฟังก์ชันที่มีใน Library แทนที่จะต้องเขียนฟังก์ชันดังกล่าวขึ้นมาใหม่ด้วยตนเองให้เสียเวลา และอาจเกิดข้อผิดพลาดด้วย

Library มีประโยชน์ต่อการพัฒนาซอฟต์แวร์เป็นอย่างมาก  อย่างเช่น หากคุณต้องการใส่ "ระบบส่งอีเมล" ไว้ในซอฟต์แวร์ที่คุณกำลังพัฒนาอยู่ แทนที่คุณจะต้องเขียนโค้ดการทำงานด้วยตนเองทั้งหมด ก็สามารถนำ "ระบบส่งอีเมล" ที่มีอยู่ใน Library มาใช้งานได้เลย

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
ภาพจาก : https://www.iue.tuwien.ac.at/phd/weinbub/dissertationse12.html

ประเภทของ Library ในทางคอมพิวเตอร์ (Types of Library in Computing)

Library ถูกแบ่งออกเป็น 2 หมวดหมู่ คือแบบ Dynamic และแบบ Static

Dynamic Library

Dynamic Library จะถูกโหลดขึ้นมาในขั้นตอนซอฟต์แวร์กำลัง "Runtime" (ช่วงเวลาที่โปรแกรมทำงาน (หรือกำลังประมวลผล) ไม่ได้เชื่อมโยงกับซอฟต์แวร์ในช่วงที่กำลังอยู่ในสถานะ "Compile Time" (ช่วงเวลาที่เครื่องใช้ในการแปลโปรแกรมแต่ละโปรแกรมก่อนที่จะลงมือทำตามคำสั่งในโปรแกรมนั้น) ช่วยให้ตัวซอฟต์แวร์สามารถเรียกใช้งาน Library ได้โดยตรง ไม่ต้องทำการ "Recompile" ใหม่

Dynamic Library นิยมใช้พัฒนาคุณสมบัติต่าง ๆ ที่อยู่บนแพลตฟอร์ม เพื่อให้ซอฟต์แวร์ต่าง ๆ สามารถแบ่งปันการใช้งาน Library เดียวกัน ร่วมกันได้โดยไม่ต้องทำซ้ำในหน่วยความจำ

Static Library

Static Library จะ Complied เข้าไปใน Executable Code ของตัวซอฟต์แวร์ ทำให้ตัวมันทำงานอยู่ภายในซอฟต์แวร์ได้อย่างสมบูรณ์ และไม่ได้รับผลกระทบความเปลี่ยนแปลงที่เกิดขึ้นจากภายนอก Static Library จะเชื่อมต่อการทำงานร่วมกับซอฟต์แวร์ในขั้นตอน "Compile Time" ข้อดีของการทำแบบนี้คือ ช่วยเพิ่มประสิทธิภาพของซอฟต์แวร์ เนื่องจากลดภาระการโหลด Library ในขณะที่กำลัง "Runtime"

เราสามารถสร้าง Library ด้วยภาษาโปรแกรมมิ่ง (Programming Languages) ได้แทบทุกภาษา และสามารถนำไปใช้กับซอฟต์แวร์ที่เขียนขึ้นมาด้วยภาษาเดียวกัน หรือคนละภาษาก็ได้ ตัวอย่างเช่น Library ด้วยภาษา "C++" แต่นำไปใช้กับซอฟต์แวร์ที่เขียนด้วยภาษา Python ได้

ถึงแม้ Library จะถูกแบ่งออกเป็น 2 หมวดหมู่ แต่ Library สามารถแบ่งได้ออกเป็นหลายประเภท ดังต่อไปนี้

Standard Library

นี่เป็น Library ที่มีบันทึกภาษาโปรแกรมมิ่งเก็บไว้เป็นค่าเริ่มต้น เตรียมฟังก์ชัน และยูทิลิตี้ขั้นพื้นฐาน ที่จำเป็นสำหรับซอฟต์แวร์ส่วนใหญ่ ยกตัวอย่างเช่น C Standard Library จะมีฟังก์ชันสำหรับ Input/Output, String Manipulation, Memory Allocation, Mathematical Operation ฯลฯ

Third-Party Library

สำหรับ Library ประเภท บุคคลที่สาม (3rd-Party) นี้ ถูกพัฒนาขึ้นมาโดยองค์กร หรือนักพัฒนาอิสระ แตกต่างจาก Standard Library ที่มักจะพัฒนาขึ้นมาโดยผู้สร้างภาษาโปรแกรมมิ่งนั้น ๆ ภายใน Third-Party Library จะรวบรวมฟังก์ชันเพิ่มเติม ที่ไม่มีอยู่ใน Standard Library และอาจเผยแพร่ในรูปแบบของ เปิดเผยซอร์สโค้ด (Open-Source) หรือเชิงพาณิชย์ก็ได้

ข้อดี และข้อเสีย ในการใช้ Library

ข้อดี

  • Reusability : Programming Library ช่วยให้คุณนำโค้ดเก่าที่ผ่านการขัดเกลา และทดสอบมาแล้ว กลับมาใช้ใหม่อีกครั้ง ประหยัดเวลา และแรงงานไม่ต้องเสียเวลาเขียนโค้ดใหม่
  • Quality : Programming Library ผ่านการทดสอบ และแก้ ข้อผิดพลาด (Bug) มาแล้ว สามารถนำไปใช้งานได้อย่างมั่นใจ
  • Maintainability : บำรุงรักษาง่าย เพราะ Libray Code จะแยกส่วนการทำงานออกจากโค้ดของคุณ การอัปเดตจึงไม่ส่งผลกระทบต่อโค้ดหลัก
  • Community Support : มี Library หลายตัวที่มีฐานผู้ใช้ขนาดใหญ่ ทำให้การหาข้อมูลเวลาที่ประสบปัญหาทำได้ง่าย
  • Standardization : Library ช่วยให้โค้ดของคุณมีมาตรฐาน และง่ายต่อการทำความเข้าต่อนักพัฒนารายอื่น ๆ
  • Developer Time : ลดต้นทุน และเวลาในการพัฒนาซอฟต์แวร์ เพราะไม่ต้องเขียนโค้ดเองทุกฟังก์ชัน

ข้อสังเกต

  • Dependencies : เวลาที่ Library มีการอัปเดต หรือหยุดสนับสนุน อาจทำให้โค้ดของคุณเกิดปัญหาได้ ซึ่งเป็นปัญหาที่มักเกิดขึ้นกับ Dynamic Library
  • Bloat : Library มีขนาดใหญ่ และซับซ้อน อาจมีบางส่วนที่ไม่จำเป็นต้องใช้อยู่ในนั้น ซึ่งมันอาจส่งผลต่อประสิทธิภาพในการทำงานของซอฟต์แวร์ได้
  • Compatibility : ไม่ใช่ Library ทุกตัวที่สามารถรองรับได้ทุกภาษาโปรแกรมมิ่ง ทำให้คุณอาจต้องปวดหัวในการเลือกใช้ Library หรือหาทางในการประสานงานพวกมัน
  • Lack Of Control : การพึ่งพาฟังก์ชันจาก Library สะดวกก็จริง แต่คุณก็ปรับแต่งอะไรได้น้อย เมื่อเทียบกับการสร้างฟังก์ชันเอง
  • Learning Curve : การใช้ Programming Library ภาษาใหม่ที่ไม่คุ้นเคย อาจต้องใช้เวลาในการเรียนรู้ ทำความเข้าใจมัน
  • Wrapper : เป็นสิ่งที่ต้องใช้ เมื่อต้องการใช้ Library ในสภาพแวดล้อมที่มันไม่รองรับ ซึ่งส่งผลให้ซอฟต์แวร์ทำงานช้าลง

 

ประวัติของ Library ในทางคอมพิวเตอร์ (History of Library in Computing)

แนวคิดของ Computer Library สามารถย้อนกลับไปได้ในเครื่อง Analytical Engine ที่สร้างโดย Charles Babbage มันเป็นเครื่องจักรตัวแรกของโลกที่สามารถคำนวณลอจิกทางคณิตศาสตร์, ควบคุมแนวทางในการค้นหาผลลัพธ์ได้หลายรูปแบบ และมีหน่วยความจำที่สามารถบันทึกเก็บไว้ได้ในรูปแบบ บัตรตอก (Punch Card) ซึ่งแนวคิดดังกล่าวได้กลายเป็นรากฐานในการพัฒนาคอมพิวเตอร์เมื่อโลกเริ่มเข้าสู่ยุคดิจิทัล

สูตรการคำนวณที่ถูกบันทึกไว้ใน Punch Card เพื่อนำกลับมาใช้ใหม่ได้อีกครั้ง ในทางเทคนิคแล้วก็คือ Library นั่นเอง

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
Analytical engine ค.ศ. 1837 (พ.ศ. 2380) โดย Charles Babbage 
ภาพจาก : https://en.wikipedia.org/wiki/Analytical_engine

ในปี ค.ศ. 1947 (พ.ศ. 2490)  Herman Goldstine และ John von Neumann นักฟิสิกส์ และนักวิทยาศาสตร์ ที่กำลังพัฒนาเครื่อง IAS Machine เครื่องคอมพิวเตอร์แบบอิเล็กทรอนิกส์เครื่องแรกของโลก ที่ถูกสร้างขึ้นในสถาบันวิจัย Institute for Advanced Study (IAS) ถึงในช่วงเวลานั้น ตัวเครื่องยังไม่ถูกนำมาใช้งานจริง แต่พวกเข้าก็วางแผนเอาไว้ล่วงหน้าแล้วว่า มันจะต้องมีระบบ Library ในรูปแบบเทปแม่เหล็ก เทปแต่ละม้วนจะบันทึกคอมพิวเตอร์โค้ดสำหรับสั่งงานพื้นฐานต่าง ๆ เอาไว้

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
IAS Machine
ภาพจาก : https://en.wikipedia.org/wiki/IAS_machine

ในช่วงเวลาเดียวกัน ค.ศ. 1947 (พ.ศ. 2490) Maurice Wilkes และทีมของเขา ได้แรงบันดาลใจจากแนวคิดของ John von Neumann นำมาสร้างเป็น Electronic Delay Storage Automatic Calculator (EDSAC) มันเป็นเครื่องเก็บ Punch Tape (สื่อเก็บข้อมูลที่ใช้ในยุคนั้น) ที่บันทึกโค้ดคำสั่งประเภท Subroutine เอาไว้จำนวนมาก ต่อมาในปี ค.ศ. 1951 (พ.ศ. 2494) ทางทีมก็ได้เผยแพร่หนังสือวิธีการเตรียมโค้ดเพื่อใช้ในคอมพิวเตอร์แบบดิจิทัล ซึ่งในรายละเอียดก็มีทั้งการสร้าง และวัตถุประสงค์ของการใช้ Library

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
ภาพจาก : https://en.wikipedia.org/wiki/EDSAC

ในปี ค.ศ. 1959 (พ.ศ. 2502) ภาษา Common Business-Oriented Language (COBOL) ถูกพัฒนาขึ้นมา และมันก็มีระบบอำนวยความสะดวกในการใช้งานที่เปรียบเสมือนระบบ Library อยู่ในตัว แต่ว่า Jean Sammet หนึ่งในผู้สร้างภาษา COBOL กลับให้ความเห็นว่า ระบบที่มีใน COBOL ยังไม่ดีพอสำหรับการเป็น Library

JOVIAL เป็น High-Level Programming Language ที่พัฒนาขึ้นมาในปี ค.ศ. 1960 (พ.ศ. 2503) โดยมีรากฐานมาจากภาษา ALGOL 58 มันถูกสร้างมาเพื่อใช้กับระบบ Embeddes Systems โดยเฉพาะ แต่จุดเด่นอยู่ที่คุณสมบัติ Communication Pool (COMPOOL) ที่ทำหน้าที่เป็น Library สำหรับ Header Files

อีกหนึ่งสิ่งที่มีบทบาทสำคัญต่อการพัฒนาระบบ Library ที่เราใช้งานกันอยู่ในปัจจุบันนี้มาจากระบบ Subprograms ของภาษา FORTRAN ที่สามารถ Complied แยกส่วนกันอย่างอิสระ อย่างไรก็ตาม พวกมันยังขาดความสามารถในการเชื่อมโยงกัน ซึ่งภายหลังปัญหานี้ได้ถูกแก้ใน Fortran-90

ในช่วงกลางยุค 60 ระบบ Macro Library เป็นที่แพร่หลายอย่างมาก โดยเริ่มต้นจากเครื่อง IBM System/360 ภายในนั้นก็จะบรรจุชุดคำสั่งประเภท Text elements เอาไว้เพื่ออำนวยความสะดวกในการใช้งาน

Library ในทางวิทยาการคอมพิวเตอร์ คืออะไร ? รู้จักประเภท ข้อดี-ข้อเสีย ของการใช้มันกัน
ภาพจาก : https://en.wikipedia.org/wiki/IBM_System/360

ภาษาแรกที่รองรับการเขียนโปรแกรมเชิงวัตถุ หรือ Object-Oriented Programming Language คือภาษา Simula ที่ถูกพัฒนาขึ้นมาในปี ค.ศ. 1965 (พ.ศ. 2508) มันรองรับการเพิ่ม Classes เข้าไปใน Library ผ่านการ Complier

ตัวอย่าง Library ในทางคอมพิวเตอร์ ที่ได้รับความนิยม (Examples of famous Library in Computing)

มาดูตัวอย่าง Library ที่คุณมักพบเจอเวลาที่เขียน Python, JavaScript ฯลฯ กัน

NumPy

ภาษาหลัก : Python

NumPy เป็น Library ที่นิยมใช้ในการสร้าง Arrays ที่มีความซับซ้อนสูง อย่างในการพัฒนา Machine Learning ตัว Numpy จะช่วยให้การแบ่ง และจัดระเบียบข้อมูลเป็นเรื่องง่าย

Matplotlib

ภาษาหลัก : Python

นี่เป็น Library ที่ทำงานร่วมกับ NumPy เพื่อช่วยในการจัดการฐานข้อมูลขนาดใหญ่ มีระบบกราฟิกช่วยในการแสดงแผนภูมิข้อมูลที่ง่ายต่อการเข้าใจ

TensorFlow

ภาษาหลัก : Python หรือ C++

TensorFlow เป็น Library ที่พัฒนาขึ้นมาโดย Google เพื่อช่วยอำนวยความสะดวกในการสร้าง และฝึกฝนโมเดล Machine Learning และ Neural Networks

Keras

ภาษาหลัก : Python

Keras ก็เป็น Library ที่สร้างขึ้นมาเพื่อใช้ในการสร้าง และฝึกฝนระบบ Machine Learning หรือ Neural Network เช่นกัน ทำงานโดยมี TensorFlow อยู่เบื้องหลัง แต่ว่าปรับการใช้งานให้ง่ายขึ้น

Pillow

ภาษาหลัก :  Python

ใช้ใน Python โดยคุณสมบัติหลักของ Pillow Libray คือ การสร้างภาพแบบ Bitmap นั่นเอง

SFML

ภาษาหลัก :  C++

SFML ย่อมาจาก Simple And Fast Multimedia Library เป็น Library ที่ช่วยในการสร้างรูปภาพ, เสียงเอฟเฟค หรือแม้กระทั่งการเชื่อมต่อระหว่างคอมพิวเตอร์

p5

ภาษาหลัก : JavaScript

p5.js เป็นหนึ่งใน Library ที่เป็นที่รู้จักมากที่สุดของ JavaScript Library มีโค้ด Buil-in ถูกเก็บเอาไว้เป็นจำนวนมาก


ที่มา : en.wikipedia.org , www.red-gate.com , www.idtech.com , www.heavy.ai , wiki.edunitas.com , en.wikipedia.org , en.wikipedia.org

0 Library+%E0%B9%83%E0%B8%99%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%A0%E0%B8%97+%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%94%E0%B8%B5-%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B9%80%E0%B8%AA%E0%B8%B5%E0%B8%A2+%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%99
แชร์หน้าเว็บนี้ :
Keyword คำสำคัญ »
เขียนโดย
ระดับผู้ใช้ : Admin    Thaiware
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ
 
 
 

ทิปส์ไอทีที่เกี่ยวข้อง

 


 

แสดงความคิดเห็น