จำเป็นที่จะต้องเรียนรู้การขยายภาษา haskell สำหรับการผลิต


10

ภาษาหลักของ Haskell นั้นเรียบง่ายมาก มาจากพื้นหลังของ OO ปัญหาหลักคือการปรับให้เข้ากับกระบวนทัศน์การทำงานที่บริสุทธิ์

ในขณะที่เรียนรู้ Haskell "พื้นฐาน" ฉันมักจะพิจารณาการขยายภาษาเป็นของเล่นสำหรับคน CS หรือเป็นการทดลองสำหรับภาษาในอนาคต (เช่นfrom future import ???ในภาษาไพ ธ อน)

อย่างไรก็ตามเมื่อฉันเริ่มดูเว็บเฟรมเวิร์กเช่น Yesod ฉันพบว่าซอร์สไฟล์จำนวนมากต้องการระหว่างนามสกุล 3 และ 4 บางตัวดูค่อนข้างง่าย (StringOverload) อื่น ๆ ที่น่ากลัวจริงๆ (GADT, ประเภท Famillies, เทมเพลต Haskell) เอกสารประกอบของพวกเขาเชื่อมโยงกับงานวิจัยซึ่งน่ากลัวสำหรับใครบางคนที่คาดหวังว่าจะได้เรียนรู้ "เพียงแค่" ห้องสมุดใหม่

จำเป็นหรือไม่ที่จะต้องเรียนรู้การขยายภาษา GHC ให้มีประสิทธิภาพใน Haskell หากคุณต้องจ้างนักพัฒนา Haskell เพื่อขอใบสมัครผลิตคุณจะขอความรู้เช่นนั้นหรือไม่?


ดูเพิ่มเติมที่: stackoverflow.com/a/10849782/894284

คำตอบ:


7

จำเป็นหรือไม่ที่จะต้องเรียนรู้การขยายภาษา GHC ให้มีประสิทธิภาพใน Haskell

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

หากคุณต้องจ้างนักพัฒนา Haskell เพื่อขอใบสมัครผลิตคุณจะขอความรู้เช่นนี้หรือไม่?

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

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


ฉันกำลังจะไปประท้วง แต่แล้วฉันก็เห็นว่าโลกแห่งความจริง Haskell สอนภาษามากมาย ขอบคุณสำหรับคำตอบ.
Simon Bergot

2
"และนั่นเป็นความจริงสำหรับภาษา / เครื่องมือใด ๆ " - นั่นเป็นเรื่องที่ผิด สมมติว่าใช้ภาษาเช่น Java, C #, C ++ - ไม่มีภาษาใดที่มีนามสกุลภาษาที่พบได้ทั่วไปในรหัสแอปพลิเคชันในโลกแห่งความเป็นจริง หากคุณต้องใช้ส่วนขยายภาษาทุกครั้งที่คุณจำเป็นต้องเขียนสิ่งเล็ก ๆ น้อย ๆ น้อยกว่า "การแก้ปัญหาการประกวดออนไลน์" ในความคิดของฉันมีบางอย่างผิดปกติกับข้อกำหนดภาษา
Malcolm

@ Malcolm ทำไมคุณถึงพบว่า "หากคุณต้องใช้ส่วนขยายภาษาทุกครั้งที่คุณต้องเขียนอะไรที่น้อยกว่า" การแก้ปัญหาการประกวดออนไลน์ "ในความคิดของฉันมันมีบางอย่างผิดปกติกับข้อมูลจำเพาะของภาษา" เป็นจริงหรือไม่ คุณสมบัติของส่วนขยายที่ทำให้เป็นลบคืออะไร ฉันใช้ ghc และส่วนขยายที่ให้ไว้ การเพิ่มส่วนขยายไปยังโครงการที่มีอยู่ดูเหมือนจะเป็นภาระเท่าการเพิ่มห้องสมุดอื่น
Davorak

2
@Davorak เพราะแทนที่จะเป็นภาษาเดียวเรามี zillion ของชุดค่าผสมส่วนขยายที่แตกต่างกันและคุณไม่รู้อะไรเลยว่ารหัสกำลังจะคอมไพล์ในคอมไพเลอร์บางตัวหรือไม่ ส่วนขยายทำให้รหัสไม่ใช่พกพา และสิ่งนี้ทำให้ภาษาเจ็บปวดในการเรียนรู้เพราะแทนที่จะเป็นฟีเจอร์ชุดเดียวที่ทุกคนใช้มีฟีเจอร์เพิ่มเติมจำนวนมหาศาลและคุณยังไม่ได้รู้เบาะแสที่คุณต้องรู้และใช้และมีอยู่แค่ไหน เพราะนักวิจัยกำลังสนุก
Malcolm

2
@Davorak นั่นคือปัญหาที่ฉันกำลังพูดถึง: ทุกคนใช้ GHC เพราะนี่เป็นคอมไพเลอร์เดียวที่ยังคงรักษาไว้ คอมไพเลอร์อื่น ๆ ไม่สามารถติดตามได้ดังนั้นจึงไม่มีใครสามารถใช้มันได้และมีเหตุผลเล็กน้อยที่จะลงทุนในมัน สำหรับไลบรารี: คุณเลือกไลบรารีสำหรับปัญหาและทำงานกับไลบรารีได้เท่านั้น ถ้าคุณต้องการอ่าน XML คุณต้องมีไลบรารีการอ่าน XML เพียงไลบรารีเดียว อย่างไรก็ตามส่วนขยายนั้นไม่ชัดเจนเมื่อคุณต้องการ แม้ว่าจะมีปัญหากับห้องสมุดด้วย สมมติว่าใน Java มีเพียงอาร์เรย์และคอลเลกชันเท่านั้นและใน Haskell จะมีโหลดอาร์เรย์ไลบรารีมากมาย
Malcolm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.