기본 콘텐츠로 건너뛰기

추천 가젯

[프로그래밍 이야기 5] 점 두 개(..)가 가져온 혁명: Smalltalk의 유산과 Dart Cascade 연산자

Smalltalk의 유산과 Dart Cascade 연산자 소프트웨어 외주 개발 결과물이나 아웃소싱 코드를 검수하다 보면, Dart 언어로 작성된 프로젝트에서 독특하면서도 우아한 문법을 자주 마주치게 됩니다. 바로 점 두 개를 연달아 사용하는 **Cascade 연산자( .. )**입니다. 처음에는 단순히 코드 길이를 줄여주는 문법 정도로 보입니다. 하지만 이 작은 연산자 속에는 객체지향 언어가 지난 수십 년 동안 고민해 온 메시지 전달(Message Passing) , 객체 조작 방식 , 그리고 API 설계 철학 이 녹아 있습니다. 1부. Smalltalk에서 시작된 Cascade Cascade 연산자의 기원을 따라가려면 객체지향 프로그래밍의 조상인 Smalltalk 까지 거슬러 올라가야 합니다. Smalltalk에서 객체는 함수를 호출(Call)하는 대상이 아니라 메시지를 전달(Message Passing)받는 존재 였습니다. 동일한 객체에게 여러 메시지를 보낼 때는 객체 이름을 반복하지 않고 세미콜론( ; ) 하나만으로 계속 이어갈 수 있었습니다. person := Person new. person name: 'Alice'; age: 30; printInfo. 객체는 한 번만 등장하고 이후의 모든 메시지는 같은 수신자에게 전달됩니다. 지금 봐도 상당히 세련된 문법입니다. 무엇보다 메서드를 추가하거나 삭제할 때도 마지막 줄에 한 줄만 더 붙이면 되므로 코드 수정이 매우 자연스럽습니다. 2부. Objective-C가 이어받은 메시징 철학 Smalltalk의 영향을 가장 크게 받은 언어 가운데 하나가 Objective-C 입니다. Objective-C는 C 언어 위에 Smalltalk의 메시지 전달 철학을 접목하면서 유명한 대괄호 문법을 도입했습니다. Person *person = [[Person alloc] init]; [person setName:@"Alice"]; [person setAge:30]; ...

최근 글

철권과 소년 만화에서 읽히는 일본 특유의 혈통 서사

메뉴의 실종, 그리고 부활: KDE의 숨은 보석 'KCommandBar'

잘고를 지워주는 펄.

[성적인이야기/리메이크] 라디오 사연 같은 인체 이야기: "어느 누군가의 당혹스러운 깨달음"

[/리메이크] 2014년 8월의 기록: 군대와 폭력, 그 비정상적인 공존에 대하여

[AI번역] Gnuplot으로 출판 수준의 그래프 그리기

[물리학자의 관점/글쓰다가 말았음, 그냥 배포함 뭘하려 한걸까? 기억이.] 케이블의 특성 임피던스란 무엇인가?

[프로그래밍 이야기 4] 리눅스 데스크탑 잔혹사: PPA와 한글 입력기, 그리고 실용주의의 승리

[프로그래밍 이야기 3] 종이 위에서 피어난 텍스트 처리의 지배자들: sed에서 Perl까지

[프로그래밍 이야기 2] 델파이가 쏘아 올린 캡슐화의 정점, 프로퍼티의 계보