4 คะแนน โดย GN⁺ 2024-07-19 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ในฐานะนักศึกษาวิทยาการคอมพิวเตอร์ กำลังศึกษา Prolog และการเขียนโปรแกรมเชิงตรรกะ
  • ได้เรียนรู้พื้นฐานของ vanilla Prolog (อะตอม, เพรดิเคต, cut, ลิสต์ ฯลฯ) และได้เห็นการติดตั้งใช้งานระบบสื่อสารระหว่างเอเจนต์ที่ชวนปวดหัวซึ่งทำงานบน SICStus Prolog
  • อยากรู้เพิ่มเติม เพราะคิดว่าภาษานี้เองอาจเป็นจุดแข็งได้
  • เนื่องจากสาขาที่กำลังศึกษาเป็นสาขาพื้นฐานค่อนข้างมาก จึงอยากขยายความรู้และพัฒนาความเชี่ยวชาญทั้งในโลกนี้และอีกโลกหนึ่งที่ชอบมากจริง ๆ (ontology :D)
  • สงสัยว่า Prolog ในปี 2024 มีภาพรวมเป็นอย่างไร และผู้คนกำลังใช้ Prolog ทำอะไรกันอยู่

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

 
cometkim 2024-07-19

ไม่ใช่ Prolog โดยตรง แต่ก็เห็นด้วยว่าแนวคิดเรื่อง Constraints จะยังคงมีประโยชน์ต่อไป

มันถูกนำไปใช้มากในสิ่งอย่างฐานข้อมูลด้วย และในบรรดาภาษาโปรแกรมสมัยใหม่ล้ำ ๆ ก็มีความพยายามที่จะรองรับ Datalog เป็นพลเมืองชั้นหนึ่งด้วยเช่นกัน (ตัวอย่าง: https://flix.dev/)

 
GN⁺ 2024-07-19
ความคิดเห็นจาก Hacker News
  • Prolog เป็นภาษาที่มีประวัติยาวนาน 50 ปี และสำหรับการเขียนโค้ดทั่วไปอาจมีอุปสรรคมากกว่าความมีประโยชน์

    • แม้จะมีระบบ Prolog อยู่มากมาย แต่โค้ด Prolog มีน้อย ทำให้คอมมูนิตี้แตกกระจาย
    • การเรียนรู้ Prolog ใกล้เคียงกับคำถามว่า "จะทำอย่างไรไม่ให้สะดุดล้มใน Prolog?" มากกว่า "จะทำสิ่งนี้ใน Prolog ได้อย่างไร?"
    • มีคนที่ทุ่มเทและนักอุดมคติบางส่วนกำลังถกเถียงถึงศักยภาพของ Prolog
    • Prolog มีแง่มุมที่น่าสนใจและสนุก แต่ก็อาจมีความเสี่ยงได้
  • Scryer Prolog เป็น Prolog แบบโอเพนซอร์สที่เข้ากันได้กับ ISO และมีประสิทธิภาพสูง ซึ่งสร้างหมุดหมายใหม่

  • Prolog และการเขียนโปรแกรมแบบ Contraint เป็นเครื่องมือที่มีประโยชน์

    • Prolog มีปัญหาบางประการ
      • ไม่มีระบบโมดูลหรือแพ็กเกจที่ทันสมัย
      • ในโค้ดเบสขนาดใหญ่ โครงสร้างที่ไม่เป็นตรรกะหลีกเลี่ยงได้ยาก ทำให้โค้ดซับซ้อน
      • ไม่มี type แบบ static และ strong จึงเขียนโค้ดที่แข็งแรงทนทานได้ยาก
    • Prolog เป็นภาษาที่น่าทึ่ง และอาจมีที่ทางในอนาคตของการเขียนโปรแกรม
  • ในทางทฤษฎี Prolog คือภาษาที่ดีที่สุด

    • มันมีคุณลักษณะของทั้งรูปแบบเชิงตรรกะ ภาษาเพื่อการคำนวณ และภาษาเมตาโปรแกรมมิง
    • ในทางปฏิบัติ มีทั้ง implementation ที่มีประสิทธิภาพสูงและคอมมูนิตี้ขนาดเล็ก
    • คุณทำอะไรได้มากมายด้วย Prolog แต่บ่อยครั้งก็ไม่ชัดเจนว่าควรทำอย่างไร
  • เป็นเรื่องดีที่มีคนหน้าใหม่เริ่มสนใจ Prolog

    • กำลังพัฒนาไลบรารีเพื่อให้ใช้งาน Trealla Prolog บน Wasm ได้ง่าย
    • ลิงก์: TypeScript Library, Go Library
    • ทั้ง Scryer และ Trealla ต่างตั้งเป้าความเข้ากันได้กับ ISO
  • Prolog เป็นภาษาที่ต้องการวิธีคิดแบบใหม่

    • กระบวนทัศน์เชิงประกาศนั้นดี แต่ไม่ได้มีข้อได้เปรียบมากนักเมื่อเทียบกับภาษาอื่น
    • มีพลังในการแสดงออกสูงสำหรับปัญหาที่สามารถใช้ CLPFD ได้
    • การใช้ LLM เพื่อสร้างข้อเท็จจริง/ฐานข้อมูลของ Prolog เป็นเรื่องที่สนุก
  • "เวทมนตร์" ของ Prolog ตั้งอยู่บนแนวคิดเรื่องการทำให้เป็นเอกภาพและการย้อนกลับเพื่อค้นหา

    • ในฐานะภาษาเชิงประกาศ มันช่วยให้แสดงปัญหาย้อนกลับได้อย่างเรียบง่าย แต่ไม่ได้ให้คำตอบสำเร็จรูป
    • หากเอนจินตัวแก้ปัญหาได้รับการปรับปรุง การใช้งานภาษาโปรแกรมเชิงข้อจำกัดแบบประกาศอย่าง Prolog ก็น่าจะเพิ่มขึ้น
  • แทบไม่รู้อะไรเกี่ยวกับ Prolog เลย แต่ชอบบทสอน Datalog

  • อัลกอริทึมการค้นหาของการเขียนโปรแกรมเชิงตรรกะนั้นช้า

    • Prolog ทำได้ทุกอย่าง แต่ไม่ได้ทำทุกอย่างได้ดี
    • Prolog เหมาะกับงานเฉพาะบางประเภท เช่น การดูแลฐานข้อมูล