Pros:
1) Haskell is the most state-of-the-art programming language. I did some research and haskell seems to be the only real state-of-the-art programming language. There are others like agda and coq, but those are quite experimental and lack features for real world programming (e.g. library support). It’s best to invest in a state-of-the art programming language.
(note: I don't argue about the details why haskell is state-of-the-art, and almost any other programming language is not. This would take too much time. So it's simply my subjective opinion. Same is true for the other statements.)
(note: some features I mention later are probably GHC specific, but I still write only haskell)
2) Haskell programmers are typically very smart. The code quality of the libraries is exceptionally high. Further, tips on stackoverflow are very well written, and also on a high level (thanks to people like Don Stewart, just to name one). I think one of the best ways to improve in programming is by learning from other peoples' code. Haskell is very good in that regard.
3) Imperative programming in moste OOP languages is obsolete. So is usual way of programming with side effects. But there are very few programming languages for declarative programming without side-effects. For instance Scala, F#, Ocaml and Erlang are not side effect free. (However, there is work, also in the academic field on OOP languages that are clearly not obsolete. Consider the work of Alan Kay in the past or for instance current state-of-the art academic work in the realm of Smalltalk.)
4) Haskell supports programming with abstract mathematical concepts (e.g. monads, functors, combinators, GADT, etc.). I think this boosts programming productivity.
5) The Haskell type system is very flexible, and supports type inference. This reduces the possible errors a lot. The type system is checked at compile time. The type systems helps as documentation.
6) Some state-of-the art concepts are implemented in haskell first (like the QuickCheck library). There are a lot of interesting extensions.
7) The haskell syntax is very well designed. There are no unnecessary parenthesis. The code is compact and the synatax for pattern matching and list comprehension is quite nice. People like Knuth advocate literate programming, and haskell/GHC supports it.
8) haskell supports lazy evaluation
Cons:
1) It's very hard to learn, and it takes hours, months to master haskell. It’s even harder without a proper computer science background. Things like Monads and Functors are hard to understand, especially without mathematical background. So most programmers probably don’t have the ability or will to learn haskell. Haskell is not ‘simple’. Howevery it’s impossible to have a simple language that supports all the advanced features.
2) The IDE options are not as good as those for other programming languages. I use leksah as my IDE, it’s very good, but it’s not comparable to Eclipse for java development.
3) Haskell cannot be used for android or Iphone development. In contrast Scala can be used for android development, and it’s also compatible to java, which is a huge advantage.
4) I think some libraries lack supporting people who maintain and improve them. I do semantic web programming in haskell, and the library support could be better.
Haskell is not suited for all projects. If you need every millisecond of performance, C/C++ is still probably the best option. So haskell is suited for many projects, but not all.
Haskell has many technical advantages over other programming languages. However, there might be political reason against using haskell. For example Scala integrates better with existing java infrastructure.
Pros:
1) Haskell is the most state-of-the-art programming language. I did some research and haskell seems to be the only real state-of-the-art programming language. There are others like agda and coq, but those are quite experimental and lack features for real world programming (e.g. library support). It’s best to invest in a state-of-the art programming language.
(note: I don't argue about the details why haskell is state-of-the-art, and almost any other programming language is not. This would take too much time. So it's simply my subjective opinion. Same is true for the other statements.)
(note: some features I mention later are probably GHC specific, but I still write only haskell)
2) Haskell programmers are typically very smart. The code quality of the libraries is exceptionally high. Further, tips on stackoverflow are very well written, and also on a high level (thanks to people like Don Stewart, just to name one). I think one of the best ways to improve in programming is by learning from other peoples' code. Haskell is very good in that regard.
3) Imperative programming in moste OOP languages is obsolete. So is usual way of programming with side effects. But there are very few programming languages for declarative programming without side-effects. For instance Scala, F#, Ocaml and Erlang are not side effect free. (However, there is work, also in the academic field on OOP languages that are clearly not obsolete. Consider the work of Alan Kay in the past or for instance current state-of-the art academic work in the realm of Smalltalk.)
4) Haskell supports programming with abstract mathematical concepts (e.g. monads, functors, combinators, GADT, etc.). I think this boosts programming productivity.
5) The Haskell type system is very flexible, and supports type inference. This reduces the possible errors a lot. The type system is checked at compile time. The type systems helps as documentation.
6) Some state-of-the art concepts are implemented in haskell first (like the QuickCheck library). There are a lot of interesting extensions.
7) The haskell syntax is very well designed. There are no unnecessary parenthesis. The code is compact and the synatax for pattern matching and list comprehension is quite nice. People like Knuth advocate literate programming, and haskell/GHC supports it.
8) haskell supports lazy evaluation
Cons:
1) It's very hard to learn, and it takes hours, months to master haskell. It’s even harder without a proper computer science background. Things like Monads and Functors are hard to understand, especially without mathematical background. So most programmers probably don’t have the ability or will to learn haskell. Haskell is not ‘simple’. Howevery it’s impossible to have a simple language that supports all the advanced features.
2) The IDE options are not as good as those for other programming languages. I use leksah as my IDE, it’s very good, but it’s not comparable to Eclipse for java development.
3) Haskell cannot be used for android or Iphone development. In contrast Scala can be used for android development, and it’s also compatible to java, which is a huge advantage.
4) I think some libraries lack supporting people who maintain and improve them. I do semantic web programming in haskell, and the library support could be better.
Haskell is not suited for all projects. If you need every millisecond of performance, C/C++ is still probably the best option. So haskell is suited for many projects, but not all.
Haskell has many technical advantages over other programming languages. However, there might be political reason against using haskell. For example Scala integrates better with existing java infrastructure.
การแปล กรุณารอสักครู่..

