왜 하스켈인가?
카르다노를 구성하는 프로토콜들은 분산되어져 있고, 암호화되어 제공됩니다. 그리고 매우 높은 수준의 오류 내구성을 요구합니다. 최선의 상황에서도, 여전히 Byzantine actors는 만연할 것이고, 잘못된 메시지와 클라이언트의 실수로 의도치 않은 유해를 네트워크에 끼칠 것 입니다.
첫째로, 우리는 쉽게 Quickcheck같은 도구를 사용할 수 있는 강한 타입 시스템과 그리고 Refinement Types 같은 정교한 테크닉을 사용하면서도 충분한 내결함성을 가진 언어를 원했습니다. Erlang 스타일의 OTP 모델은 후자를 만족 시키지만 Haskell이나 Ocaml 같은 언어는 전자를 만족시킵니다.
Cloud Haskell이 출시되고, 하스켈은 Erlang의 많은 장점들을 얻었고, 스스로의 정체성을 잃지 않았습니다. 게다가, 하스켈의 모듈성과 조합성을 통해 타임 워프라는 가벼운 맞춤형 라이브러리를 카르다노를 위해 사용할 수 있습니다.
둘째로, 하스켈 라이브러리들은 지난 몇년간 Galois, FP Complete 그리고 Well-Typed 같은 기업들의 광범위한 작업 덕분에 크게 진화했습니다. 그 결과, 하스켈은 상용 어플리케이션 작성24 을 위한 언어로 사용될 수 있게 되었습니다.
세번째로, PureScript의 급격한 진화는 Clojurescript가 Clojure에게 끼친 것과 유사한 연결점을 JavaScript 진영에 제공하였습니다.우리는 카르다노가 브라우저에서 작동하고, 모바일 지갑을 개발하는데 있어서 PureScript는 매우 중요한 역할을 할 것으로 기대합니다.
넷째로, 하스켈은 의존성 해결과 관련하여 지난 몇 년 동안 상당한 사회적, 기술적 노력을 기울였습니다. 그것은 Michael Snoyman과 같은 기술자들이 사용하기에 편리하고 FP Complete가 잘 지원하는 stackage라는 플랫폼을 통해 주도되었습니다.
다섯째, 적절한 의존성 해결을 넘어 우리는 소프트웨어 빌드를 재현 할 수있는 것을 목표로 합니다. 바꾸어 말하면 동일한 구성 값과 종속성 버전을 사용하면 똑같은 빌드 결과물을 생성해야합니다. 우리는 stackage를 통해 NixOps를 사용하여 소프트웨어 빌드 재현을 성공적으로 달성했습니다.
마지막으로, 하스켈 전문의 개발자 인재 풀은 다른 언어들과 비교했을 때 충분히 컸고, 학문적으로나 현업에서나 적절하게 결합된 인증과 훈련을 받았습니다. 그리고 경험 있는 하스켈 개발자인데 컴퓨터 공학에 대해 세부적인 지식이 없는 경우는 드물기 때문에, 하나의 역량 필터로서 작용하였습니다.
24: 브라이언 오 설리반 (Bryan O'Sullivan)의 하스켈의 산업용 사용에 대한 긍정적 의견입니다.