เพราะข้อดีเหล่านั้นก็มีข้อเสียเช่นกัน
โปรแกรมไร้สัญชาติ ไม่มีผลข้างเคียง
โปรแกรมในโลกแห่งความเป็นจริงนั้นเกี่ยวกับผลข้างเคียงและการกลายพันธุ์ เมื่อผู้ใช้กดปุ่มมันเป็นเพราะพวกเขาต้องการสิ่งที่จะเกิดขึ้น เมื่อพวกเขาพิมพ์บางสิ่งพวกเขาต้องการให้รัฐนั้นเปลี่ยนสถานะที่เคยเป็น เมื่อเจนสมิ ธ ทำบัญชีแต่งงานและเปลี่ยนชื่อของเธอเป็นเจนโจนส์ฐานข้อมูลที่สนับสนุนกระบวนการทางธุรกิจที่พิมพ์การจ่ายเงินของเธอน่าจะเป็นเรื่องของการจัดการการกลายพันธุ์แบบนั้น เมื่อคุณยิงปืนกลที่มนุษย์ต่างดาวคนส่วนใหญ่ไม่ได้คิดแบบจำลองว่าเป็นการสร้างเอเลี่ยนตัวใหม่ที่มีพลังชีวิตน้อยลง พวกมันจำลองว่าเป็นการเปลี่ยนแปลงคุณสมบัติของมนุษย์ต่างดาวที่มีอยู่
เมื่อแนวคิดการเขียนโปรแกรมภาษาใช้งานได้ดีกับโดเมนที่มีการจำลองแบบมันเป็นเรื่องยากที่จะพิสูจน์ให้เห็นถึงการใช้ภาษานั้น
เห็นพ้องด้วย; เล่นได้ดีมากด้วยเทคโนโลยีมัลติคอร์ที่สูงขึ้น
ปัญหาถูกผลักไปรอบ ๆ ด้วยโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปแบบคุณจะมีความปลอดภัยของเธรดราคาถูกในราคาที่เป็นไปได้ที่จะทำงานกับข้อมูลเก่า ด้วยโครงสร้างข้อมูลที่ไม่แน่นอนคุณจะได้รับประโยชน์จากการทำงานกับข้อมูลใหม่เสมอโดยไม่จำเป็นต้องเขียนตรรกะที่ซับซ้อนเพื่อให้ข้อมูลสอดคล้องกัน มันไม่เหมือนหนึ่งในนั้นชัดกว่าอื่น ๆ
โปรแกรมมักจะสั้นกว่าและในบางกรณีก็ง่ายต่อการอ่าน
ยกเว้นในกรณีที่พวกเขาอ่านนานและยากกว่า การเรียนรู้วิธีการอ่านโปรแกรมที่เขียนในสไตล์การใช้งานนั้นเป็นทักษะที่ยาก ผู้คนดูเหมือนจะรู้สึกดีขึ้นเมื่อนึกถึงโปรแกรมในฐานะที่เป็นขั้นตอนต่าง ๆ ที่ต้องทำตามเหมือนสูตรแทนที่จะเป็นชุดการคำนวณที่ต้องดำเนินการ
ผลผลิตเพิ่มขึ้น (ตัวอย่าง: Erlang)
ผลผลิตต้องเพิ่มขึ้นมากเพื่อพิสูจน์ว่าค่าใช้จ่ายจำนวนมากของผู้ว่าจ้างโปรแกรมเมอร์ที่รู้วิธีการเขียนโปรแกรมในรูปแบบการใช้งาน
และจำไว้ว่าคุณไม่ต้องการทิ้งระบบการทำงาน โปรแกรมเมอร์ส่วนใหญ่ไม่ได้สร้างระบบใหม่ตั้งแต่เริ่มต้น แต่เป็นการบำรุงรักษาระบบที่มีอยู่ซึ่งส่วนใหญ่สร้างขึ้นในภาษาที่ไม่สามารถใช้งานได้ ลองนึกภาพพยายามที่จะพิสูจน์ให้เห็นว่าผู้ถือหุ้น เหตุใดคุณจึงทิ้งระบบบัญชีเงินเดือนที่ทำงานอยู่เพื่อสร้างระบบบัญชีใหม่ด้วยค่าใช้จ่ายหลายล้านดอลลาร์ "เพราะการเขียนโปรแกรมที่ใช้งานได้ยอดเยี่ยม" ไม่น่าจะสร้างความพึงพอใจให้กับผู้ถือหุ้น
การเขียนโปรแกรมเชิงซ้อนเป็นกระบวนทัศน์ที่เก่าแก่มาก (เท่าที่ฉันรู้) และอาจไม่เหมาะสำหรับศตวรรษที่ 21
ฟังก์ชั่นโปรแกรมเก่าเกินไป ฉันไม่เห็นว่าอายุแนวคิดมีความเกี่ยวข้องกันอย่างไร
อย่าเข้าใจฉันผิด ฉันรักการเขียนโปรแกรมที่ใช้งานได้ฉันเข้าร่วมทีมนี้เพราะฉันต้องการช่วยนำแนวคิดจากการเขียนโปรแกรมการทำงานมาสู่ C # และฉันคิดว่าการเขียนโปรแกรมในรูปแบบที่ไม่เปลี่ยนรูปเป็นวิธีแห่งอนาคต แต่มีค่าใช้จ่ายมหาศาลในการเขียนโปรแกรมในสไตล์การใช้งานที่ไม่สามารถละทิ้งได้ การเปลี่ยนไปสู่รูปแบบการใช้งานที่มากขึ้นนั้นกำลังจะเกิดขึ้นอย่างช้าๆและค่อยๆเป็นระยะเวลาหลายสิบปี และนั่นคือสิ่งที่จะเกิดขึ้น: เปลี่ยนไปสู่รูปแบบการใช้งานที่มากขึ้นไม่ใช่การสวมกอดความบริสุทธิ์และความสวยงามของ Haskell และการละทิ้ง C ++
ฉันสร้างคอมไพเลอร์เพื่อการใช้ชีวิตและเราได้รวบรวมสไตล์การใช้งานสำหรับเครื่องมือคอมไพเลอร์รุ่นต่อไปอย่างแน่นอน นั่นเป็นเพราะการเขียนโปรแกรมฟังก์ชั่นเป็นพื้นฐานที่ดีสำหรับปัญหาที่เราเผชิญ ปัญหาของเราเกี่ยวกับการรับข้อมูลดิบ - สตริงและข้อมูลเมตา - และเปลี่ยนเป็นสตริงและข้อมูลเมตาที่แตกต่างกัน ในสถานการณ์ที่การกลายพันธุ์เกิดขึ้นเช่นมีคนกำลังพิมพ์ใน IDE พื้นที่ปัญหามักจะใช้เทคนิคการทำงานเช่นการสร้างใหม่แบบส่วนเพิ่มขึ้นเฉพาะส่วนของต้นไม้ที่เปลี่ยนไป โดเมนจำนวนมากไม่มีคุณสมบัติที่ดีเหล่านี้ซึ่งทำให้สอดคล้องกับสไตล์การใช้งานได้อย่างชัดเจน