3 คะแนน โดย GN⁺ 2023-11-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การรองรับระบบปฏิบัติการที่หลากหลายของ cURL และ libcurl

  • ใน pull request ล่าสุดของ cURL ได้ระบุไว้ชัดเจนว่าการเปลี่ยนแปลงที่ผู้ร่วมพัฒนาเสนอจะต้องไม่ขัดขวางการทดสอบบนแพลตฟอร์มแบบเลกาซี
  • ปัจจุบัน cURL ยังรองรับชนิด time_t แบบ 32 บิต และย้ำว่าต้องคงความสามารถนี้ไว้
  • ความใส่ใจต่อระบบแบบเลกาซีมีขึ้นเพื่อรักษาคำมั่นสัญญาและหลีกเลี่ยงการพังเสียหายโดยไม่จำเป็น

ส่วนหนึ่งของความเสถียรและคำมั่นสัญญา

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

จำนวนผู้ใช้ไม่ใช่ประเด็นสำคัญ

  • จำนวนผู้ใช้ของแพลตฟอร์มใดแพลตฟอร์มหนึ่งไม่ใช่แรงจูงใจในการรองรับแพลตฟอร์มนั้น
  • สิ่งสำคัญคือมีคนลงมือทำและทำให้งานนั้นเสร็จ
  • หากผู้ร่วมพัฒนายังคงช่วยให้มั่นใจว่า cURL ทำงานได้บนแพลตฟอร์มใดแพลตฟอร์มหนึ่งต่อไป แม้ผู้ใช้จะมีน้อย cURL ก็จะยังคงทำงานบนแพลตฟอร์มนั้นได้

เหตุผลที่ cURL อยู่ทุกหนแห่ง

  • เหตุผลที่ cURL ทำงานได้บนระบบปฏิบัติการและสถาปัตยกรรม CPU ที่หลากหลาย และถูกติดตั้งอยู่ในอุปกรณ์จำนวนมาก ก็เพราะมีการมุ่งเน้นอย่างหนักให้มันสามารถบิลด์และทำงานได้ทุกที่
  • ผู้ใช้และบริษัทจำนวนมากยังคงยึดติดกับแพลตฟอร์มโบราณ เฉพาะทาง และแบบเลกาซี และมองว่าการพึ่งพา cURL นั้นดีกว่าทางเลือกอื่นมากในแง่ความปลอดภัย

เรายังคงเลิกใช้บางสเปก

  • cURL ยังคงยุติการรองรับไลบรารีของบุคคลที่สามบางตัวเป็นครั้งคราว และมีการเปลี่ยนแปลงในด้านอื่น ๆ ด้วย
  • การเลิกใช้สเปกจะทำอย่างค่อยเป็นค่อยไปและระมัดระวัง พร้อมสื่อสารอย่างเปิดเผยเพื่อให้ทุกคนมีเวลาเตรียมตัวหรือคัดค้านได้
  • หากผู้ใช้ไม่สามารถสังเกตได้ว่าพฤติกรรมมีการเปลี่ยนแปลง ก็ถือว่าในทางปฏิบัติแล้วมันยังไม่เปลี่ยน

การเปลี่ยนแปลงของโลก

  • โปรโตคอลอินเทอร์เน็ตและเวอร์ชันต่าง ๆ เปลี่ยนแปลงไปตามกาลเวลา
  • คำสั่ง cURL ส่วนใหญ่ที่เขียนไว้ในปี 2002 จะล้มเหลว เพราะชื่อโฮสต์และ URL จำนวนมากไม่สามารถใช้งานได้อีกต่อไป
  • เหตุผลหลักที่คำสั่ง cURL ที่เขียนไว้ในปี 2002 ไม่สามารถทำงานได้เหมือนเดิมทุกประการในปัจจุบัน คือการเปลี่ยนผ่านจาก HTTP ไปสู่ HTTPS

ความเห็นของ GN⁺

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

1 ความคิดเห็น

 
GN⁺ 2023-11-17
ความคิดเห็นจาก Hacker News
  • คำชื่นชมต่อความสำเร็จของ Curl

    • Curl เป็นเครื่องมือที่สำคัญอย่างยิ่งสำหรับนักพัฒนาที่มีเป้าหมายจะคงการทำงานให้รองรับระบบปฏิบัติการจำนวนมาก
    • มีการเน้นย้ำเรื่องความเข้ากันได้ของ time_t แบบ 32 บิต แต่เมื่อปัญหาปี 2038 กำลังใกล้เข้ามา ก็มีการตั้งคำถามถึงคุณค่าของการจัดการเวลาแบบ 32 บิต
  • การตระหนักของนักพัฒนาต่อภาระที่มาพร้อมกับการพึ่งพา

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

    • ผู้ใช้และบริษัทจำนวนมากยังคงยึดติดกับแพลตฟอร์มเก่า และอยู่ในสถานการณ์ที่ไม่สามารถเปลี่ยนได้
    • นักพัฒนาซอฟต์แวร์บางส่วนมอบซอฟต์แวร์ที่เหมาะกับวัตถุประสงค์พร้อมการรับประกันที่ชัดเจน ซึ่งมีต้นทุนสูงและดำเนินไปอย่างช้า
  • ข้อสงสัยเกี่ยวกับการรองรับ Curl บนระบบปฏิบัติการเก่า

    • มีการตั้งคำถามว่าปัจจุบันยังสามารถบิลด์ได้จริงหรือไม่บนระบบที่ไม่ได้รับการอัปเดตมานานกว่า 25 ปี
    • แม้จะพยายามไม่ให้ support matrix พัง แต่ก็ยากที่จะยืนยันได้ว่ามันใช้งานได้จริง
  • ใบอนุญาตแบบผ่อนปรนซึ่งเป็นหนึ่งในปัจจัยความนิยมของ Curl

    • ใบอนุญาตของ Curl คล้ายกับ MIT แต่แตกต่างกันเล็กน้อย
    • มีการขอคำอธิบายสั้น ๆ เกี่ยวกับความแตกต่างหลัก
  • ความหลากหลายของเวอร์ชัน Linux ที่น่าประหลาดใจ

    • มี Linux มากกว่า 100 เวอร์ชัน และก็ยังเป็นเช่นนั้นแม้จะนับว่าเป็นระบบปฏิบัติการเดียวกัน
  • ข้อสงสัยเกี่ยวกับการแยกระบบปฏิบัติการที่คล้ายกัน

    • FreeDOS, DR-DOS และ MS-DOS ถูกจัดเป็นคนละระบบปฏิบัติการ แต่ในความเป็นจริงมีความเข้ากันได้ในระดับ ABI
  • กระแสเรียกร้องให้เขียน Curl ใหม่ด้วย Rust และข้อสงสัยเกี่ยวกับความเป็นไปได้ของ target ใน Rust

    • มีการตั้งคำถามว่า Rust สามารถ target สถาปัตยกรรมและระบบปฏิบัติการทั้งหมดที่ Curl รองรับได้หรือไม่
  • ข้อเสนอแนะให้อ่านเรื่องที่เกี่ยวกับจุดกำเนิดและประวัติของ Curl

    • มีการแชร์ลิงก์บล็อกเกี่ยวกับประวัติ 25 ปีของ Curl
  • การพูดถึงเชิงขำขันเกี่ยวกับการรองรับและการอัปเดตอย่างกว้างขวางของ Curl

    • มีมุกว่ากำลังรัน Curl บน ENIAC และทุกครั้งที่อัปเดตจะใช้เวลานานมาก