Hacker News

Pharo 14

Pharo 14 출시: 개발 도구와 가상 머신 현대화

Pharo 14는 개발 도구와 리팩터링 명령 체계, 가상 머신을 정비한 Smalltalk 계열 언어·개발 환경의 새 버전입니다. RISC-V JIT 지원과 명령줄 디버거를 추가했으며, Pharo 저장소에서 978개 PR을 통합하고 Pharo 13 이후 이슈 616건을 닫았습니다.

에디터 노트

이번 릴리스의 변경은 도구와 런타임 양쪽에 걸쳐 있지만 사용 현황이나 성능 측정치는 제시하지 않습니다. 따라서 RISC-V JIT 지원과 메모리 관리 개선은 확인 가능한 작업 범위로 볼 수 있고, 실제 효과까지 단정할 근거는 없습니다. 댓글에서도 Pharo의 라이브 환경이 에이전트 개발에 맞는다는 기대와 생태계 규모가 실용성을 가른다는 지적이 함께 나옵니다. 이는 각각 가능성에 대한 의견과 GT를 사용한 한 이용자의 경험이며, Pharo 14의 에이전트 통합 결과를 입증하지는 않습니다. 광범위한 유지보수와 도구 개편은 분명하지만, 이번 발표만으로 현업 적용이나 AI 개발에서의 우위를 판단하기는 어렵습니다.

AI 요약

Pharo 팀이 객체와 메시지를 중심으로 하는 프로그래밍 언어이자 개발 환경인 Pharo 14를 출시했습니다. 이번 버전은 개발 도구 현대화, 리팩터링·명령 인프라 재구축, 가상 머신 현대화에 집중했습니다. 출시 일정도 봄에서 가을로 바뀌어 Pharo 14가 새 일정에 따른 첫 버전입니다.

개발 도구

Mission Control을 도입하고 Spotter를 Pulse로 교체했습니다. Method Browser를 개편하고 Settings Browser를 다시 작성해 기본 도구로 전환했습니다. Epicea와 ProfStef도 NewTools에 통합했습니다. 개발 도구를 Spec 기반 도구 모음으로 옮기는 작업을 이어갑니다. TestRunner를 통합하고 명령줄 테스트를 지원하며 File Browser, Finder, Transcript 등 여러 도구도 손봤습니다.

시스템과 명령 인프라

리팩터링 명령을 드라이버 기반 구조로 옮기고 통합 명령 레지스트리를 마련했습니다. 명령줄 디버거와 Sindarin 스크립트 도구를 추가하는 등 명령줄 기능을 확장했습니다. Scoped extensions와 selector 의미론, 블록 및 디버거 동작, ClassBuilder와 trait 및 상속 처리, 컴파일러 API와 메서드 설치 구조도 정비했습니다. UnifiedFFI의 값 홀더와 콜백을 비롯해 패키지·baseline 구성, 부트스트랩 의존성, Morphic과 UIManager의 의존성도 손봤습니다. 텍스트, 그래픽, Zinc, Zodiac, 목록·트리와 창 동작 등 여러 구성 요소의 수정도 포함합니다.

가상 머신

프레임과 스택 관리를 통합해 인터프리터와 실행 엔진을 정리했습니다. RISC-V JIT 지원을 추가했고, 기존 공간에 직접 할당하는 기능과 가비지 컬렉션 및 할당 개선을 포함해 메모리 관리를 확장했습니다. Slang 및 C 번역기 작업과 컴파일러 수정, 테스트, 검사 도구 개선도 진행했습니다. SDL 업데이트, CI 개선, 크로스 빌드 지원, 외부 의존성 갱신 등 빌드 기반도 현대화했습니다.

개발 규모

Pharo 저장소에 PR 978건을 통합했고 Pharo 13 이후 이슈 616건을 종료했습니다. GitHub 저장소에는 포크 432개와 별 1,494개가 기록되어 있습니다. 팀은 별도 프로젝트에서도 각 릴리스에 포함되는 작업이 진행된다고 설명하며, 전 세계 기여자들의 코드 제출과 버그 보고, 토론 및 피드백에 감사를 전했습니다.

Hacker News 반응

  • @wonks — 이번 버전이 "more than [X] contributors"에 의해 만들어졌다고 적힌 걸 보니 기여자가 충분하지 않은 건 아닌지 생각하게 됩니다.
  • @ramesh31 — 발전이 실제로 의미가 있기는 한가요? Alan Kay는 제가 개인적으로 존경하는 사람이고 Smalltalk의 미학도 좋아합니다. 한때 그런 시스템이 프로그래밍 환경의 발전에 기여할 수 있었던 기회를 놓쳤다는 생각도 듭니다. 하지만 지금은 흥미로운 취미 이상의 무언가인가요?
    • @logancbrown — 사실상 이미 그렇습니다. Haiku OS나 Plan 9, Squeak과 같은 영역에 속할 수도 있겠지만 여전히 흥미로운 연구 분야입니다.
    • @rfgplk — 반대입니다. LLM 덕분에 이제는 이런 잘 알려지지 않은 언어를 골라 완전한 AAA 게임 엔진이나 데이터베이스, 웹 프레임워크를 만들 수 있습니다. 언어는 더 이상 중요하지 않습니다. 참고로 LLM은 Smalltalk, Haskell, Perl, FORTRAN 같은 오래되거나 흔하지 않은 언어를 특히 잘 다룹니다.
  • @bmacho — 브라우저에서 DOM/SVG 프런트엔드를 만들면 안 되나요? Canvas가 아니라 DOM/SVG라면 새롭고 재미있는 인터랙티브 웹사이트의 엔진이 될 수 있습니다.
    • @em-bee — Amber Smalltalk를 말하는 건가요? 아니면 Squeak.js 같은 쪽인가요?
    • @bmacho — Squeak.js 데모는 Canvas입니다. 글꼴과 텍스트를 지원하지 않고 브라우저 기본 기능도 아닙니다. 텍스트 선택과 복사, 붙여넣기는 생각보다 괜찮지만요.
  • @ElevenLathe — Smalltalk나 Pharo에서 에이전트 보조 개발은 요즘 어떤 상태인가요? 에이전트가 실행 중인 프로그램을 직접 조작할 수 있으니 잘 맞을 것 같지만 학습 데이터가 거의 없을 것 같습니다.
    • @xkriva11 — 잘 작동합니다. 저는 주로 Pi와 MCP를 씁니다.
    • @whacked_new — 에이전트가 작업 중인 인터페이스를 즉석에서 수정하는 Glamorous Toolkit을 살펴봤는데 꽤 좋은 경험이었습니다. 데이터 탐색 기능도 훌륭했습니다. 다만 실제로는 생태계가 더 넓어서 bb가 앞섰습니다. GT에서는 위젯 표현과 소스 표현 사이를 언제 변환할지 정해야 하고, 데이터를 다시 해석하고 렌더링하면서 느려지는 문제도 있었습니다.
  • @ModernMech — 저도 Smalltalk를 찾으려고 페이지에서 검색했는데 아무것도 나오지 않아 이상하다고 생각했습니다. 늘 "Pharo Smalltalk"라고 불리는 걸 들었거든요.
    • @travisgriggs — 예전에는 Smalltalk가 Java 마케팅에 밀려 한물간 것으로 여겨졌습니다. 지금은 오히려 복고적 매력에 끌리는 사람이 있을 수 있습니다. 저는 35년 넘게 프로그래밍하며 Smalltalk를 20년 익힌 것이 현실의 데이터와 개념적 관계를 모델링하는 데 가장 도움이 됐습니다.

원문: Pharo / 번역·요약: Trawling