MS에서 Developer Assistant 플러그인이 이제 C++도 지원한다고 발표했다. Developer Assistant 뭐 이름 그대로 개발자 보조 도구 정도지만 그 녀석이 제공하는 기능을 보면 약간 섬뜩하기도 하다. 기본저인 컨셉은 알려진 접근 가능한 모든 소스 코드의 정보를 토대로 우리가 어떤 일을 Visual Studio에서 코딩하면 되는지 알려주겠다는 것이다. 거창하게 설명하면 이런데 좀 더 쉽게 말하자면 Visual Studio랑 크롬이랑 같이 쓰던거 Visual Studio만 쓰면 되도록 하주겠다는거다. 거기다 크롬에서 검색하는 것보다 좀 더 편하고, 유용하고, 카피하기 편하게 알려주겠다는 취지다.
크롬, 정확하게는 구글이 우리를 대신해서 코딩하기 시작한지는 제법 됐다. 최근에 들어온 한 신입 직원은 거침없이 "구글에 다 있잖아요"라는 이야기를 했었다. 사실 틀린 말은 아니다. 솔직히 까놓고 말해서 구글의 한계가 우리의 한계인 경우가 다반사다. 그런 지경에서 이제와 크롬 대신 그저 IDE에서 조금 편하게 조금 더 씹어먹기 좋게 결과를 보여주겠다는 것 뿐인데 뭐가 대수인가, 라고 생각할지도 모르겠다. 그런데 내가 나이가 들어서 그럴수도 있겠지만 막연한 느낌인데 마냥 좋아보이진 않는다.
내 프로그래머로 경력 초기에는 Visual Studio 버전이 6.0이었다. 지금 생각하면 아주 투박한 프로그램이었다. 거기다 윈도우의 온갖 구조체는 많은데 그놈에 IDE는 점(.)을 찍어도, 화살표를 붙여도(→) 제깍제깍 나에게 어떤 것들이 그 다음에 존재하는지를 알려주지를 않았다. 그 당시에도 Visual Basic은 인텔리센스가 광속이었다. 점을 찍기가 무섭게 너가 그럴줄 알았다는 듯이 목록이 떴었다. 하지만 C++은 달랐다. 마치 C++ 프로그래머는 모든 걸 다 외우라는 MS의 계시처럼 느껴졌다. 그래서 그 당시에 나는 흔한 신입 프로그래머들이 그러듯이 VisualAssist라는 도구를 사용했다. 어시스트를 설치하면 인텔리센스가 그나마 좀 똑똑해졌던 것이다. 게다가 파랑과 검정 밖에 없는 단조로운 Visual Studio의 문법 강조 기능도 훨씬 풍부한 색상으로 변했다.
나는 VisualAssist에 굉장히 만족했었고 내가 작업하는 어떤 환경이든 그걸 설치해서 사용했다. 하지만 회사라는 생태계는 그리 녹록치 않았다. 그시절 그런 툴을 달갑지 않게 바라보는 팀장님이 계셨던 것이다. 그분은 주구장창 나와 같은 프로그래머에게 비난의 화살을 보냈다. 그 편리함에 익숙해지다가 넌 아무것도 모르는 바보 프로그래머가 될 거라고 말이다. 그러면서 자신은 그런 도구 없이 vim, 아니 노트패드로 코딩해도 모든 것을 다 외워서 타이핑 할 수 있다는 이야기를 덧붙였다. 물론 팀장님은 나에게 그리 강력하게 말하진 않았다. 하지만 직속 학교 후배가 몇 분 회사에 있었는데 그 후배들에게는 학교때부터 엄청난 갈굼을 했다는 이야기를 전해들었다. 그때나 지금이나 나는 철학적으로 그 생각에 동의하지 않기에 그러거나 말거나 VisualAssist를 썼다. 그러다 2008 정도 부터는 Visual Studio IDE도 그럭저럭 괜찮은 인텔리센스를 보여줘서 굳이 외부 도구를 설치하진 않는다.
앞선 일화에서 내가 그 팀장님에게 동의하지 않았던 기본 전제는 그것이었다. 외워서 그것을 통째로 타이핑 할 수 있는 능력이 프로그래밍의 본질이 아니라는 것이다. 나는 그것보다는 그 근간에 흐르는 논리적 사고가 더 중요하다고 생각했다. 구조체 멤버를 외우는 것과 외우지 않는 것이 중요하지 않다. 하지만 그 구조체 멤버를 통해서 무엇을 할 수 있을지, 없을지를 판단하는 것이 더 중요하다고 생각했다. 물론 기본적인 사고 회로를 동작시키기 위해서 암기는 필수다. 아무것도 외우지 않고서는 어떠한 사고도 할 수 없을테니 말이다. 즉, 그 팀장님과 나의 결정적 견해 차이는 엄밀하게 말해서 필수적으로 암기해야 하는 것의 범위에 대한 차이였다고 볼 수 있겠다.
그랬던 내가 Developer Assistant를 보면서는 이제 꼰대가 되나보다, 라는 생각을 무척 많이 하게 됐다. 캡처 화면 중에 "How do I …"이란 창을 보고는 말이다. 이제는 프로그래머가 IDE에게 뭘 어떻게 해야 하는지를 물어봐야 하는 세상이 열리려는 순간인 것처럼 보였기 때문이다. 신입 프로그래머들은 그럴지도 모르겠다. 구글에서 검색하던 것이 조금 편리해졌을 뿐이라고. 물론 나는 지금 거기 동의하지만 뭔가 위험한 냄새가 나는 것을 감출 수는 없다. 내 경력 초기에 그 팀장님이 그랬던 것처럼 말이다. 너무 편리한 도구가 프로그래머들의 생각하는 법을 빼앗아갈까봐 두려운 것이다.
전화가 발명됐을 때 사람들은 그랬다. 이제 사람들은 마주보고 이야기하는 법을 까먹게 될거야. 이메일이 발명됐을 때 사람들은 그랬다. 이제 사람들은 서로 음성으로 대화하는 법을 까먹게 될거야. 메신저가 등장했을 때 사람들은 그랬다. 이제 사람들은 뭔가를 기다리는 법을 까먹게 될거야. 하지만 아직 우리는 살아남았고, 더 편리한 세상에서 살고 있다. Developer Assistant를 사용하는 지금의 프로그래머들이 10년 후에는 나랑 비슷한 글을 쓰고 있기를 바란다. 물론 아마도 그때 그들은 알파고에 대한 우려를 표명하고 있겠지만 말이다 ㅋㅋ~
여담이지만 앞선 기술의 진보에 대한 우려가 전혀 기우였던 것은 아니다. 우리는 살아남았지만 어느 정도 그 걱정이 반영된 세상에서 살고 있다. 지금 사람들은 과거 사람들보다 덜 마주보고 이야기하며, 덜 음성으로 대화하고, 덜 기다린다. 그리고 분야에 따라서는 완전히 우리의 기능을 마비시키고 있는 것들도 있다. 큰 누나는 후방 카메라가 없으면 후방 주차를 하지 못한다. 나는 네비게이션 없이는 낮선 장소를 정확하게 찾아갈 수 없다. 그리고 내 가족을 넘어서 우리 모두가 느끼고 있는 분명한 사실은 이제 더이상 그 누구도 전화번호를 기억하지 않는다는 사실이다. 예전에 2-30개씩은 외우고 다니던 것이랑은 정말 대조적이다. 우리는 기술의 혜택을 받았지만 동시에 일정 부분 기계가 대신해 주는 부분에 대해서는 불능 상태가 되고 있다. 그런 점에선 10년전 그 팀장님도 우리가 외우는 걸 양보하는 순간 생각하는 법까지 양보하게 될거라 생각한 것인지도 모르겠다.
언젠가 회사 부장님께서 운전은 장기적으로 승마와 같은 스포츠가 될 것이라는 이야기를 하셨다. 미래 세대는 지금 우리가 승마를 즐기는 것처럼 운전은 서킷에서나 하는 활동에 지나지 않을 것이라는 말씀이었다. 지나가는 농담처럼 한 말이었지만 나는 굉장히 통찰력 있는 이야기라고 생각했다. 또 아마도 그렇게 될 것 같은 느낌이다. 그런 점에서 우리가 기계가 대신해주는 모든 것을 포기했을 때 과연 우리는 무엇을 하고 있을지가 궁금해졌다. 우리 세대는 승마가 없어지고 운전이 생겼다면, 미래 세대는 운전이 없어지고 비행이 생길까? 지금 분위기로 봐서는 그럴 가능성은 별로 없어 보인다. 그저 월e의 한 장면처럼 모두 아무런 활동도 하지 않고 그저 주어진 삶을 사소한 쾌락으로 채우고 있을 것 같다는 느낌 밖에는…