난 파이썬이 내 첫 언어였다.

개좢밥시절에는 타입이 있는 c, java에서 타입이 주는 이점을 못랐기 때문에 그것이 거추장스럽고 불편하게만 느껴졌다. 타입이 주는 이점과 안정성에 대해서 깊게 생각해본 적이 없는 것 같다.

지금도 좢밥이긴 마찬가지지만, 개좢밥은 면했다고 자위하고 있는 지금 시점에서 다시 이걸 생각해보자면... 지금은 오히려 타입이 있는 것이 편하고 맘이 놓인다. 이렇게 생각하게 된 이유에 대해 생각해봤는데 크게 봐서는 아래 두가지 인 듯 싶다.

1. Control flow 레벨에서 IDE 도움을 받을 수 있다.
2. 컴파일 타임에 문제를 인식할 수 있다.

자동완성이야 뭐 네임스페이스만 읽을 수 있으면, 파이썬에서도 잘 되는 것 같다. 그런데, 플로우를 읽어서 reachable한 코드인지 아닌지 등을 판단해주는 건 타입이 있는 언어에서만 가능할 것이라고 생각한다. 나도 이 부분은 자세한 디테일은 모르니까 아는 사람 있으면 댓달아주면 땡큐.

두번째는 컴파일 타임에 문제를 알 수 있다는 점인데, js나 python같은 언어는 이런게 built-in이 아니다. 30분 동안 데이터를 읽어서 돌아가야하는 코든데, 30분 후에 데이터를 다 읽고 오타나서 틀린 경우들이 IDE를 쓰면서도 간간히 발생한다. 코드가 돌기 전에 컴파일러랑 싸우는 거랑 코드가 돌고나서 고치는 거랑은 천지차이라는 생각이 든다.


인터프리터 기반 언어의 디버깅도 경험하다보면 그것만의 짬과 기술이 있다는 것을 배우게 된다. 이것도 뭐 하다보면 늘긴하는 거 같긴하다. 근데... 결론적으로 코딩의 편의성 측면에서는 타입이 있는 것이 훨 편하다고 생각한다.