엄범

 

언어는 그냥 도구일 뿐인가? (라고 얘기 할 만큼 언어 보다는 다른 능력치가 중요한가?)

아니면 언어를 잘 다루는게 무엇보다도 중요한가?

 

누가 최근에 물어보길래... 생각을 정리해 보았다.

사실 얼마나 중요하냐. 매우 중요하냐. 라는 것도 모호한 단위이니까... 어느쪽 스탠스에 가까운가? 정도로 받아들이면 되겠다.

 

 

우선 여기서 말하는 '언어'가 어디까지를 의미하는건지, 그 바운더리를 명확하게 할 필요가 있다.

어떤 언어를 다룬다고 하면...

  1. 우선 그 언어의 문법
  2. 빌트인 함수나 라이브러리
  3. 컴파일러, 인터프리터, 생태계 (e.g., JVM, npm, pip)
  4. 그 언어의 철학과 스타일(e.g., pythonic)
  5. 패러다임(e.g., 객체지향, 함수형)

이 정도 까지 떠올릴 수 있을 것 같다.

어떤 언어를 잘 다룬다고 얘기할 때, 위 바운더리 중 어디까지를 포함하여 의미하는 것인지는 사람 마다, 또 상황 마다 다를 것이다.

 

나는 [ 언어를 잘 다룬다. = 1,2,3,4 ] 까지를 포함한 의미라고 생각한다.

 

그 밖의 5.패러다임이나, 패러다임을 사용한 설계는 "언어를 잘 다룬다." 라기 보다는 "그 패러다임을 잘 이해하고 있다." 가 더 어울리는 말이지 않을까.

 

그러면 언어를 잘 다룬다는 것 얼마나 중요할까?

(비유가 그닥 찰지지 않을 지도 모르지만...)

우리는 요리사고, 전자렌지를 사용해 요리를 한다고 생각해보자.

 

"언어 지식이 중요하다"고 말하는건, "전자렌지의 모든 기능을 다 아는 것이 중요하다." 와 비슷한 느낌으로 받아들일 수 있다.

"전자렌지 기능을 모르는 사람 대비 버튼 하나로 간단하게 작업을 끝낼 수 있다." 같은 느낌인거지.

근데, 사실 이 것 보다는 "전자렌지를 어떻게 응용해서 뭘 만들거냐." 가 더 중요하다.

  • 실력있는 요리사이고 다양한 레시피를 알고 있으며 응용에 뛰어나지만, 전자렌지에는 익숙치 않은 사람과
  • 실력없는 요리사이며 레시피도 몇 개 모르고 응용할 줄도 모르지만, 전자렌지의 모든 기능을 다 아는 사람.

둘 중 누구한테서 맛있는 요리, 우아한 요리가 나올지는 명확하다. 베이스가 어디 가겠나? (전자렌지 잘못 써서 다 태워버리지만 않는다면...)

 

정리하면, 언어만 잘 다루는 것 보다는 언어를 응용해서 만들어낼 결과물. 그 결과물을 잘 만드는 능력이 더 중요하다고 본다.

 

물론 전자렌지라는 조리기구의 특성을 잘 이해한다면 더 맛있는 요리를 할 수 있는 것 처럼

언어를 잘 다루면 결과물의 퀄리티도 좋아질 수 있겠지만, 다른 부분이 더 중요하다는 것.

 

그리고 이러한 스탠스를 압축하여 조금 강하게 발언하면, "언어는 그냥 도구다." 정도로 얘기할 수도 있을 것 같다.