Tools

Matthias Endler

도구

원문은 Matthias Endler님이 에 게재했습니다. 이 블로그 구독하기

내가 기억하는 한, 컴퓨터 과학계는 종교 전쟁 같은 플레임 전쟁에 시달려 왔다.

기술적인 주제를 두고 논쟁하는 건 건강한 일이 될 수 있지만, 플레임 전쟁은 그렇지 않다. 나는 진절머리가 난다. 사람들이 저마다 자기 작업 환경이 얼마나 더 좋고 빠르고 한지 늘어놓는 것도 지긋지긋하다. 뭐, 그러든가. 하지만 중요하지 않다. 장비는所 하는 역할이 조연에 불과하다. 프로그래밍을 하는 데 컴퓨터조차 필요하지 않다. 도널드 커누스는 메모장에 알고리즘을 썼고, 앨런 튜링은 종이 한 장에 최초의 체스 프로그램을 썼다. 그리고 그건 실제로 동작했다. 한번 이겨 봐라!

일반 사용자에게는 차선책만으로도 충분한 경우가 많다. 몇 달러만 들이면 웹 서핑, 채팅, 사진 정리, 문서 작성, 음악 감상, 영화 시청을 하기에 전혀 부족함 없는 훌륭한 하드웨어를 살 수 있다. Pentium IV에 256 MB RAM, 그리고 최신 운영체제(아마 공짜로 구할 수 있을 것이다)면 된다. 솔직히 말해 오래된 Commodore로도 그 대부분은 할 수 있다. 컴퓨터는 그런 일을 하기에 이미 오래전부터 충분히 성숙하고 안정적이었다. Farmville을 한다고 시스템을 업그레이드할 필요는 없다. 멀쩡히 잘 돌아가는 차를 굳이 새로 살 이유가 없는 것과 마찬가지다. 소프트웨어도 마찬가지다. 우리 중 많은 사람이 아직도 Office 2000이나 Photoshop 8, 심지어 VisiCalc를 쓰면서도 업그레이드해야겠다는 필요성을 느끼지 못한다.

전문가라고 해서 크게 다르지 않다. 물론 돈을 조금 더 쓰기는 하겠지만, 그래도 우리 하드웨어는 (제발 그랬으면 하듯이) 연봉에 비하면 터무니없이 싸다. 완벽한 것은 없지만 대부분은 충분히 괜찮다. 10년 전에 쓰던 그 컴파일러? 아직도 제 역할을 한다. 우리는 여전히 컴퓨터 석기 시대 언어들의 약간 변형된 후손들을 쓰고 있다. NASA에서 수치 연산을 하더라도 주 작업 환경은 텍스트 에디터나 IDE가 돌아가는 검은 상자에 불과하다.

나는 당신이 무슨 도구를 써서 일을 처리하든 신경 쓰지 않는다. 자신의 필요에 맞는 환경을 찾아 만족하며 쓰면 된다. Lemote Yeelong 넷북에서 Emacs를 쓰든(안녕, 리처드 스톨먼) 워크스테이션에서 Vim을 쓰든 본질은 같다. 쇳덩어리 위에서 돌아가는 텍스트 에디터일 뿐이다. Nano나 ed, TextMate를 쓴다고 더 못한 프로그래머가 되는 것도 아니다. 메모장도 충분히 잘 돌아간다. 파일을 불러오고, 저장하고, 그 사이를 편집하게 해준다. 빌 게이츠와 폴 앨런이 Altair용 BASIC 인터프리터를 만들 때 가졌던 것보다 훨씬 많은 기능이다. 마음에 드는 걸 찾았다면 그냥 계속 쓰라. 다만 논쟁은 시작하지 마라. 그럴 시간조차 아깝다.

트롤에게 먹이를 주지 마라. 소프트웨어에 관해서는 FreeBSD 대 Linux 대 Windows 대 엄마 같은 진부한 클리셰에 빠지지 마라. 대신 당신의 코드에 대해 이야기하라. 당신의 문제 해결 능력을 보자. 좀 더 실용적으로 가자.

말은 쉽다. 코드를 보여줘. - Linus Torvalds

