어렸을적 즐겨 보던 만화잡지 보물섬의 독자 만화란에 이런 만화가 있었다
선생님: 여러분들은 이다음 어른이 되어서 무엇이 되고 싶은가요?
학생1: 저는 발명가가 되어서 버튼만 누르면 숙제를 해 주는 기계를 만들고 싶어요.
학생2: 저는 발명가가 되어서 버튼만 누르면 숙제를 해 주는 기계의 버튼을 누르는 기계를 만들고 싶어요.
시덥잖은 농담처럼 들리기도 하는 이 유머에는 컴퓨터공학의 중요한 요소가 들어있다. 상당수의 새로운 소프트웨어가 하는 일은 기존 시스템의 버튼을 자동으로 눌러 주는 데에 있다. 압축프로그램의 탐색기 오른쪽 버튼 메뉴는 프로그램 실행 절차를 간소화하고, 자동 리팩토링 IDE나 OR-매핑 라이브러리는 개발자의 타이핑 수고를 줄여준다. 또한 향상된 검색엔진도 적절한 검색결과를 찾기 위해 누르는 버튼의 수를 줄여 준다고 볼 수도 있다.
'버튼을 누르는 기계'인 소프트웨어는 사용 편의성과 함께 또다른 효과를 낳는다. 기존 기계의 인터페이스를 더 간편한 인터페이스로 감싸기 때문에 기존 기술이 블랙박스화 되는 것이 그것이다. 좋은 소프트웨어는 기존 기술을 모르는 사람도 다룰 수 있는 소프트웨어이다. 전문가가 많은 노력을 들여 하던 것이 초보자도 간단한 조작으로 해결할 수 있게 되는 일은 컴퓨터 세계에서는 늘상 일어나는 일이다.
지금껏 노력해서 배워온 것들이 블랙박스 안에 지속적으로 담겨서 몰라도 그만인 것들이 되고 있다면? 소프트웨어에 지금까지의 인생을 걸어온 사람 중 하나로서 정보기술의 이런 속성은 때로는 공허함에 사로잡히게 한다. 변화에 한발짝 일찍 적응할 수 있다는 대가로 파도가 밀려오는 바닷가에서 모래성을 쌓아야 하는 것이 소프트웨어 장인의 운명이다. 눈 깜짝할 사이에 따라잡히고 마는 그 한 발짝. 그때를 위해 또다른 한 발짝을 딛어야 하는 숨가쁜 프론티어의 운명을 나는 짊어지고 있다.