베스트 답변
긴 이야기.
TL; DR 버전은 내 관점에서 다음과 같습니다.
- 원작 스몰 토크 책을 읽고 Pharo를 사용할 때 가치를 얻을 수 있으므로 확실한 스몰 토크 전통이 있습니다.
- 툴링 측면에서 보면 Pharo의 몇 가지 진보로 인해 Smalltalk 80과는 매우 독특하고 다릅니다. 예 :
- GToolkit, 매우 강력한 검사기
- Spotter, 시스템 등
- MVC 및 Morphic 이외의 UI를 수행하는 다른 방법에 대한 Spec 및 Bloc
- Squeak의 표준 패키지에 대한 정리 및 추가
- Zinc, NeoJson, STON,… 모두 Pharo 커뮤니티에서 시작
- Roassal2, 시각화 용으로도 Pharo 커뮤니티에서 시작
- 이제 공통된 OpenSmalltalk / opensmalltalk-vm 특정 Pharo 영역에 대한 노력이 더 빠릅니다. 더 나은 JIT와 다른 바이트 코드 세트입니다. 포인터 포워딩을 통한 메모리 관리는 다음과 같은 이점을 제공합니다. Pharo 가비지 수집기 조정 을 확인하고 Spur 메모리 관리자의 7 점 요약 을 확인합니다. 글쎄요, 그 블로그에있는 모든 것을 확인하세요. 그냥 흔합니다.
- 우리에게는 특성이 있습니다. XStreams가 있습니다. 칼립소가 있습니다. 아이스버그가 있습니다. 우리는 비평가가 있습니다. Opal 컴파일러가 있습니다. 텍스트 편집을위한 Rubrik이 있습니다. 코드 모델로 Ring이 있습니다. AST에서 메서드를 검사 할 수 있습니다. 객체 로깅 프레임 워크를위한 Beacon이 있습니다. WeakReferences를 사용하고 있습니다. 우리는 UnifiedFFI를 가지고 있습니다. 64 비트가 있습니다. 연료가 있습니다. 우리는 Seaside3가 있습니다. 멋진 CommandLineHandler가 있습니다. CLI 작업을위한 Scale이 있습니다. 코드 변경을위한 Epicea가 있습니다. 재 설계된 FileSystem API가 있습니다. HelpSystem이 있습니다. 우리는 CI와 Git으로 작동하는 인프라와 함께 잘 작동하는 문제 추적 등을 가지고 있습니다. 책 제작을위한 기둥이 있습니다. 우리는 미래에 대한 쉬운 작업을 위해 TaskIT를 가지고 있습니다. 우리는 괜찮은 KeyMapping 시스템을 가지고 있습니다. Morphic을 정리했습니다 (아직해야 할 일이 더 많습니다). OSWindow가 있습니다. 리팩토링과 CodeRewriter가 있습니다. 반사율이있는 MetaLink가 있습니다. 그래픽을위한 아테네가 있습니다. 우리는 IoT를 지원합니다.
예, Smalltalk에서 영감을 얻었습니다. 하지만 확실히 스몰 토크 -80은 아닙니다. 파로입니다. 등대를 로고로 사용합니다. 개발자의 행복으로가는 길을 밝게 비추는 밝은 빛이있는 것을 좋아하기 때문입니다.
Smalltalk는 훌륭합니다.
Pharo는 21 세기 기술을 사용할 때 비즈니스 결과를 얻는 데 더 좋습니다. . Pharo 도구를 서로 결합하면 강력한 결과를 얻을 수 있기 때문입니다.
그렇습니다.
Answer
Pharo는 Smalltalk의 방언입니다. 구문, 의미론 및 구현에서 Pharo는 Smalltalk-80 버전이며 Squeak 및 Cuis 방언과 매우 가까운 친척입니다. 세 가지 모두 “Smalltalk-80 : 언어 및 구현”, 일명 “청색 책”을 작성하는 과정의 일부로 Apple이 Xerox에서 제공 한 Smalltalk-80 v1에서 직접 파생되었습니다. Alan Kay는 90 년대 Apple에서 Smalltalk-80 v1부터 Squeak 방언 및 구현을 개발 한 팀을 이끌었습니다. 나중에 Cuis와 Pharo는 Squeak에서 갈라졌습니다. 그러나 세 가지 모두 2008/9/10 년에 Squeak 용 원래 백 투더 퓨처 인터프리터 VM에서 파생 된 JIT VM의 진화 인 Spur VM으로 전환되었습니다.
이 세 가지 방언은 가장 가까운 친척은 VisualWorks Smalltalk로, Xerox PARC에서 개발 한 최종 버전 인 Smalltalk-80 v2에서 직접 내려 왔습니다. 네 가지 모두 thisContext 의사 변수를 통해 컨텍스트 (Smalltalk의 첫 번째 클래스 활성화 레코드)를 지원함으로써 다른 스몰 토크와 구별 할 수 있습니다. 컨텍스트는 활성화 레코드입니다. 실행중인 메소드 또는 블록 클로저의 상태를 보유하는 객체입니다. 표면적 차이는 Squeak 제품군이 튜플 (편리한 배열 구성)과 case 문을 지원하는 반면 VisualWorks에는 네임 스페이스 경계를 넘어 객체에 액세스하기위한 네임 스페이스 시스템과 BindingReference 리터럴 형식이 있다는 것입니다.
한 가지 독특한 점은 스몰 토크와 가까운 친척 인 Self와 Newspeak는 시스템이 자체 정의한다는 것입니다. 클래스, 메서드 및 컨텍스트는 모두 클래스 및 메서드 측면에서 정의 된 일급 객체입니다. 이것은 컴파일러와 디버거, 예외 시스템 등으로 확장됩니다.이를 통해 Smalltalk는 언어 수준에서 발전 할 수 있습니다. 튜플, case 문 및 네임 스페이스는 기본 가상 머신을 수정하지 않고도 해당 시스템에서 모두 구현되었습니다. 이러한 진화 능력은 스몰 토크를 정확히 정의하는 데 다소 문제가 있습니다. 건강한 스몰 토크는 진화하는 스몰 토크입니다. 움직이는 표적.
Paro 커뮤니티의 일부, 아마도 많은 사람들은 Smalltalk가 90 년대에 나쁜 이름을 얻었다 고 생각하고, 일부는 개발자에 대한 지원 부족에 불만을 느끼고 Alan Kay의 연구팀이 보유한 Etoys에 집중합니다. 실제로 Etoys가 팀의 초점이었습니다. 결과적으로 Pharo는 매우 다른 강조점을 가지고 있으며 Squeak의 노후화 된 멀티미디어 지원에서 벗어나 github와 같은 현재 컴퓨팅 에코 시스템과의 더 나은 통합과 훨씬 더 역동적 인 탐색 프로세스로 프로그래밍을 재창조하기를 원합니다. 예를 들어 Rossal 및 GT 툴킷 위의 애자일 시각화 작업을 참조하십시오. 따라서 Pharo 커뮤니티의 일부는 Pharo가 Smalltalk의 방언이라는 사실을 부정하고 싶어합니다. 이것은 내가 이해하는 입장이지만 실제로는 거짓 (부정 할 수없는 구문, 의미론 및 구현에서 Pharo / is / Smalltalk-80의 버전)과 다소 무례하고 배은 망이없는 (Pharo는 훌륭한 프로그래밍 환경입니다. 위대한 사람들은 그 안에서 훌륭한 일을하고 있으며 스몰 토크이기 때문에 할 수 있습니다.) 신경 쓰지 마. Pharo는 강력하고 빠르게 진화하는 Smalltalk 방언으로 프로그래머에게 급진적 인 생산성 이점을 제공하는 장점을 자랑합니다. 나는 당신이 그것을 대충 훑어 보는 것 이상을 취하기를 바랍니다. 장소로 이동합니다.