어떤 절망
병특생활의 남은 기간을 계산하기 위해서 만들었던 웹 용 progress-bar 가 있다. 여기에 모종의 데이터를 넣어보니,
이런게 나오는 구나. Firefox 확장 기능으로 Bush Counter가 있었는데, 이걸 만들던 제작자의 마음을 조금은 이해하게 된듯도. 연구실 선배가 얘기했던 해외 취업 얘기가 굉장히 솔깃해지는 중이다. 남은 시간이 너무 길구나 너무 길어…
단순성, 편안함
Psyco 얘기를 하면서 언급했던 ProjectEuler를 이번 주에 좀 했는데 — 퍼즐 맞추다 잘 안되면 오일러, 그러다 안되면 퍼즐 … 의 반복 — 이번엔 python이 아니라 C++로 진행하고 있다. 근데 정말 놀라운 사실은(…), 내가 풀지 못한/혹은 1년 새 추가된 약 40% 의 문제들에 다시 도전 중인 상태인데, 이 문제들 대부분이 큰 수를 다룰 것을 요구하지 않는다.
정확히 말하면, 64 bit integer 정도면 충분히 표현가능한 수만 다룰 수 있으면 되기 때문에 그냥 C++로 해보는 중이다 — 사용 가능한 개인용 컴퓨터 중 한 대 빼고는 다 64bit 머신/컴파일러가 있어서 도구 자체의 문제는 없다… ((64bit 정수는 부호없이 1844,6744,0737,0955,1615 까지 표현 가능하고, 프로젝트 오일러에서 다루는 범위가 대략 10^8~10^10 정도면 대충 떡을치기 때문에 32bit으론 가끔 아슬아슬하지만 64bit에선 문제가 없다 정도의 느낌))
C++ 자체도 알고리즘을 표현할 때는 그리 복잡한 표현이 나올게 없고, python 보다 불편한 점은 좀 엉뚱한 곳에 있더라.
- list 표현식 — [ x**2 for x in range( 1, 1000 + 1 ) ] 하는 식의 것이라거나
- 타입 선언이 없는 것
- print 구문의 편함 + string.join() 구문 ((근데 print 문은 Python3000이라고 흔히 일컫는 Python 3.0 에서 다른 구문으로 대체된다고 한다. 내가 이 변화를 제대로 추적하지 못하고 있었는데 누가 설명 좀(…) ))
정도가 좀 불편했고, 나머지는 의외로 별거 없었다(…).
기본적인 자료구조 — vector, list, map (or hash or dictionary) — 는 어차피 양 쪽 언어에 기본으로 구현되어 있어서 알고리즘 문제 푸는데는 큰 차이가 없는것 뿐인가. 오히려 오래써서 편안한 C++이 더 좋을 때도(…). 그래도 타입 선언 없는 거라거나 duck-typing 같은게 주는 단순함은 python 쓸 때의 기억이 좀 부럽긴하다.
어디에서 본 것인지 정확히 기억 안나지만 CLR의 DLR 쪽에서 키워드 뺀 VB 얘기를 했던게 좀 떠오르던데 ((이거 출처가 정말 궁굼한데 -_-;; )) , 의외로 타입 같은게 서로 잘 아는 몇 명이 같은 프로그램을 짜는덴 불편한 — 그러니까 제한을 가하는 — 요소라는 느낌이 든다.
해외취업 좋지요…언어의 장벽만 없으면…^^;;; 저도 함 생각중이고…약간의 advice는 얻어봤는데… 일단 일하는 환경은 많이 좋을테지만, 아무래도 한국인은 대한민국이 좋다보니 -_-;;;
“모종의 데이터” 배후세력을 생각하면… 또 해외취업 준비를 열씨미 해야겠다는 생각이 더 많이 들구요. 그렇네요 ^^;
뭐 꼭 나가겠다는건 아니지만 여기에 희망이 줄어든다는 점에선 이뭐