프로그래밍 언어 의인화 계획 2

원문 : Java、C++、Python…プログラミング言語擬人化計画!

Java

미야자와 겐지의 「바람에도 지지 않고」에 나올듯한 박눌한 성격의 여자아이. 어릴적에는 둔한데다 먹보였기에 모두에게서 바보 취급을 받았지만, 초등학교에 들어간 이후 육상부에 들어가 꾸준히 달리기를 계속한 결과, 장거리 달리기에서 좋은 타임을 내는 등 활발한 모습을 보이게 되었다. 노력가 여자아이라고 하겠다.

그녀의 가정은 절대 축복받은 환경은 아니었다. 아버지는 재능있는 예술가였지만 돈계산은 그다지 잘하는 편이 아니라, 그녀가 14세일때 빚을 떠안은채 정신적 피로가 원인이 되어 타계했다. 그녀는 오라클 아저씨네 집에서 맡겨지게 되었지만, 그때 그녀의 친권을 둘러싸고 구글 아저씨와 싸움이 벌어져 재판까지 가는 사태가 된다.

한창 사춘기일 때 그런 환경에 놓였기에, 주위사람들은 이대로는 그녀의 마음도 거칠어지는 것이 아닐까하고 걱정했지만, 그녀는 절대로 비행으로 이어지는 일 없이 달리기를 계속하며 매일을 보냈다.

소박하고 진지하며, 별로 눈치가 빠르다고는 할 수 없는 그녀지만, 고등학교에 들어오고 난 이후 조금은 이성을 신경쓰게 된건지 몰래 다른 여자들의 패션을 흉내내어 거리를 돌아다니는 모습도 목격되고 있다. 그 모습은 「열심히 하긴 했는데 조금 시대에 뒤쳐진 것 같은데」라던가 「그 옷은 Java양의 이미지랑은 안맞는 것 같아」같은 부정적인 평가를 받는 경우도 있지만, 「의외로 괜찮은 것 같은데?」라며 호의적으로 봐주는 사람도 많은 것 같다

커피를 좋아하며, 특히 인도네시아산이라면 사족을 못쓴다. 본인은 「세끼 식사보다 커피가 좋아」라고 하는데, 「그래서 건강은 괜찮으려나?」하는 걱정도 든다.

C++

잘빠진 다리에 뚜렷한 이목구비. IT 업계 굴지의 미녀로서 평판이 높은 그녀지만, 꽃꽂이, 다도, 피아노에 바이올린, 유도, 검도, 합기도까지 해내는 다채로운 재능을 가진 것으로도 알려져있다.

그녀의 팬에는 열광적인 사람이 많으며, 「어둠의 군단」이라 불리는 팬클럽도 존재한다. 어둠의 군단은 프리메이슨의 뒤를 잇는 규모를 가진 거대 비밀결사로 일반인은 입회할 수 없다. 그녀에 대한 매니악한 문제에 답할 수 있을 정도의 지식을 갖게 되면, 냄새를 맡은 군단원에게서 「당신, 어둠의 군단에 들어오지 않겠습니까?」라는 연락이 오는 구조로 되어 있다 한다.

배다른 자매인 오브젝티브 C가 피아노에만 전념하여 성장하고, IT 업계의 카리스마 스티브 잡스(일부에서는 보라색 장미의 사람이라고 불린다)가 그 한결같음에 반하면서 일약 스타덤에 오른 것에 반해, C++은 그 미모와 재능으로 젊을때부터 주목을 모아, 오랜 기간 업계의 스타 자리를 유지하고 있다. 자매이면서도 대조적인 두 사람이다.

그녀는 기분에 따라 빈번하게 머리 모양이나 복장을 바꾸는 것으로 알려져 있다. 어제는 일본 전통복에 검은 머리로 나타났다 싶으면 오늘은 빨간 머리에 고딕계열로 등장하는 등, 그 변신에 라이트 팬은 「어라? 방금 그 사람이 C++씨였어?」하고 놀라는 경우도 종종 있다. 업계를 벗어난 프라이베이트에서는 히스테릭 글래머를 입는 경우도 많다고 한다.

