예의가 없다고 할까요? 주류(?)에 속한다고 믿는 분들이 가끔(솔직히 매우 자주) 다른 프로그램 언어를 자신들의 기준으로 보려 합니다. 게임하면 수학하라는 소리와 함께 개인적으로 정말 싫은 얘기죠.
예를 들어 보겠습니다.
자바 언어는 다음 5가지의 핵심 목표를 지니고 있다.[출처 필요]
- 객체 지향 방법론을 사용해야 한다.
- 같은 프로그램(바이트코드)이 여러 운영 체제(마이크로프로세서)에서 실행될 수 있어야 한다.
- 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어 있어야 한다.
- 원격 코드를 안전하게 실행할 수 있어야 한다.
- 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다.
Principles
There were five primary goals in the creation of the Java language:[15]
- It must be "simple, object-oriented, and familiar".
- It must be "robust and secure".
- It must be "architecture-neutral and portable".
- It must execute with "high performance".
- It must be "interpreted, threaded, and dynamic".
둘을 비교해 보면 알겠지만, 영어와 한국어가 다릅니다. 자바를 제대로 공부한 사람이라면 한국어 위키가 틀렸다는 거 알겁니다. 저런 거 비일비재합니다. 하지만, 제대로 할려는 순간 자바가 주 언어가 아닌 분들이 와서 막 뭐라 할 겁니다. 말이 안 통해요. 그렇게 볼 수 있다.. 이 말로 모든 게 끝입니다. 모든 건 주소다, 포인터가 주소 아닌가요? 어디서 많이 듣던 내용과 비슷하면서도 조금 다르죠. 이거 어셈하던 후배가 c 보지 말고 어셈하라면서 한 말입니다. 25년전쯤 된 걸로 기억하네요.
자바는 하이레벨 언어입니다. 객체지향 언어죠. 이런 언어에 포인터 자료구조 들이미는 건 자바를 c처럼 공부하라는 겁니다. 첫번째 원칙에 객체지향이 나옵니다. 객체지향 원칙 중에 encapsulation이 있습니다. 알 필요없는 건 알 필요 없게 하는것. 객체지향 프로그래머의 원칙입니다. 유닉스 커널 만지고 하는 분들하고 객체 지향 하는 분들은 다른 패러다임에 존재합니다. 어느 쪽이 위고 아래고가 아니고 그냥 분야가 다릅니다.
이런 링크 다는 거 별로 안 좋아하는데, 제가 말한다면 듣지도 않을 거니 달아 드립니다.
CS107 - Programming Paradigms
프로그램 언어마다 철학 패러다임이 다르고, 그렇기 때문에 공부하는 방법이 달라야 합니다. 공부하는 과목도 달라야 정상이고, 웹 프로그래머와 시스템 프로그래머의 기본은 달라야 정상입니다. 게임 프로그래머와 시스템 프로그래머의 기본은 달라야 맞습니다.
같은 얘기가 계속 나오는 이유는, 모든 생각을 학교에서 배웠던 걸 기준으로 말하는 분들이 많아서인 것 같습니다. 한국 대학교 컴공은 특히 잘 나간다는 대학 컴공은 웹과 게임을 기본으로 하는 곳이 제가 알기론 없습니다. 그런 걸 기본으로 생각하지도 않고, 그런 곳에 있는 분들이 웹과 게임쪽 일하는 것도 이상한 일이죠. 하지만, 미국처럼 시스템 자체를 건드니는 곳이 거의 없는(건드리고 욕 먹던 회사 말고는 기억이 안 납니다) 한국에서는 그런 나름 배운 분들이 웹과 게임까지 건드리다보니 이런 왜곡 현상이 생기는 거 아닐까 하는 생각이 듭니다.
그러니까, 좋은 대학에 4년제 웹 전문과, 4년제 게임 전문과가 생기면 어느 정도 해소가 될 듯도 한데.. 그럴리가 없죠. 결론은 교육이 엉망입니다.. 끝.