당신이 어떤 프로그래밍 언어를 쓰든 나는 신경 쓰지 않는다. Java? 좋다. Visual Basic? 훌륭하다! Scala, Cobol, PHP, C++? 모두 괜찮다. 어셈블러로 쓰든 lolcode로 쓰든 상관없다. 언어 X에 기능 Y가 없다고 불평하지 마라. 라이브러리를 만들거나 다른 것을 쓰면 된다. JavaScript가 장난감 언어라고 말하는 것도 그만둬라. 그저 당신의 필요에 맞지 않을 뿐이다. 대신 당신의 Lisp 어드벤처 게임을 보여줘라. Brainfuck 인터프리터를 작성해 봐라. 뭔가 해봐라. 앞으로 나아가라.

PHP에 관해서는 nir가 Hacker News에 이렇게 썼다:

누구나 PHP에 대해 비꼬는 댓글은 쓸 수 있다. PHP가 미친 영향력에 비견될 만한 코드를 써 본 사람은 거의 없다.

내가 PHP 문법을 좋아한다고 고백하면 의자에서 떨어질 텐가? 좋다, 거친 부분이 있긴 하다(정말 $ 기호가 필요한가?) 하지만 더 중요한 건 그걸로 내가 얼마나 많은 일을 해낼 수 있느냐다. PHP는 오랫동안 즉흥적이고 일회성 스크립트를 위한 나의 주력 언어였다. 조금 못생기긴 했지만 어떤 서버에서든 돌아가고 엄청난 양의 내장 기능을 제공한다. 빠른 프로토타이핑이나 이것저것을 이어 붙이는 데는 최고다. 사실 소프트웨어를 만들 때 당신이 추구해야 할 것은 꽤 괜찮은 소프트웨어를 만드는 것이고, 정말로 달성해야 할 것은 사용자를 만족시킬 만큼 충분히 좋은 소프트웨어를 만드는 것이다.

Zed A. Shaw는 Learn Python the hard way의 후기에서 이를 아주 잘 표현했다.

나는 아주 오랫동안 프로그래밍을 해왔다. 너무 오래 해서 이제는 엄청나게 지루할 정도다. 이 책을 쓸 당시 나는 20개 정도의 프로그래밍 언어를 알고 있었고, 얼마나 괴상한 언어냐에 따라 하루에서 일주일이면 새로운 언어를 배울 수 있었다. 하지만 결국 이건 그냥 지루해졌고 더 이상 흥미를 끌지 못했다. 이 학습의 여정 끝에 내가 깨달은 것은 언어가 중요한 게 아니라는 것, 중요한 건 그걸로 무엇을 하느냐다. 사실 나는 항상 그걸 알고 있었지만, 언어에 정신이 팔려 주기적으로 잊곤 했다. 당신이 배우고 사용하는 프로그래밍 언어는 중요하지 않다. 프로그래밍 언어를 둘러싼 종교에 빠지지 마라. 그것은 당신이 흥미로운 일을 하기 위한 도구라는 본래 목적에서 눈을 멀게 할 뿐이다.

어떤 도구에든 감정적으로 매달리지 마라. iPhone은 — 실망시켜서 미안하지만 — 그냥 전화기일 뿐이다. 마법 같은 건 없다. “다르게 생각하라” 같은 것도 없다. “하지만 그건 악이야! 오픈 소스가 아니잖아”라고 어딘가에서 외치는 소리가 들린다. 뭐, Android는 구글이 모바일 플랫폼을 빠르게 개발해야 했기 때문에 존재할 뿐이다. 그저 비즈니스일 뿐이다. 그 뒤에 도덕 같은 건 없다. 구글은 마이크로소프트나 애플과 다를 바 없는 또 하나의 회사일 뿐이다.

내 MacBook은 든든한 도구 역할을 해준다. 하지만 더 “나은” 무언가가 나타나면 기꺼이 걷어찰 것이다. 나는 5년 동안 쓰던 Firefox를 Chrome이 더 빠르다는 이유로 버렸고, 그에 걸맞은 후계자를 찾으면 Chrome도 버릴 것이다. Vim은 내 생각에 꽤 괜찮다고 생각하지만 더 빠르게 할 수 있는 방법이 있다면 미련 없이 버릴 것이다. 대신 손을 더럽혀 문제를 고치거나 뭔가 새로운 것을 만들어라.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글