QEMU-WASM 덕분에 이제 브라우저에서 안 돌아가는 게 뭐가 있을까 궁금해짐
비판은 아니고, 새 언어를 쉽게 배워볼 수 있는 이런 시도는 정말 좋다고 생각함
내 가설로는 이 방식이 상당히 빠를 것 같음. 직접 테스트해볼 가치가 있음
아직 Haskell(또는 그 기반 언어)을 완전히 부트스트랩할 방법이 없다는 게 아쉬움
그래서 신뢰도 높은 Linux 배포판에서는 Haskell을 쓰기 어렵다고 느낌
브라우저 샌드박스에서 실행하는 건 위험을 줄이는 임시방편이지만, 소스에서 부트스트랩이 안 되면 언어를 신뢰하기 힘듦
네가 말하는 건 “GHC Haskell”임. 그건 주류 구현이라 언젠가 해결될 거라 봄
하지만 GHC 없이도 Haskell을 꽤 다룰 수 있음. 예를 들어 MicroHs는 점점 강력해지고 있고, 부트스트랩 가능성이 높다고 생각함
Haskell에 익숙하지 않은 사람을 위해 설명하자면, GHC는 Haskell의 대표 컴파일러이자 인터랙티브 환경임
GHC(Glasgow Haskell Compiler)는 사실상 표준 구현체이자 언어 연구의 중심 도구임
하지만 기능 변화가 너무 잦고, 안정된 스타일이 정착되지 않아 결국 Standard ML로 옮겼음
(그때는 타입 패밀리 관련 변화가 한창이던 시기였음)
이 프로젝트가 WasmGC를 사용하는지, 아니면 자체 가비지 컬렉터를 포함하는지 궁금함
WasmGC는 lazy evaluation과 궁합이 나쁨. Haskell의 게으른 값은 항상 힙의 클로저 형태로 존재함
필요할 때만 계산하고, 중복 호출을 막기 위해 black hole로 대체하는 구조임
하지만 WasmGC는 타입이 고정적이라 이런 동적 구조를 지원하기 어려움
간접 참조나 defunctionalization으로 해결할 수는 있지만 성능 비용이 큼
게다가 Haskell은 finalizer도 지원하므로 WasmGC가 이를 처리해야 함
WasmGC는 아직 1.0 단계라 C#이나 Go 같은 언어에 필요한 GC 의미론을 다 지원하지 못함. 예를 들어 interior pointer를 다루지 못함
이런 기능과 Blazor Wasm 같은 기술의 차이가 뭔지 알고 싶음. 둘 다 JS 없이 프론트엔드를 작성할 수 있게 해주는 것 같음
이미 함수형 프로그래밍을 아는 사람을 위한 실용적인 Haskell 튜토리얼을 찾고 있음
모나드, 타입클래스, HKT 개념은 이해하지만, 실제로 ToDo 앱 하나도 못 짜겠음
Hacker News 의견
실제 제목은 “GHC now runs in your browser” 임
QEMU-WASM 덕분에 이제 브라우저에서 안 돌아가는 게 뭐가 있을까 궁금해짐
비판은 아니고, 새 언어를 쉽게 배워볼 수 있는 이런 시도는 정말 좋다고 생각함
아직 Haskell(또는 그 기반 언어)을 완전히 부트스트랩할 방법이 없다는 게 아쉬움
그래서 신뢰도 높은 Linux 배포판에서는 Haskell을 쓰기 어렵다고 느낌
브라우저 샌드박스에서 실행하는 건 위험을 줄이는 임시방편이지만, 소스에서 부트스트랩이 안 되면 언어를 신뢰하기 힘듦
하지만 GHC 없이도 Haskell을 꽤 다룰 수 있음. 예를 들어 MicroHs는 점점 강력해지고 있고, 부트스트랩 가능성이 높다고 생각함
예전에 HP Jornada에서 Jlime Linux로 Haskell 인터프리터를 돌렸던 기억이 있음
수학 수업 때 수식 입력이 편해서 공학용 계산기보다 훨씬 좋았음
CF 카드에서 실행됐으니 GHC만큼 크진 않았을 텐데, 이름이 기억나지 않음
정말 인상적임. 예전에 Haskell로 수학·예술 교육용 웹사이트(mathvas.com) 를 만든 적이 있는데, 이런 도구가 있었다면 훨씬 수월했을 것 같음
맞음. 관련 프로젝트는 haskell-miso에서도 볼 수 있음
Haskell에 익숙하지 않은 사람을 위해 설명하자면, GHC는 Haskell의 대표 컴파일러이자 인터랙티브 환경임
하지만 기능 변화가 너무 잦고, 안정된 스타일이 정착되지 않아 결국 Standard ML로 옮겼음
(그때는 타입 패밀리 관련 변화가 한창이던 시기였음)
이 프로젝트가 WasmGC를 사용하는지, 아니면 자체 가비지 컬렉터를 포함하는지 궁금함
필요할 때만 계산하고, 중복 호출을 막기 위해 black hole로 대체하는 구조임
하지만 WasmGC는 타입이 고정적이라 이런 동적 구조를 지원하기 어려움
간접 참조나 defunctionalization으로 해결할 수는 있지만 성능 비용이 큼
게다가 Haskell은 finalizer도 지원하므로 WasmGC가 이를 처리해야 함
이런 기능과 Blazor Wasm 같은 기술의 차이가 뭔지 알고 싶음. 둘 다 JS 없이 프론트엔드를 작성할 수 있게 해주는 것 같음
이미 함수형 프로그래밍을 아는 사람을 위한 실용적인 Haskell 튜토리얼을 찾고 있음
모나드, 타입클래스, HKT 개념은 이해하지만, 실제로 ToDo 앱 하나도 못 짜겠음
아니면 그냥 코드를 직접 읽고, 막히면 커뮤니티에서 도움을 받는 게 좋음
예를 들어 이 글을 참고할 만함
혹은 이 튜토리얼처럼 작은 웹앱을 만들어보는 것도 좋음