무엇이 더 낫습니까, Smalltalk 또는 Pharo?


베스트 답변

긴 이야기.

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 방언으로 프로그래머에게 급진적 인 생산성 이점을 제공하는 장점을 자랑합니다. 나는 당신이 그것을 대충 훑어 보는 것 이상을 취하기를 바랍니다. 장소로 이동합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다