그녀의 생년월일은 사무소에서는 공표하고 있지 않다. 1983년이라는 설도 있지만, 본문에서는 일부 팬 사이에서 돌아다니는 1985년 10월 14일 설을 채용했다. 「그녀 자신이 자기 생일을 기억하지 못할지도……」라는 소문도 그럴듯하게 돌아다니고 있다. 「C++씨라면 자기 생일을 기억하지 못해도 이상하지 않다」고 평범하게 생각하게 만드는 점이 천진난만한 그녀의 성격을 잘 나타내는 것이라 생각한다.

Python

귀도 아버님의 손에 의해 자라난 유리창 너머의 아가씨. 출신은 네덜란드 암스테르담이지만, 어릴때 미국으로 건너왔고 아버지가 가정에서도 영어를 쓰는 경우가 많았기도 해서 네덜란드어를 입에 담는 경우는 별로 없는 듯하다.

그녀는 매우 대범한 성격이다. C++이 「이미지 체인지하고 싶으니 잠깐 여행좀 갔다올게. 200x년에는 돌아올거야」라고 선언하고 여행을 떠난(돌아온 것은 결국 2011년이었다…) 이야기를 듣고, 「저도 여행 좀 갔다 올게요. 서력 3000년까지는 돌아올거예요」라고 말하고 훌쩍 떠난채 몇년이나 돌아오지 않았다는 이야기는 유명하다.

그런 좀 엉뚱한 행동을 하기도 하는 그녀지만, 「누구에게나 친숙한 아이가 되기를」바라는 염원을 담아 키웠다는 귀도 아버지 교육 덕택인지, 실제로 접해보면 굉장히 친해지기 쉬운 아이임을 알게 된다

얼마전, 필자의 친구 회사에 그녀가 아르바이트로 왔던 적이 있었는데(그녀는 지금 대학교를 다니면서 아르바이트를 하고 있다고 한다), 일을 배우는 게 빠르고 이쪽의 기분을 살펴 일을 처리해주어 굉장히 도움이 되었다는 평가를 받았다. 쓸데없는 말을 별로 하지 않고, 예의 바른 말투로 더듬더듬 말하는 모습은 「천진난만, 자유제일」스러운 행동을 하는 아이가 많은 이 업계 내에서는 드문 존재라 할 수 있겠다.

잘하는 교과는 수학이라고 하며, 통계가 어려운 문제를 즐겁게 푸는 모습이 자주 눈에 띈다. 복장은 하얀 원피스나, 옅은 분홍색 가디건 등, 차분하고 청초한 옷을 즐겨 입는다.

실은 파충류를 좋아해서 자택에서는 뱀을 키우고 있다고 한다. 그녀의 팬 사이에서는 「펫에 어떤 이름을 붙였을까?」하는 화제가 나오는 경우가 자주 있다. 대부분은 「분명 몬티겠지」라고 예상하고 있다. 하늘을 날 수 있는지는 알 수 없다.

Ruby

마츠모토 아빠에 의해 자라난 일본인 여자아이. 생일이 크리스마스라 생일 선물과 크리스마스 선물을 합쳐서 하나만 받는 것이 인생 최대의 고민. 시마네 현 마츠에 시 출신으로, 여행이나 행사 이외에는 다른 현에 나간 적이 없다고 한다.

자유분방하게 자라나 활동적이고 호기심이 왕성한 성격이 되었다. 보통때는 솔직하고 착한 아이이지만, 가끔씩 장난을 좋아하는 측면을 보여 주위를 곤란하게 한다. IT 업계에는 「Just For Fun!」(그냥 재미로!)라는 말이 있는데, 그녀의 모습을 보고 있으면 그 말을 떠올리게 된다.

