스크립트 언어에 대한 짧은 생각... (그렇게 느린가?)

오늘 새벽 올블로그를 이잡듯 뒤지다가 불쑥 생각나서 적어봅니다…

여러분들은 스크립트 언어로 만든 프로그램이 느리다고 생각하시나요?

많은 사람들이 대학 강의시간에 컴파일 언어와 스크립트 언어와의 차이점을

배우게 됩니다. 대개, !@##@$$%#%한 이유로 ‘느리다’ 라는 결론을 짓게 되죠

이러한 결론을 말미암아 많은 학생들의 머릿 속에는

‘아~~~ 스크립트 언어는 느린거구나!’ 혹은 ‘컴파일 언어가 빠르네!’

라는 편견이 심어지게 되죠.

제가 이러한 글을 올리는 이유는 소위 말하는 ‘애플빠’ 라는 분들이 안드로이드를

소위 말해 ‘깔 때’ Dalvik VM을 사용한다는 점을 들어 '까’시는 분들을 봐서입니다.

(제가 보기엔 아직 Sun의 VM과 Dalvik VM과의 차이를 잘 모르시는 듯 합니다.)

물론 구조적인 차이로 인해 스크립트 언어가 ‘느린’ 것은 사실이지만

이것이 사용자가 체감할 정도로 ‘느린’ 것은 아니라고 생각합니다.

이에 대한 여러분의 의견을 듣고자 합니다.

스크립트 언어 나름
알고리즘 나름
처리 데이터 나름…
하드웨어 나름

기타등등…

솔직히 그런거 가지고 따지는 자체가 무의미하다는 생각이 드는군요.
핸드폰상에서 뭐 처리속도가지고 경주라도 하나…

컴파일되어 있으면 보통 해당 기기의 CPU에 바로 적용이 되는 언어로 컴파일하기 때문에 메모리에 로딩만 되면 특별한 처리 없이 CPU에서 읽어서 바로 실행합니다.
하지만 스크립트 언어는…
문자열로 되어 있으니, 일단 구문을 분석하고 CPU에 맞게 기계어로 바꾼 코드를 메모리에 쓴 후 실행하게 됩니다.

그래서…
어차피 한 CPU에서 여러번 반복 실행하는 명령이라면 컴파일해 두는 것이 CPU도 덜 쓰고 전기를 아낄 수 있겠지요.
지구 환경을 위해 에너지를 아끼는 것이라 생각하면 전 컴파일하고 싶어집니다. ㅋㅋ

하지만 그 어플이 빠르냐 느리냐는 draco씨의 말씀대로 어느 환경에 최적화 되어있냐가 더 중요하겠지요.
안드로이드는 나름 최적화가 잘 되어 있을테니 어떻게든 에너지를 아끼고 속도도 빠르게 하는 기술들을 양껏 사용했을 것입니다.
그렇게 다툴 이유가 없을 것같네요.
예전 학부 때 퀸 이동 문제를 풀 때 C로 작성한 제 동기보다 java로 작성한 제가 메모리도 덜 쓰고 결과도 1초정도 더 빨랐거든요…
(물론 이기기 위해서 며칠 밤을 새며 박터지게 최적화했지만…)

만약 어떠한 어플이 여러가지 종류의 다양한 기기에서 동일하게 실행해야하고 몇번 실행하지 않는 성격을 가지고 있다면,
성능좋은 스크립트 언어를 선택해서 좀 더 효율적인 알고리즘에 투자한다면 컴파일된 것보다 더 에너지를 아낄 수 있겠죠. ㅋㅋ

학생시절…자바가 초기에 처음 등장했을때 자바는 인터프리터 언어이므로 성공할수가 없고 절때 C보다 효율적일 수 없다고 주장하던 한 친구가 떠오르는군요.-_-

[quote="tinywolf":3pd28ez1]
예전 학부 때 퀸 이동 문제를 풀 때 C로 작성한 제 동기보다 java로 작성한 제가 메모리도 덜 쓰고 결과도 1초정도 더 빨랐거든요…
(물론 이기기 위해서 며칠 밤을 새며 박터지게 최적화했지만…)
[/quote:3pd28ez1]

이야…난 이런거 하는 분이 제일 멋지더라.