프로그래밍 오리엔테이션

어떤 언어를 배워야 할까?

세상에는 정말 많은 언어가 있습니다. 필자도 모든 언어를 알지 못합니다. 어떤 언어는 다른 언어를 만듭니다. 이를테면 C는 많은 언어들의 아버지입니다. 많은 언어들이 C로 만들어져 있습니다. 또 어떤 언어는 대체 불가합니다. 이를테면 웹페이지를 만드는 언어는 HTML,CSS,JavaScript 밖에 없습니다. 브라우저는 이러한 언어 외에는 어떠한 언어의 문법도 이해하지 못합니다. 또 어떤 언어는 대체 가능합니다. 예를들어 데이터베이스와 웹서버를 중계해주는 역할을 하는 PHP는 Java, Python, C, C++, Ruby, Perl, JavaScript등 거의 모든 언어로 대체 가능합니다. 무엇을 선택하느냐는 여러분의 취향이거나, 여러분이 속해있는 조직의 선택입니다. 하지만 한가지 언어와 그 언어가 동작하는 방법을 이해하면 다른 언어를 배우는 것은 어렵지 않습니다. 이때의 장애물은 익숙한 언어를 놔두고 낯선 언어를 배우면서 생겨나는 조급증과 지루함 밖에 없습니다.

그렇다면 어떤 언어가 좋은 언어일까요? 정답은 없는 것 같습니다. 이를테면 PHP는 웹을 위한 언어고, 배우기가 쉽습니다. 만약 컴퓨터를 전공하지 않은 필자가 C로 웹을 시작했다면 필자는 프로그래머가 되지 못했을지도 모르겠습니다. 하지만 PHP는 좋게 말하면 관대한 언어이고, 나쁘게 말하면 어떻게 동작할지 예측이 다소 어려운 언어입니다. PHP는 개발자의 실수를 알아서 바로잡습니다. 반대로 Java나 C와 같은 엄격한 언어는 이러한 실수를 용납하지 않습니다. 이것은 장점일 수도 있고, 단점일 수도 있습니다.

필자가 언어를 공부한 것은 만들고 싶은 것이 있었기 때문입니다. 만들고자 하는 것이 있을 때 그것을 빠르게 만들 수 있는 언어가 필자의 성향에는 더 잘 맞습니다. 반대로 엔지니어링적인 미학을 추구한다면 엄격한 언어들에 호감이 갈 것입니다. 그리고 필자는 요즘에서야 엔지니어링을 수단이 아닌 그것 자체가 추구할만한 목적이라는 것을 느끼고 있습니다. 언어는 자연어건 프로그래밍 언어이건 그 언어를 사용하는 사람들이 직면한 문제와 그것을 해결한 성취를 담고 있습니다. 이러한 성취에 접근하기 위해서는 언어를 알아야 합니다. 필자가 생각하는 언어의 정수는 바로 이것입니다. 이점을 기억하신다면 엔지니어링을 좀 더 풍부하게 경험하실 수 있을 것 같습니다. 

댓글

댓글 본문
작성자
비밀번호
  1. JustStudy
    고맙습니다 2.
  2. Sy Kim
    자신의 목적에 적합한 언어가 어떤것인지 yes/no로 따라가보는 인포그래픽 링크겁니다. 참고로 저는 python이 나왔습니다.. ㅎㅎ http://carlcheo.com......png
  3. JustStudy
    고맙습니다
  4. Metanoia
    Thank you!!!
  5. dsider
    읽기 쉽게? 정리하면

    언어 = (자연어, 프로그래밍 언어 상관없이)모든 언어
    인터페이스 = 그 언어를 사용하는 사람들이 a에 엑세스 할 수 있도록 하는 것
    a = 직면한 문제와 그것을 해결한 성취와 그 사람들을 연결해주는 문화

    "언어는 인터페이스면서 또 그것들을 담아내는 컨테이너입니다."
    대화보기
    • 오빠는다르다
      감사합니다!!!
    • 프로그래밍 언어의 대한 고정관념이 깨졌습니다. 감사합니다!
    • twopower
      고맙습니다.~~
    • 검사무운
      잘 봤습니다.
      저도 만들고 싶은 것이 있어서 프로그램 공부를 시작했습니다.
      열심히 하겠습니다.
    • Yoon Jung Choi
      감사합니다
    • Frank
      고맙습니다.
    • 새우과자튀김
      저는 프로그래머가 아니니 정확하게는 모르지만 웹 페이지에 루비 온 레일즈 라는 유명하지 않는 언어도 있다고 알고 있습니다.
    • soogonlee
      이 말을 이해하기전에 쉼표 꼭 두개 짚고 넘어가세요.
      인터페이스라는 말에 참 깊은생각을 해봅니다.
      대화보기
      • 포도당
        성취에 접근하기 위해서는 언어를 알아야 한다는 말에 공감합니다.
      • [ 언어는 자연어건 프로그래밍 언어이건 그 언어를 사용하는 사람들이 직면한 문제와 그것을 해결한 성취와 그 사람들을 연결해주는 문화에 엑세스 할 수 있는 인터페이스면서 또 그것들을 담아내는 컨테이너입니다. ] 무슨말인지 이해하기가 힘드네요. 쉼표라도 한두개 찍혀있으면 좋겠네요.
      • 찍찍이얌
        감동!
      • 강백호
        글 속에 철학이 있습니다. 이 홈페이지도 그렇고요 ^^
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기