어릴적에는 혼자서 기운차게 야산을 뛰어돌아다니는 생활을 했지만, 10살 때에 레일즈라는 이름의 여자애와 친구가 되고 나서 생활에 변화가 찾아온다. 둘이 놀고 있는 모습이 연예사무소의 눈에 들어와, 페어로 연예계 활동을 해보지 않겠냐는 제의를 받게된 것이다. 「루비와 레일즈」라는 이름으로 잡지 모델을 중심으로 활약하고 있으며, CM에도 나왔던지라 이름을 들어본 적이 있는 사람도 많을 것이다.

다감한 시기에 연예활동을 체험했기에 성격에도 변화가 나타나지 않을까했지만, 며칠전 오랫만에 그녀와 만나 이야기해봤더니 연예활동을 시작하기 전과 전혀 다르지 않은 자유분방한 모습을 보여 놀라웠다. 다소 침착한 모습을 보이는 일이 늘긴 했지만, 근본적으로 장난을 좋아하고 활발한 성격은 예전 그대로로 전혀 변하지 않은 듯 하다.

이제 고등학생이니 슬슬 어른스러운 옷을 입기 시작할 거라고 생각했지만, 옷도 아이일때랑 전혀 바뀌지 않은 미키마우스를 입고 있었다. 키가 작고 동안이라 잘 어울리긴 하지만, 여고생이 그래도 되는 걸까.

팬 사이에서는 언제까지나 그런 그녀인 채로 있어주길 바라는 사람과, 성장한 그녀의 모습을 보고 싶다고 생각하는 사람 두 부류가 있다는 것 같다.

PHP

Web 세계를 활발하게 만드는 것을 목적으로 만들어진 여성형 로봇. 위로 뻗친 머리털이 안테나가 되어, 마스터로부터의 명령을 상시수신할 수 있게 되어있다.

인간에 가까운 감촉을 만들기 위해 피부는 실리콘 수지로 되어있다. 내부는 블레이드서버와 같은 구조로 다중화된 서버가 항상 복수가동하고 있다. 그 때문에 체중은 인간과 비교하면 조금 무거운 편이다

처음 그녀가 등장했을 때에는 아직 관절의 가동영역에서 골격이 보이거나 움직임도 부자연스러워 진짜 인간과는 다소 거리가 있다는 인상을 받았다. 하지만 최근 18년간 6번의 커다란 버전업을 거쳐, 조금씩 인간다운 행동과 말씨를 구사할 수 있게 되었다. 최근에는 하츠네 미쿠 정도(인간과 비교하면 조금 위화감은 있지만 충분히 자연스럽다고 생각되는 레벨)의 자연스러움을 보이게 되었다.

잔실수가 많은 행동도 위태롭긴 하지만, 로봇 3원칙에 따라 얌전히 인간의 명령에 따르는 모습에 그녀의 팬이 된 사람도 많다. 그녀의 공식 팬클럽인 「페치파-!」는 입회비도 들지 않고 간단히 입회할 수 있기도 해서 IT 업계 굴지의 회원수를 자랑하는 단체가 되었다.

그녀에 대해 거부반응을 보이는 사람도 많은 듯, 「움직임이 좀 생리적으로 꺼려진다」거나 「좀더 제대로 능숙해지만 모르겠는데」라던가 「제대로 접해보면 역시 인간과는 다르다는게 느껴지거든」이라는 반응이 돌아오는 일도 종종 있다.

보통 입는 옷은 Forever21과 시마무라에서 산다는 것 같다. 패스트패션으로 싸게 처리하고, 남은 돈은 머신 스펙을 올리는데 때려박는다던가. 로봇답게 효율을 우선한 금전 사용방식이라고 할 수 있겠다. 언젠가 그녀도 멋부림에 신경을 쓰거나, 용모로 고민하게 될 날이 올까?

C#

