1P by neo 3달전 | favorite | 댓글 1개

내가 하스켈을 배우는 데 15년이 걸린 이유

하스켈과의 첫 만남

  • 하스켈은 20세기 스코틀랜드 논리학자들이 만든 함수형 프로그래밍 언어임.
  • 2006년경 처음 하스켈을 접하게 되었음.
  • 대학 시절 독립 연구를 통해 하스켈을 배우기 시작했으나, 실제로는 많이 배우지 못했음.

실전에서의 하스켈

  • 2009년에 Xmonad라는 타일링 윈도우 매니저를 사용하면서 하스켈을 조금 더 접하게 되었음.
  • Xmonad 설정 파일이 하스켈로 작성되어 있어 이를 통해 하스켈을 조금 더 이해하게 되었음.

엘름을 통한 학습

  • 엘름(Elm)은 하스켈과 유사한 언어로, 엘름을 통해 함수형 프로그래밍의 개념을 더 쉽게 이해할 수 있었음.
  • 엘름을 사용하여 대시보드 페이지를 만들면서 함수형 프로그래밍의 원리를 배움.

하스켈로 돌아오다

  • 엘름을 통해 배운 지식을 바탕으로 하스켈 라이브러리인 Shake를 사용하여 정적 사이트 빌더를 만듦.
  • 이후 Python에서 하스켈의 개념을 적용하여 더 나은 코드를 작성하게 되었음.

첫 유용한 하스켈 프로그램 작성

  • 2023년에 프리랜서로 일하면서 시간 추적 프로그램을 하스켈로 작성하게 되었음.
  • 이 프로그램은 명령줄 옵션을 파싱하고 데이터베이스와 상호작용하는 기능을 가짐.
  • 드디어 유용한 하스켈 프로그램을 작성하게 되어 큰 성취감을 느꼈음.

GN⁺의 의견

  • 함수형 프로그래밍의 장점: 하스켈과 같은 함수형 언어는 불변성과 순수 함수를 강조하여 코드의 예측 가능성과 안정성을 높임.
  • 학습 곡선: 하스켈은 배우기 어렵지만, 엘름과 같은 유사 언어를 통해 점진적으로 접근하는 것이 효과적일 수 있음.
  • 실전 적용: 실제 프로젝트에서 하스켈을 사용하면 함수형 프로그래밍의 원리를 더 잘 이해하고 적용할 수 있음.
  • 도구 선택: Shake와 같은 하스켈 라이브러리는 빌드 시스템을 구축하는 데 유용하며, 이를 통해 하스켈의 실용성을 경험할 수 있음.
  • 커뮤니티와 자료: 하스켈 커뮤니티와 다양한 학습 자료를 활용하면 학습 과정에서 많은 도움을 받을 수 있음.
Hacker News 의견
  • 함수형 프로그래밍을 배우는 것은 가치가 있으며, 15년이나 걸리지 않음. Haskell은 도메인 데이터를 선언적으로 모델링하고 순수 함수로 작업하며 프로그램 경계에서 실제 세계와 상호작용하는 방식이 자연스러움. 초보자에게는 F#을 추천함.
  • Prolog는 함수형 프로그래밍을 이해하는 데 더 많은 통찰력을 제공함. 언어를 이해하는 데 며칠밖에 걸리지 않지만, 그 결과를 이해하는 데는 시간이 걸림.
  • Haskell을 배우기 위한 좋은 리소스를 추천해달라는 요청. Haskell에 대한 관심이 오래전부터 있었으며, F#을 사용한 사이드 프로젝트로 일부 함수형 프로그래밍 개념을 내재화했지만, 모나드에 대한 이해가 부족함.
  • 링크: https://duckrabbit.tech/articles/learning-haskell.html">Haskell 학습 리소스
  • 저자의 코드를 보고 싶다는 의견. 저자의 여정이 어떤 결과를 낳았는지 궁금함.
  • 링크: 저자의 코드 보기
  • 순수 함수형 프로그래밍 언어를 배우는 것의 이점에 대한 질문. 현실 세계의 데이터와 이벤트를 처리하는 코드를 작성할 때 최적화된 코드와 지적 호기심 사이의 경계가 흐려짐.
  • Haskell에 대한 매력을 느끼는 이유는 도메인 데이터를 선언적으로 모델링하고 순수 함수로 작업하며 프로그램 경계에서 실제 세계와 상호작용하는 방식이 자연스럽기 때문임. 이는 Haskell뿐만 아니라 다른 언어에서도 선호하는 작업 방식임.
  • Haskell이 20년 전 뜨거운 주제였을 때, ML도 자주 논의되었음. 오늘날 ML은 거의 머신 러닝을 의미함.
  • 15년 또는 아무것도 없음.