Hacker News Migrates to Common Lisp for Performance & Multi-
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Hacker News가 이제 Common Lisp 위에서 구동됨

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • Lisp 언어 및 Common Lisp 개발자
  • 성능 최적화와 멀티코어 환경 적용에 관심 있는 프로그래머
  • Arc 언어를 사용하거나 이식하려는 개발자
  • HN 아키텍처와 설계 원칙에 대해 학습하고자 하는 개발자

핵심 요약

  • Hacker News는 Arc 언어에서 Common Lisp(SBCL)로 전환하여 성능 향상 및 멀티코어 지원 가능
  • Clarc(Arc → Common Lisp 변환기) 도입으로 구조 체계화 및 사용자 경험 개선
  • 보안상의 이유로 HN 전체 코드베이스 공개는 어려움

섹션별 세부 요약

1. 전환 목적 및 기술적 변화

  • Arc 언어에서 Common Lisp(SBCL)으로 전환
  • 성능 향상과 멀티코어 지원 가능성 확보
  • Clarc 도입으로 인한 구조 체계화
  • Arc-to-JS 변환기(Lilt) 및 Arc-to-Common Lisp 변환기(Clarc) 개발
  • 기존 Arc 구현의 하위 구조 재설계
  • arc0, arc1, arc2 단계로 나눠 개발
  • arc2에서 전체 기능 구현, arc0/arc1에서 최소화
  • HN 사용자 경험 개선
  • 페이지 분할 제거, 긴 댓글 스레드 한 번에 로드
  • Clarc 도입으로 멀티코어 지원 가능

2. 코드베이스 공개 및 보안 고려

  • Clarc 소스 코드 공개는 용이
  • 기존 Arc 버전을 Clarc로 이식 가능
  • HN 전체 코드베이스 공개는 보안상 어려움
  • 내부에 여러 보안 메커니즘 포함
  • 공개 시 보안 메커니즘 약화 가능성

3. 성능 및 확장성 고려

  • 최신 CPU 활용으로 성능 향상
  • 병목은 디스크 및 네트워크 I/O
  • HN은 텍스트 서빙만으로 상대적으로 용이
  • 규모 확장 전에도 처리량 감당 가능
  • 병목이 아닌 I/O 처리가 주요 제약 요소

4. 언어 및 커뮤니티 관련 의견

  • Racket 커뮤니티의 친절한 지원
  • 요청한 버그 모두 수정
  • Armed Bear Common Lisp에 대한 애정
  • 강력한 JVM 라이브러리 생태계
  • Lisp 언어의 특성 강조
  • "Worse is better" 철학 적용
  • "Less is more"의 설계 원칙

결론

  • Common Lisp(SBCL)과 Clarc 도입으로 HN의 성능 및 확장성 향상
  • 보안 고려로 전체 코드베이스 공개는 제한적
  • Arc 언어를 기반으로 한 프로젝트 개발자에게 Clarc 활용이 유리
  • Lisp 언어의 설계 철학과 기술적 장점을 이해하는 것이 중요