2005년 5월 27일 오전 2:27 (GMT+9)

아래의 글은 저의 블로그를 둘러보신 어떤 분(이름을 밝히지는 않겠습니다)께서 질문을 해 주신 것에 대한 답변입니다. Smalltalk의 여러 가지 특징, 제가 Smalltlak를 역설하는 이유 등을 보실 수 있기 때문에 여기에 올려드립니다.


안녕하십니까? 질문하신 것에 대해서 답을 드리겠습니다.

1. 기계공학이란 무엇인가?

우선, 기계공학에서 어떤 것이 필요한지에 대해서 제가 잘 모르는 관계로 정확하게 대답을 드리기는 힘들 것 같습니다. 제가 이해하고 있는 기계공학은, 하드웨어를 설계하는 것에 대한 제반 사항을 공부하는 것 같은데요.... 꼭 컴퓨터쪽이 아니더라도, 공장 자동화나 로봇 설계 같은 것도 기계 공학에 들어가나요?

만약 그렇다면 프로그래밍의 로직을 공부하시면 도움이 많이 되실 것 같습니다. 나중에 Embeded System Programming에도 도움이 되시겠지요.

2. C언어에 대해서...

기계어와 어셈블리 언어를 제외하고 기계와 가장 친한 언어는 C 언어라고 생각합니다. 기계어는 대부분의 마이크로프로세서와 환경에서 돌아가는 컴파일러를 가지고 있을 정도이니 아마 님께서 나중에는 결국 C언어를 필히 공부하셔야 할 때가 올 거라고 봅니다.

3. 그럼 어떤 언어를 선택할 것인가?

하지만 결코 C언어가 '프로그래밍'을 배우기 시작하는 사람에게 적합하다고 생각하지 않습니다. 결국 다른 선택을 하셔야 하는데, 님께서 예로 드신 C++, C#, Smalltalk 모두 어찌보면 embeded programing 이라는 분야에서는 적합하지 않을지도 모릅니다.

사실 이런 객체지향 언어들이 RAM과 ROM을 통틀어서 64KB 내외인 작은 시스템에서 제 성능을 내며 돌아가기는 무리거든요. 하지만 기계를 제어하는 쪽이 컴퓨터이고, 컴퓨터와 연결해서 기계를 제어해야 한다면 결국 컴퓨터 쪽에서도 사용할 수 있는 언어를 선택하시는 것이 중요하다고 봅니다.