그 Microsoft 사에서 영재교육을 받아, 겨우 11살에 월반하여 대학에 진학해 주목을 모은 소녀. 「IT 업계 최강의 로리」라고 불리기도 한다.

C++과 이름이 비슷하여 한때는 「숨겨진 아이인가?」라고 보도된 적도 있지만, 두사람 간에 직접적인 혈연관계는 없다고 한다. 먼 친척에 해당한다는 보도도 있었지만 실제로는 어떨지?

어른스러운 행동을 즐겨하며, 아이같은 놀이는 싫어하는 듯하다. 생일에 부모에게 앤디라는 이름의 봉제인형을 받았을때 「뭐야 이거. 센스도 없고. 필요없어」라고 말하고 되돌려줬다는 일화도 있다

하지만 음식 취향은 아직 어린애인듯, 학교 식당에서 어린이 정식을 주문하는 모습이 몇번인가 목격되었다. 좋아하지 않는 것은 커피로, 단 캔커피도 얼굴을 찌푸릴만큼 싫어하는 것 같다

가끔씩 아이다운 의외성있는 일면을 살짝 보여주기도 하지만, 기본적으로는 정중한 말투로 이야기하며 타인과 접할 때 절도있고 예의바른 동작을 보여준다. 어른과 아이의 양면을 갖고 있는 아이라고 하겠다. 아직 성장기라서 만날때마다 「또 키가 큰건가」라던가 「좀 어른스러워졌구나」하는 변화를 느끼게 된다. 다음에 만날때에는 어떻게 자랄지 항상 기대가 된다.

옷은 셜리 템플을 입는 경우가 많다. 본인이 골라 샀다는데 실로 잘 어울린다. 그 귀여움에 남녀를 불문하고 팬이 되어버린 사람이 속출한다는 이야기도 납득이 된다.

대학을 졸업한 후에는 키운 부모인 Microsoft의 산하가 아닌, IT 업계 전체에서 활약할 생각이라고 한다. 자세한 이야기는 듣지 못했지만 사과나 펭귄과 사이가 좋아질 수 있는 물건을 만들고 있다던가. 대체 어떤 걸 만들고 있는 걸까?

JavaScript

분쟁지역에서 태어난 17살의 여자아이. 항상 무표정하며, 타인과 이야기할 때에도 어딘가 먼 곳을 바라보고 있다는 인상을 주는 아이다.

Java와 이름이 비슷하지만 두사람 간에 혈연관계는 없다. 당시 Java라는 이름이 유행했기에 잘되길 바라는 마음에서 어머니가 붙였다고 한다. 본인은 자기 이름이 그다지 마음에 들지 않는듯, ECMA라는 펜네임을 써서 활동할 때도 있다. 드물게 「쟈포네스크」라는 별명으로 불릴 때가 있지만, 그건 더욱 마음에 들지 않는지 불러도 대놓고 무시한다.

그녀의 성장은 매우 불행했다. 태어나자마자 얼마 안되어 조국에서 분쟁이 발발. 철이 들기 전에 어머니는 타계하고, 아버지와도 생이별한다. 제멋대로인 어른들의 싸움에 말려드는 가운데, 그녀는 주위에 눌려쓰러지지 않도록 자신만의 껍질에 들어박혀 생활하는 방법을 익혔다. 비슷한 나이대의 여자애들이 나이에 맞춰 여러 스타일에 도전할때, 그녀는 주위의 말에 귀를 닫고 혼자 계속 껍질 안에 들어가 있었다. 그러지 않으면 살아가기 힘든 환경이었으니까.

그런 아이시절을 지내왔기에, 그녀의 말투, 생각, 사물을 파악하는 방식은 다른 아이들과는 조금 다르다. 그녀와 이야기를 한 사람들 중에는 어떻게 대해야할지 몰라 곤혹스러워하는 사람도 많다. 하지만, 심플하고 조리에 맞는 사고방식을 가진 아이이므로 「대하기 편하다」던가 「어떤 의미론 알기 쉽다」는 인상을 가지는 사람도 있다고 한다.