ข้อดี :
1 c เป็นภาษาการเขียนโปรแกรมที่ทันสมัยที่สุด . ฉันได้บางวิจัยและฮาสเคลดูเหมือนว่าจะเป็นเพียงจริงรัฐ - of - the - art การเขียนโปรแกรมภาษา มีใครชอบ agda คุณภาพ แต่เหล่านี้จะค่อนข้างขาดคุณสมบัติสำหรับการทดลองและโลกจริง ( ห้องสมุดที่สนับสนุนเช่น ) มันที่ดีที่สุดเพื่อลงทุนในรัฐของศิลปะการเขียนโปรแกรมภาษา
( หมายเหตุ :ผมไม่เถียงเรื่องรายละเอียดทำไม ธที่ทันสมัย และเกือบทุกอื่น ๆภาษาซีไม่ได้เป็น นี้จะใช้เวลามากเกินไป ดังนั้นมันเป็นเพียงความคิดเห็นส่วนตัวของฉัน เดียวกันเป็นจริงสำหรับงบอื่น ๆ )
( หมายเหตุ : คุณลักษณะบางอย่างที่ฉันพูดถึงทีหลังอาจ GHC เฉพาะ แต่ผมก็ยังเขียนเท่านั้น c )
2 )
c โปรแกรมเมอร์มักจะฉลาดมากรหัสห้องสมุดเป็นคุณภาพสูงเป็นพิเศษ เพิ่มเติม เคล็ดลับในกองซ้อนล้นจะถูกเขียนเป็นอย่างดีและยังในระดับสูง ( ต้องขอบคุณคนชอบก็ สจ๊วต ก็ชื่อหนึ่ง ) ฉันคิดว่าหนึ่งในวิธีที่ดีที่สุดเพื่อปรับปรุงในการเขียนโปรแกรม โดยเรียนรู้จากรหัสของคนอื่น แอสเค็ลล์ดีมากในเรื่องที่ .
3 ) การเขียนโปรแกรมที่จำเป็นใน moste OOP ภาษาเป็นเรื่องล้าสมัยดังนั้นเป็นวิธีปกติของโปรแกรมกับผลข้างเคียง แต่มีน้อยมากภาษาสำหรับการเขียนโปรแกรมโดยปราศจากผลข้างเคียง เช่น Scala , F # ocaml Erlang , และไม่มีผลข้างเคียงฟรี ( อย่างไรก็ตาม มีงาน นอกจากนี้ ในด้านวิชา OOP ภาษาที่อยู่ชัดเจน ไม่ล้าสมัยพิจารณางานของ Alan Kay ในอดีตหรือตัวอย่างเช่นปัจจุบันสถานะของศิลปะงานวิชาการใน realm ของ Smalltalk )
4 ) สนับสนุน Erlang การเขียนโปรแกรมกับแนวคิดทางคณิตศาสตร์ที่เป็นนามธรรม เช่น ลักษณะ functors combinators gadt , , และอื่น ๆ ) ฉันคิดว่า นี้ช่วยเพิ่มประสิทธิภาพโปรแกรม
5 ) c ประเภทของระบบมีความยืดหยุ่นมากและสนับสนุนประเภทของการอนุมานนี้จะช่วยลดข้อผิดพลาดที่เป็นไปได้มาก ประเภทระบบจะตรวจสอบในการคอมไพล์ ประเภทระบบช่วยเป็นเอกสาร
6 ) บางรัฐของศิลปะแนวคิดจะดำเนินการใน ฮาสเคลแรก ( เหมือน quickcheck ห้องสมุด ) มีมากของนามสกุลที่น่าสนใจ
7 ) ไวยากรณ์ ธเป็นอย่างดีที่ออกแบบมา . ไม่มีไม่วงเล็บรหัสมีขนาดกะทัดรัด และ synatax สำหรับการจับคู่รูปแบบและรายชื่อที่ค่อนข้างดี คนชอบ คนูธสนับสนุนความรู้การเขียนโปรแกรมและ c / GHC รองรับ
8 ) c รองรับการประเมินขี้เกียจ
ข้อเสีย :
1 ) มันยากที่จะเรียนรู้และใช้เวลาชั่วโมง เดือนที่จะโท ฮาสเคล . มันยากที่ไม่มีพื้นหลังวิทยาศาสตร์คอมพิวเตอร์ที่เหมาะสมสิ่งที่ชอบและลักษณะ functors เข้าใจยาก , โดยเฉพาะอย่างยิ่งปราศจากพื้นฐานทางคณิตศาสตร์ ดังนั้น โปรแกรมเมอร์ส่วนใหญ่อาจไม่มีความสามารถ หรือจะเรียน ฮาสเคล . แอสเค็ลล์ไม่ใช่ ' ง่าย ' howevery มันเป็นไปไม่ได้ที่จะมีภาษาง่ายๆที่สนับสนุนคุณลักษณะขั้นสูง
2 ) IDE ตัวเลือกไม่ดีเท่านั้นสำหรับภาษาโปรแกรมอื่น ๆผมใช้ leksah เป็น IDE ของฉัน มันเป็นเรื่องที่ดีมาก แต่มันก็เทียบไม่ได้กับ Eclipse พัฒนา Java .
3 c ) ไม่สามารถใช้สำหรับการพัฒนา Android หรือ iPhone ใน Scala คมชัดที่สามารถใช้สำหรับการพัฒนา Android , และมันยังเข้ากันได้กับ Java ซึ่งเป็นข้อได้เปรียบมาก
4 ) ฉันคิดว่าบางห้องสมุด ขาดคนสนับสนุน รักษา และปรับปรุงพวกเขาผมทำเว็บโปรแกรมความหมายใน ฮาสเคลและห้องสมุดสนับสนุนอาจจะดีกว่า
c ไม่เหมาะสำหรับทุกโครงการ ถ้าคุณต้องการทุกเสี้ยววินาทีของการทำงาน , C / C ก็ยังอาจจะเป็นตัวเลือกที่ดีที่สุด ดังนั้น c เหมาะสำหรับหลายโครงการ แต่ไม่ทั้งหมด .
c มีข้อได้เปรียบกว่าอื่น ๆเทคนิคการเขียนโปรแกรมภาษา อย่างไรก็ตามอาจจะมีเหตุผลทางการเมืองกับการใช้ c . ตัวอย่างเช่น Scala รวมกับโครงสร้างพื้นฐานจาวาที่มีอยู่
การแปล กรุณารอสักครู่..
