'공상'에 해당되는 글 1건

  1. Tcl에 내가 왜 끌렸을까... 2013.05.20

Tcl에 내가 왜 끌렸을까...Tcl에 내가 왜 끌렸을까...

Posted at 2013.05.20 00:24 | Posted in 공상

Tcl을 접한지는 6개월. 하지만 실제로 써본 적은 거의 없다.

Apkz정도만 그걸로 짜려고 했는데 그걸 중단해 버렸으니.


근데 그 당시엔 이 언어가 되게 끌렸는데 지금에 와선 이유가 생각날 듯 말 듯 하다.

에버노트 좀 뒤지면 알 수 있을지도 모르겠지만. (아.. 지식의 리뷰를 너무 소홀히 하고 있어. 게으르다는 증거다 ㅡㅡ;)


지금 다시 떠올려 봤고, 다음에 다시 볼 때 어떤 느낌이 드는지 알기 위해 기록해보려고 한다.

Tcl에서 가장 강렬한 인상은 문법이 무진장 심플하다는 점이었다.

오리지날 Tcl에서는 자료구조 = 문자열. 가히 파격적이지 않은가. (지금은 성능과의 타협을 위해 리스트는 순수 문자열로 다루지는 않는다고 하는 것 같다)


문법은 이 링크 한 페이지에 나온 것이 거의 전부이니... 그 당시엔 무진장 신선했다.

(하지만 그땐 1%의 문법만 봤을 뿐 99%의 라이브러리를 모르고 낭패를 본 느낌이랄까 ㄱ-)

간단히 말하자면 연산자조차 라이브러리로 빼놨다는 느낌이기에. 굉장히 막 나가는 언어? ㅋㅋ

Tcl은 if문 조차 '만들고 싶으면 만들어서 써'라는 느낌이었고.. 하지만 이 부분은 지금 딱히 끌리는 게 없네.

하튼 무지 자유도가 높은 언어였다. 


그 높은 자유도 중에... 끌렸던 부분 또 하나가 '데이터와 코드의 경계가 모호하다'였달까.

코드 = 스트링 = 데이터라는 재밌는 등식이 성립하는 언어라고 느꼈다.

이걸로 옛날에 생각했던 게, if문마다 변수에 코드를 추가해서 마지막에 if문 없는 코드를 실행시킨다는 것이었다. 하지만 굳이 쓸 일이 없었다는 게 함정이었을까.

또 이건 eval명령어를 지원하는 스크립트면 모두 가능할 거라고 지금에 와선 생각이 든다.

심지어 C++코드도 억지 좀 쓰면 데이터 -> 코드가 가능은 하니까...


Tcl이 자유도가 높다지만 if, for, string 등 이미 정해진 걸 바꿔쓸리도 없고, proc정도는 바꿔볼 만한 것 같지만서도

실제로 바꿔보면 Tk에서 에러가 삑삑... 쉽지가 않다.


그래도 배치, 쉘 스크립트의 군살이 빠진 형태라고 생각하면 괜찮은 것 같지만서도... 실제로는 사용이 쉽지가 않은 이유가 뭘까나. 지금 당장 Apkz말이다.


괜찮은 IDE가 있고, Autocomplete기능으로 이미 만든 부분의 함수를 볼 수라도 있게 한다면 좋을 텐데 말이지... 오랜만에 보니까 이건 완전히 기억력 테스트다. ㅡㅡ; 1000줄도 안 되는 코드가 이러한데 tkcon(6500줄 단일파일)같은 경우는 쇼크일 뿐이다.


+ 데이터를 다루기 어렵다. 죄다 전역걸어버리면 좋겠지만 그건 스크립트 일때의 얘기지... 배열이 구조체의 역할을 하지만 그걸 직접 전달하지 못하고 한 단계를 거치는 게 귀찮다.

객체지향을 쓰려면 TclOO를 써야 하는데(언어 창시자가 객체지향 넣기를 싫어했댄다...) 그럼에도 인스턴스 변수를 쓸 때마다 variable이라는 지정을 해줘야 한다... 짜증날만하지 않을까나? (IDE지원이 없어서 그런 걸까나)


뭔가 핵심을 비껴나가 언어를 쓰는 느낌이다. Tcl을 쓰려면 절차지향적으로 데이터의 흐름을 적게해서 써야하는 모양인데, 이제 슬슬 이 글이 공상란에 올라온 이유가 느껴지지 않는가. 뜬구름 잡는 느낌이란 얘기다.


내가 역량이 딸려서 그런 건가. 하여튼 고민이다. 장인은 도구 탓을 안 해야 한다지만 프로그래머는 도구를 잘 골라야 하는데 말이지. 콱 자바 써버릴까. 파이핑 고민은 안 해도 되는 것 같던데.

저작자 표시 비영리 동일 조건 변경 허락
신고

'공상' 카테고리의 다른 글

Tcl에 내가 왜 끌렸을까...  (0) 2013.05.20

티스토리 툴바