지금 그녀의 나라에서는 분쟁해결을 위한 노력과, 새롭게 살아가기 위한 개척등이 진행되고 있다. 어른들은 여전 제멋대로 싸움을 계속하고 있지만, 적어도 최근 몇년은 이전처럼 서로 미워하고 죽이는 전쟁은 일어나지 않고 있다

부흥이 시작된 조국에서 그녀는 지금 행복하게 살고 있을까? 언젠가 그녀가 그 나이대의 여자아이다운 웃음을 보여줄 날이 오게될 것인가?

후기

※생년월일은 1.0이 출시된 날을 기준으로 했습니다. C++, Python 같은 경우에는 이론도 있을거라 생각하지만, 여러사정으로 「가능한 어린 연령이 되게!」라는 방침으로 설정했습니다. 이해부탁드립니다.

※이번에는 7개 언어만을 소개했습니다만, 「이 언어도 내줘!」「이 언어는 이런 이미지」등의 의견, 요망은 Twitter로 부탁드립니다!

원문 - scope(exit) in C++11

사실 매우 간단하므로 원문을 보시면 금방 아실거라고 생각합니다만, D 언어의 scope(exit)를 C++11의 람다와 auto를 이용하여 구현한 것입니다. BOOST에도 비슷한 것이 있지만 C++11의 기능을 이용하여 더 쉽고 간단하네요.

처음에는 std::function을 사용했지만, std::function이 꽤나 느리고(RTTI를 사용하기 때문이라고 하는군요), 템플릿 인수를 넣어줘야 하기 때문에(원문에는 없었지만 VC++10에서는 그러면 컴파일이 안되더라는...) 대신 템플릿을 이용한 것을 추천합니다.

template<typename F>
class ScopeExit
{
public:
     ScopeExit(F f) : m_f(f) {}
     ~ScopeExit() { m_f(); }

private:
     F m_f;
};

생성자에서 함수를 저장했다가 소멸자에서 호출하는, 더이상 할 말이 없을 정도로 간단한 클래스입니다. 여기서 더 간단히 쓰기 위해서 매크로와 헬퍼 함수를 추가합니다

// AutoScope 객체를 생성하기 위한 헬퍼
template<typename F>
ScopeExit<F> MakeScopeExit(F f)
{
     return ScopeExit<F>(f);
};

// 한번더 거치지 않으면 ScopeExit___LINE__이라는 이름의 변수가 생성됨
#define STRING_JOIN2(arg1, arg2)          DO_STRING_JOIN2(arg1, arg2)
#define DO_STRING_JOIN2(arg1,arg2)     arg1 ## arg2
#define MAKE_SCOPE(code)\
     auto STRING_JOIN2(ScopeExit_, __LINE__) = MakeScopeExit([&]()(code;))

MAKE_SCOPE 매크로를 사용하여 코드를 적어주면, 'ScopeExit_행번'이라는 이름의 ScopeExit 객체가 생성됩니다. __LINE__을 이용하므로 같은 행에 두 번 이상쓸 수는 없습니다만... 아마 그렇게 쓰는 분은 안계실 거라고 믿겠습니다.
원문에서는 캡쳐시 값으로 넘기고 있는데... 일단 여기서는 참조로 넘기고 있습니다. 적당히 취향에 맞춰서 바꾸면 될 듯 하네요(리플에서도 싸우고 있...)

사용 예시는 다음과 같습니다.

class Test
{
public:
     Test() { std::cout << "Test class constructed" << std::endl; }
     ~Test() { std::cout << "Test class destructed" << std::endl; }
};

int main()
{
     {
          Test* test = new Test;
          SCOPE_EXIT(delete test);
     }
     getchar();
     return 0;
}


+ Recent posts