1 คะแนน โดย GN⁺ 2024-06-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

เหตุผลที่ผมใช้เวลาถึง 15 ปีในการเรียน Haskell

การพบเจอ Haskell ครั้งแรก

  • Haskell เป็นภาษาการเขียนโปรแกรมเชิงฟังก์ชันที่นักตรรกศาสตร์ชาวสกอตแลนด์ในศตวรรษที่ 20 สร้างขึ้น
  • ผมได้รู้จัก Haskell ครั้งแรกประมาณปี 2006
  • ตอนเรียนมหาวิทยาลัย ผมเริ่มเรียน Haskell ผ่านงานวิจัยอิสระ แต่ในความเป็นจริงก็ยังเรียนรู้ได้ไม่มากนัก

Haskell ในการใช้งานจริง

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

การเรียนรู้ผ่าน Elm

  • Elm เป็นภาษาที่คล้ายกับ Haskell และช่วยให้เข้าใจแนวคิดของการเขียนโปรแกรมเชิงฟังก์ชันได้ง่ายขึ้น
  • ระหว่างการสร้างหน้าแดชบอร์ดด้วย Elm ผมได้เรียนรู้หลักการของการเขียนโปรแกรมเชิงฟังก์ชัน

กลับมาสู่ Haskell

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

การเขียนโปรแกรม Haskell ที่มีประโยชน์ตัวแรก

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

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

  • ข้อดีของการเขียนโปรแกรมเชิงฟังก์ชัน: ภาษาเชิงฟังก์ชันอย่าง Haskell เน้นความไม่เปลี่ยนแปลงและฟังก์ชันบริสุทธิ์ จึงช่วยเพิ่มความคาดเดาได้และความเสถียรของโค้ด
  • เส้นโค้งการเรียนรู้: Haskell เรียนได้ยาก แต่การค่อย ๆ เข้าถึงผ่านภาษาที่คล้ายกันอย่าง Elm อาจเป็นวิธีที่มีประสิทธิภาพ
  • การประยุกต์ใช้จริง: การใช้ Haskell ในโปรเจกต์จริงช่วยให้เข้าใจและนำหลักการของการเขียนโปรแกรมเชิงฟังก์ชันไปใช้ได้ดีขึ้น
  • การเลือกเครื่องมือ: ไลบรารี Haskell อย่าง Shake มีประโยชน์ในการสร้างระบบบิลด์ และช่วยให้สัมผัสถึงความใช้งานได้จริงของ Haskell
  • ชุมชนและแหล่งข้อมูล: หากใช้ประโยชน์จากชุมชน Haskell และสื่อการเรียนรู้ที่หลากหลาย ก็จะได้รับความช่วยเหลือมากในกระบวนการเรียนรู้

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

 
GN⁺ 2024-06-19
ความคิดเห็นจาก Hacker News
  • การเรียนรู้ functional programming มีคุณค่า และไม่ได้ใช้เวลานานถึง 15 ปี Haskell ทำให้การจำลองข้อมูลโดเมนแบบประกาศชัดเจน การทำงานด้วยฟังก์ชันบริสุทธิ์ และการโต้ตอบกับโลกจริงที่ขอบเขตของโปรแกรม เป็นเรื่องที่เป็นธรรมชาติ สำหรับผู้เริ่มต้นแนะนำ F#
  • Prolog ให้มุมมองเชิงลึกมากกว่าในการทำความเข้าใจ functional programming ใช้เวลาเพียงไม่กี่วันก็เข้าใจภาษาได้ แต่ต้องใช้เวลาในการเข้าใจผลลัพธ์ที่ได้
  • มีคำขอให้แนะนำแหล่งข้อมูลดี ๆ สำหรับการเรียน Haskell สนใจ Haskell มานานแล้ว และได้ซึมซับแนวคิด functional programming บางส่วนผ่าน side project ที่ใช้ F# แต่ยังไม่เข้าใจ monad ดีพอ
  • ลิงก์: แหล่งเรียนรู้ Haskell
  • มีความเห็นว่าอยากดู โค้ดของผู้เขียน ว่าเส้นทางการเรียนรู้ของผู้เขียนนำไปสู่อะไรบ้าง
  • ลิงก์: ดูโค้ดของผู้เขียน
  • มีคำถามเกี่ยวกับข้อดีของการเรียน ภาษา functional programming แบบบริสุทธิ์ เมื่อเขียนโค้ดที่จัดการข้อมูลและเหตุการณ์จากโลกจริง เส้นแบ่งระหว่างโค้ดที่เหมาะสมที่สุดกับความอยากรู้อยากเห็นทางปัญญากลับเลือนราง
  • สิ่งที่ทำให้รู้สึกว่า Haskell น่าสนใจ คือวิธีที่มันทำให้การจำลองข้อมูลโดเมนแบบประกาศชัดเจน การทำงานด้วยฟังก์ชันบริสุทธิ์ และการโต้ตอบกับโลกจริงที่ขอบเขตของโปรแกรม เป็นเรื่องธรรมชาติ นี่ไม่ใช่แค่กับ Haskell เท่านั้น แต่ยังเป็นวิธีทำงานที่ชอบในภาษาอื่นด้วย
  • ตอนที่ Haskell เป็นหัวข้อร้อนแรงเมื่อ 20 ปีก่อน ML ก็ถูกพูดถึงบ่อยเช่นกัน ทุกวันนี้ ML แทบจะหมายถึง machine learning ไปแล้ว
  • 15 ปี หรือไม่ก็ไม่มีอะไรเลย