범용 프로그래밍, F# 또는 Haskell에 어떤 언어가 더 좋습니까? [닫은

StackOverflow https://stackoverflow.com/questions/142878

  •  02-07-2019
  •  | 
  •  

문제

현재 Haskell을 배우고 있습니다. 어떤 언어 (F# 또는 Haskell)를 프로그래밍하는 데 선호하고 있습니까?

더 강한 언어라고 생각하십니까?

도움이 되었습니까?

해결책

하스켈에 갈거야. 해킹 언어를 위해 특별히 작성된 훌륭한 라이브러리 모음입니다. F#의 경우 기능적 언어를 염두에두고 쓰여지지 않은 대부분의 라이브러리를 사용해야하므로 사용하기에 '우아함'이 아닙니다. 그러나 물론 그것은 당신이하고 싶은 기능 프로그래밍의 양과 그것을 사용하려는 프로젝트의 제약에 달려 있습니다. '범용'조차도 모든 경우에 사용되어야한다는 의미는 아닙니다.)

다른 팁

나는 Haskell을 선호합니다.

Haskell이 도구가 열악하다는 Jon Harrop의 주장은 내가 이것에 대해 상당히 동의하지 않기 때문에 조금 생각하게 만들었습니다. 여기서 문제는 부분적으로 개발 스타일 중 하나라고 생각합니다. F# 및 GHC의 몇 가지 도구 관련 특성을 비교해 봅시다.

  1. F#는 광범위한 시각적 도구를 가지고 있으며 GHC에는 아무것도 없습니다. 나에게는 시각적 도구가 부족한 것은 관련이 없습니다. 저는 UNIX 명령 줄 VI 및 심각한 맞춤형 빌드 시스템과 협력합니다. F#에서 내 개발 스타일에 대한 지원 부족은 저에게 매우 노력할 것입니다. 반면에, 시각적 스튜디오 유형 환경에서 일하는 것을 선호한다면, 당신은 반대 의견을 가지고있을 것입니다.

  2. F# 및/또는 .NET가 이해하는 것은 매우 좋은 디버거가 있습니다. GHC는 통역사에서 실행되는 제한된 디버거 만 있습니다. 나는 몇 년 동안 디버거를 사용하지 않았으며 (테스트 중심 개발 사용으로 인해 대부분) Haskell에서와 같이 순수한 기능으로 대부분 작업 할 때 디버거가 훨씬 덜 필요합니다. 나 에게이 도구의 부족은 상당히 관련이 없습니다.

  3. 도서관. 이것은 주로 필요한 라이브러리에 달려 있지 않습니까? 필요한 사람이 필요한 사람이 없으면 도움이되지 않으며, 디자인되지 않은 라이브러리가 많이 있으면 도움이되지 않을 수 있습니다. Haskell은 확실히 .NET보다 라이브러리가 적지 만 합리적인 선택을 가지고 있으며, 많은 API 디자인의 품질은 매우 높습니다.

기본 코드 라이브러리에 대한 F#의 인터페이스가 어떤지 잘 모르겠지만 환상적인 FFI로 인해 GHC는 이에 적합합니다. 나는 Haskell에 Windows DDE 서버를 완전히 작성했으며 (예 - C의 줄이 아니라 Windows C 라이브러리의 콜백을 다루는 것조차하지 않음) 시간이 훨씬 적었고 C 또는 C ++에서 동일한 작업을 수행하는 것보다 상당히 단순했습니다. 기본 코드 인터페이스가 필요한 경우 Haskell이 확실히 더 나은 선택입니다.

메모리 사용 및 성능의 "예측 불가능 성"이 좋은 지적입니다. Haskell은 당신이 무엇을하고 있는지 알고 있다면 실제로 합리적으로 예측할 수있는 것 같습니다. 그러나 당신은 당신이 시작할 때 당신이 무엇을하고 있는지 알지 못하며 배울 것이 많습니다. F#은 다른 .NET 언어와 훨씬 더 유사합니다.

전반적으로,이 질문은 아마도 언어보다 플랫폼에 더 많이 내려 질 것입니다. GHC의 기본 코드를 생성하는 "Unixy World"와 .NET에서 실행되는 F#의 "Windowsy World"의 큰 차이는 언어 문제가 아닙니다.

전체 .NET 프레임 워크에 액세스 할 수 있으므로 F#이라고 말하고 싶습니다. 그러나 그것은 더 많은 도서관입니다.

하고 싶은 일에 따라 다릅니다.

Haskell 은이 둘의 더 순전히 기능적인 언어입니다.

F#은 하이브리드 언어에 더 가깝고 순전히 기능적이지는 않지만 Windows 또는 Mono에서 현대적인 일을 쉽게 수행하는 데 사용할 수있는 훌륭한 기본 클래스 라이브러리 세트가 있습니다.

Jon Harrop은 어떤 이유로 Haskell에 심각한 다운 너가 있다고 생각합니다. 실제로 학계 밖에서 사용되지 않는다는 것은 사실이 아닙니다. 실제로 투자 은행에 널리 사용되며 F# 및 OCAML보다 훨씬 더 많은 이유가 있습니다. 작업 기능 프로그래밍을 원한다면 F# 또는 OCAML보다 Haskell 프로그래머를 위해 광고 된 게시물이 훨씬 더 많으므로 Haskell을 배우십시오. 나는 F#가 Microsoft가 뒤쳐져 있기 때문에 인기를 얻을 것이라고 확신합니다. 그리고 그것은 0에서 시작하지만 현재 Haskell은 명확한 리드를 가지고 있습니다.

아마 2 ~ 3 년 전, Ocaml은 실용적인 기능 언어로 분야를 이끌었지 만 그 이후 Haskell은 더 많은 라이브러리, 더 많은 기능, 더 나은 성능 및 더 넓은 상업용으로이를 추월했습니다.

Neil Mitchell 의이 블로그 게시물을 찾을 수 있습니다.

Haskell 관점에서 F#

의견도 밝아지고 있습니다.

나는 그것이 당신이 그것을 배우는 이유에 달려 있다고 말하고 싶습니다. 순수한 기능 언어의 경험을 위해 그것을하고 있다면 Haskell으로 가십시오. 그러나 당신이 그보다 더 많은 언어를 사용한다면, F#가 더 나은 선택 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top