요즘 하스켈 배울까 고민하는 사람들이 많이 보여서
오랜만에 약팔이좀 하자면
하스켈로 프로그래밍을 하는건 꽤 쾌적하기 때문에
실제로 쓰려고 배우는 것도 나쁘지 않지만..
어차피 다른 언어로도 되는걸 굳이 하스켈을 배워서 뭘 하자는 생각은 대부분 사람들은 안할거라고 생각함.
내 생각에 하스켈을 해볼 가장 큰 이유는 배워가는게 많다는 거임.
사실 하스켈 안배우는건 걍 안익숙해서 그래. 함수형 모르는 상태로 배우면 거의 프로그래밍 언어를 첨부터 다시 배우는 수준의 코스트가 들어가니까.
근데 그러니까 배울 가치가 있는거임. 거의 똑같은 언어를 두개 배운다고 그 언어를 두배로 잘하게 되지는 않잖음? 전혀 다른 이질적인 언어라서 새로 얻는게 있음.
예를 들어서 C++하고 하스켈을 둘다 알면 러스트를 정말 빨리 배울 수 있다고 생각함. 러스트가 가진 것 중 C++에 없는건 하스켈에서 차용해간 개념이 많으니까.
다른 언어에서는 볼 수 없는 이상적인 솔루션을 하스켈에서 사용하는 경우도 있음. 대표적으로 HKT. HKT가 있는 언어는 진짜 드물다. 메이저한건 Scala, OCaml 정도?
하스켈 대신 Scala나 OCaml을 배울수도 있지만 이것들은 하스켈처럼 파격적이진 않다. 당장 purity도 강제 안하니까.
딴 소리좀 하자면 러스트는 HKT좀 넣었으면 좋겠다.
구현이 어렵다 말고 러스트에서 HKT를 쓰지 않을 이유가 있나?
러스트 쓰지도 않는 놈이 이런 말 하면 좀 미안하긴 한데..
뭐 근데 그 정도면 굳이 하스켈일 필요는 없는듯. ml계열언어중에 고르면 될거같네. 언어론 수업에서 보통 sml한번쯤은 다루니깐. 아예 coq같은거 할거 아닌다음에야 - dc App
맞긴 해,, 언어론 수업에서 모나드도 쓰는지는 잘 모르겠는데
참고로 Coq배우면 증명언어 실력이 늘지 프로그래밍 스킬이 늘지는 않음. 예를 들어 Coq에선 모나드 같은거 잘 안씀.
난 증명언어 배우는게 가치가 있다고 봄. 함수형 언어 배우는게 가치있듯이. 모나드야 난 리팩토링에 쓰는게 실전적이라고 생각하는데 교수마다 다르겠지만 언어론 수업에서 굳이 다룰만한건 아니겠지. 워낙 배울게 많은 과목인데 - dc App
그야 증명언어도 배우면 좋긴한데.. 프로그래밍에 도움이 되나? 프로그램을 informal하게라도 논증하고 싶다면 굉장히 도움이 되겠지만.
실용성에 초점을 맞추면 coq보단 qcheck 같은 라이브러리 한번접하는게 더 도움될지도. 머 이런건 관점의 차이니깐 - dc App
하스켈 그거 프로그래밍 언어 연구하는랩에서나 쓰는거 아니였나요
제가 본 프로그래밍 언어 연구하는 랩은 Coq만 쓰던데요
https://gist.github.com/CMCDragonkai/a5638f50c87d49f815b8
HKT관련정보
모르는 사람들 보라구