2015/02/04

Perl 6를 슬슬 써보자.

Perl창시자 Larry Wall이 FOSDEM 2015Get ready to party! 라는 세션에서 2015년 9월 자신의 생일까지 Perl6의 베타판 12월25일 크리스마스에 정식판을 내놓는다고 선언했다.

그동안 Perl6는 10년이 넘도록 정식안정 버젼이 나오지 않아 프로그래밍언어계의 duke nukem forever라는 조롱을 듣기도 하고 언제 나오나요?라는 물음에는 Larry Wall은 크리스마스(몇년도 크리스마스인지는 특정하지 않음)에 나옵니다. 하는 농담으로 넘어가곤 했는데. 이번에는 딱 찝어서 2015년 크리스마스에 정식버젼을 내놓는다고 선언을 함으로써 더 이상 미룰 수 없게 되었다. 그 배경에는 내부적으로 개발수준이 프로덕션레벨에 근접했다는 자신감이 있었기 때문이 아닌가 생각된다.

다가올 Perl6를 대비해서 슬슬 테스트해보면서 써보려면 다음과 같은 과정을 거치면 쉽다.

perlbrew 같이 perl버젼 메니저 역할을 해주는 rakudobrew를 다음과 같은 과정으로 설치한다.

$ git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew

그리고 .bashrc 같은 쉘초기 설정 파일에 다음과 같은 라인을 추가하고 쉘을 재시작해준다.

export PATH=~/.rakudobrew/bin:$PATH

그 다음

$ rakudobrew build moar

로 moar VM기반으로 rakudo perl6를 설치한다.
(현재 Perl6의 기반VM은 최초의 구현체인 Parrot 말고도 JVM기반과 Perl6객체에
최적화된 moarvm 3종류가 지원되고 있다.)

그 다음 아래 명령으로 Perl6 모듈관리 명령인 panda를 설치한다.

$ rakudobrew build-panda

이제 Perl6를 사용할 준비가 되었다. 동작하는지 실행해보자!
$ perl6 -e 'say "Hello, World"'
Hello, World

$ perl6 -e '([+] 1..1000).say'
500500
 
잘된다! Perl6는 요즘 Node.js쪽에서도 HOT한 것 같은 Promise, Future같은것도 지원하니 아래의 링크들을 보면서 참고해서 테스트해 보면 될듯하다.



*Perl6 관련 볼만한 링크몇개

Learn Y in X Minutes post for Perl 6
http://learnxinyminutes.com/docs/perl6/

Getting beyond static vs. dynamic
http://jnthn.net/papers/2015-fosdem-static-dynamic.pdf

Adventures in Perl 6 Asynchrony
http://jnthn.net/papers/2014-yapceu-async.pdf

Perl 6 For Mere Mortals
http://www.slideshare.net/Ovid/perl-6-for-mere-mortals