개발자와 사용자의 '속도'차이
개발자들은 소프트웨어의 ‘속도’라고 하면 흔히 여러 벤치마크를 생각한다. 사람들이 Java가 느리다고 할 때, Java 개발자들은 HotSpot과 같은 기술로 Java를 빠르게 만들었다. 정말 최근의 JVM은 빠르다. 대용량 서버용 소프트웨어에 Java가 많이 쓰이는 이유 중 하나이다. 그런데도 applet은 거의 사용되지 않고 사용자들도 좋아하지 않는다. 사용자들이 느끼는 속도는 개발자들이 생각하는 속도와 다르다. 사용자들은 virtual function call이 어떻게 사용중에 profile되고 inlining되어 C++의 virtual function보다 빨라질 수 있는지에 대해선 관심 없다. 다만 그들은 Java 로고가 보일 때는 웹페이지가 늦게 뜬다는 것을 알 뿐이다. 사용자들의 PC는 개발자들의 PC와 다르다. CPU의 GHz만 높고 메모리는 부족한 대기업 PC에 시작 프로그램은 20개쯤 등록되어 있고 지금 보고 있는 웹페이지에서도 온갖 그림과 플래시 때문에 하드 디스크는 이미 한참 swapping하고 있는 중이다. 더군다나 그 하드 디스크는 defrag한지가 몇년쯤 되었고 90% 이상 용량이 차있어서 기본 defrag tool은 쓰지도 않지만, 쓸 수도 없다. 이런 PC에서 JVM이 뜨면서 수십 MB를 새로 확보하려면 수십초가 걸려도 이상하지 않다. 아무리 PC 사양이 좋아졌다고 해도, 보통 사용자들의 PC는 느리다. CPU가 느리다기 보다는 메모리가 부족하고 fragment된 하드 디스크가 느리다. 따라서 메모리 footprint를 줄이는 것이 무엇보다도 중요하다. 매크로미디어는 이런 점을 잘 알고 있었고 Sun은 그렇지 못했다. 최근 FLEX2를 써보기 시작했다. Java와 비교할 때 장점도 있고 단점도 있다. ActionScript의 실행속도가 아무리 빨라졌다고 해도 JVM에 비교할 수는 없다. 하지만 사용자가 느끼는 속도 차이는 그게 아니라 큰 부담없이 뜨는 플래시와 이미 ‘느리다’는 느낌으로 조건학습되어버린 Java 로고의 차이이다.