posted by 아겔-_- 2009.01.31 23:04
저는 FactorLanguage을 좋아합니다. (http://en.wikipedia.org/wiki/Factor_(programming_language))

실용적이고 제가 원하는것을 모두 갖춘것 같은 언어라고 생각해요. 커먼리습은 너무 오래되고 커지기만 한 느낌이고(물론, 언어자체의 설계를 뒤집을 필요가 전혀없으니까 그렇긴해도, 구현이나 개발환경이 그런게 사실 윈도나 런곳에서는 좀 제한적이잖아요?), 스킴은 뭔가 구현마다 너무 큰 갭이 있는것 같고요. (다른분들보다 제가 아둔해서 그렇게 느끼는걸수도 있겠죠. ^^;)

커먼리습 같은 네이티브 컴파일러, 파일/이미지기반의 개발, ffi도 괜찮고, 이미 다른 언어에서 구현하기 힘들정도로 멋진 도구들을 많이 갖추고 있고, 그리고 무엇보다 심플하고 완전한 언어 그자체로부터 나오는 강력한 표현력은 리습의 s-expression에서 느낀것보다 훨씬 신선하게 저에게 충격을 줬었습니다. 제게 있어서 리습은 제 생각하는 방법을 바꿔버린 언어이고, Factor은 생각하는 방법을 다시 바꾼 언어죠.

하여튼 제게 있어서는 다른 리습해커들에게 커먼리습이 갖는것처럼 뭔가 완전하고 아름다운 제 도구인 FactorLanguage에서 좀 싫어하는건 사실 개발환경이었어요.

익숙해지기 힘들고, 거추장스럽고, 마우스에 손이 자주가야하고, 그리고 무엇보다 아직은 한글입력/출력이 안되는! ㅜ.ㅜ




그런데 좋은 소식이 있었더라구요.
언제나 팩터쪽은 그런식(!!!)이듯이 순식간에 엄청난 물건이!

FUEL(Factor's Ultimate Emacs Library)이라는 겸손한 이름(;;;)의 Emacs모드였어요.

원래 팩터를 개발한 슬라바 아저씨(Slava Pestov, http://factor-language.blogspot.com/)가 jEdit을 개발한 사람이어서 그런지 jEdit쪽 바인딩이나 그런건 나름 괜찮았었는데, jEdit자체가 요즘엔 좀 거시기한 에디터가 되고 그랬던 와중에, 기존에 팩터에서 사용가능한 vim, emacs 모드에서 이맥스 모드였던 "factor.el"이 발전하여 SLIME(http://common-lisp.net/project/slime/)처럼 막강한 개발환경이 되었어요!

관련 블로그 포스팅 : http://factor-language.blogspot.com/2009/01/screencast-editing-factor-code-with.html


하악하악... 설정도 그냥 이맥스랑 팩터만 설치하고, 이맥스에서 fu.el을 load-file하면 끝!

;;; ~/.emacs에서...
(load-file "d:/tools/factor/misc/fuel/fu.el")

그리고 "M-x run-factor"하고 잠시 (처음 시작할때는 좀 많이 기둘려야 해용 ㅜ.ㅜ) SLIME-REPL처럼 사랑스러운 scratchpad을 만날수있답니다!

팩터 파일을 편집하고, 바로 REPL측에 컴파일/적재하고, 이를 테스트하고, 작성하면서 관련된 레퍼런스를 즉시 검색하고(팩터은 코드와 함께 문서도 적재되서 언제나 실행시간에 관련 문서를 바로바로 찾아볼수있답니다. ^^), 코드를 "리-팩터링"한다던지 하는 개발환경으로서 SLIME 못지 않은 환경을 간단히 갖출수있었어요.
(심지어 이클립스와 같은 자바IDE에서나 보던 'Organize Imports'와 같은 "fuel-update-usings"같은것까지 있더라구요.)

자세한 /뽀대/는 다음 스크린캐스트 : http://blip.tv/file/1658806


저에게는 FUEL이 참 설레이는 환경이 되었어요. *^^*




ps. 처음 "M-x run-factor"하면 많이 느린데요, 이유는 필요한 vocab(모듈이랑 비슷한 개념이에요)을 vm에 적재하고, 최적화 컴파일러를 거쳐서 컴파일하기 때문인데요, 빠르게 하시려면 한번 그렇게 적재하신 다음에 scratchpad에서 "save"을 쳐서, 이미지를 업데이트 하시면 다음번 "run-factor'부터는 빠르게 올라온답니다. 스몰톡이나 커먼리습처럼 파일기반으로 개발이 가능하면서도, vm의 현재 상태를 이미지로 만들어서 deploy하거나 개발할때 편리하게 이용할수있어요. ^^
신고

'삽질+돈되는짓 > FactorLanguage' 카테고리의 다른 글

팩터는 어떤 언어임까?  (0) 2009.02.13
Why "Factor"?  (0) 2009.02.13
io.encodings.korean을 완성했습니다.  (2) 2009.02.12
factor-kr을 시작했습니다.  (0) 2009.02.08
ProjectEuler 풀면서 한컷!  (0) 2009.02.01
FactorLanguage을 위한 SLIME?  (2) 2009.01.31

티스토리 툴바