컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, January 03, 2006

[Perl] 펄의 매혹


나를 아는 사람이라면 C를 쓰던 내가 왜 갑자기 펄을 운위하는지 의아해질 수도 있다. 내가 펄을 쓰지 않았던 주된 이유는 Win32용 펄이 그동안 없었기 때문이다. ActivePerl이 있는 지금은 사정이 다르다. 펄은 항상 오픈소스였지만 랭귀지라는 것이 개인이 포팅해서 쓸 수 있는 간단한 것은 아니다.

펄은 문자열을 다루는 데에 있어 최강의 언어다. 주로 문자열을 다루는 일을 하는 나로서는 반가운 일이 아닐 수 없다.* 좀 과장되게 말하자면 천군만마를 얻은 듯한 기분이다. C로는 다루기 어렵거나 번거로워서 오래도록 미루어 왔던 작업들을 한꺼번에 해치웠었다.

* 요즘의 프로그래밍이라는 것이 결국은 문자열 아니면 멀티미디어를 다루는 일이다. 컴퓨터 초창기와 달리 숫자를 다루는 일의 비중은 이미 낮아져 있다. (이것은 내 말이 아니라 "Learning Perl" 속에 있는 구절이다.)

Python이 그리 좋다는 이야기를 듣고 그것을 한 번 사용해 볼까 하는 생각도 해보았었다. 그러나 나에게는 맞지 않았다. 펄로는 서너 줄의 코드로 할 수 있는 작업도 파이썬에서는 거의 한 페이지에 가깝도록 장황하게 코딩을 해야 했다. 그리고 파이썬은 유닉스와 C의 전통과는 별로 관계가 없어 보였고 파스칼 쪽을 닮아 있었다. 네덜란드의 수학자가 개발한 언어라서 그런 듯하다. C에 익숙해 있던 나에게는 상당한 부담이 되었다. 반면 펄은 C와 비교적 유사한 문법을 가지고 있어 쉽게 다룰 수 있었다. 더구나 펄은 유닉스/리눅스 시스템의 일부나 다름이 없다. 대체로 시스템에 기본적으로 설치되어 있다. 즉 펄을 공부하는 것은 유닉스/리눅스를 공부하는 것이나 마찬가지다.

펄의 매력이라면 코드에서--주로 펄의 극도로 함축적인 문법에서--오히려 재미와 휴머니즘이 발견된다는 것이다. 이유 없이 함축적인 것은 아니고, 펄의 창시자인 래리 월 氏가 주창하는 '게으름의 미학'에 기인하는 것이다. 타이핑을 적게 하고도 많은 일을 할 수 있는 것, 프로그래머의 삶에 여유를 주고 그리하여 결국 좀더 창조적인 일에 시간을 투자할 수 있도록 하는 것 그것이다.

펄의 가장 좋은 점은 무료라는 것이다(물론 파이썬, 루비 등도 무료다). 거금을 주고 개발 도구를 구입하지 않아도, 펄은 회사나 개인이나 어떤 목적으로든 마음대로 쓸 수가 있다.

펄의 반갑지 않은 측면도 있었다. 펄은 오랜 역사를 가진 데다 주로 실무에서 사용되어 왔기에 문법의 내력이 아주 복잡다단했다. 펄 관련 서적들(펄의 명저들은 거의 모두 O'Reilly 출판사에서 나온다)을 읽다가 몇 번이나 포기한 적도 있었다. 문법이 대단히 복잡했고 또한 거기에는 아주 많은 문법적 지름길들이 있어서 선택의 고통 역시 뒤따랐다. 그러나 펄에는 중독성 같은 것이 있는 모양이어서, 다른 언어로 돌아가는 것은 힘들었다.

예전에는 CGI로 펄이 각광을 받았지만 PHP가 나온 뒤로 펄은 인터넷 세계에서 조금씩 잊혀져 가고 있다. 그런데 요즘에는 생물 정보학 (Bioinformatics: 컴퓨터를 이용하여 '유전자 분석', '신약 개발' 등을 하는 학문 분야)에서 펄이 사용되는 것 같다. 생명체의 유전자 역시 "AGATGGCGGCGCTGAGGGGTCTTGGGGGCTCTAGGCCGGCCACCTACTGG" 이런 식으로 표현될 수 있는 하나의 문자열인 것이고 문자열 취급 전문 언어인 펄에게 있어 아주 적합한 분야다.

"Learning Perl" 에 이런 문장이 있다. "처음에는 펄이 필요해서 쓰지만 나중에는 펄이 좋아서 쓰게 된다"고. 내가 바로 꼭 그런 경우다.

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top