좌파 사회 채널

기술의 발전으로 사라진 또하나의 기술이 어셈블리어.

과거에는 통신장비나 커널이나 기계 제어 게임 등에서도 

어셈블리 어를 쓰는 게 일반적이었고 당연하고 성능을 위해선 필수로 여겨젔다.

그래서 수만 수십만 라인 이나 되는 프로그램을 어셈블리로 작성하는 것도 흔했다.

하지만 어셈블리로 프로그래밍 해본 분은 알겠지만 한 1만 라인이 넘어가기 

시작하면 이건 사람이 할만한게 아니라는게 느껴질 거다.

짜기는 하겠지만 디버깅이나 유지보수는  지옥 그자체이다.


그래서 C 언어 같은 저레벨 컴파일 언어가 보편화되면서 어셈블리는 급속히 

입지를 잃기시작하고 또 ARM  같은 어셈블리가 낫선  CPU 가 보편화 되면서 

지금은 가끔 특정 부분에만 인라인이나 암호화나 그래픽 같은 성능에 

직접 영향을 주는  로우레벨 소규모 라이브러리에  쓰이는 정도로 줄어들었다. 


이젠 신입들도 전공자들은 배우고 들어오는 사람도 있지만 

상당수는 어셈블리도 배우지 않고 들어오는 사람이 대부분이다.

아마 이것도 점차 쓰이는 용도가 축소되고 인건비는 올라가면서 

일부 업계에 오래 굴러먹던 엑스퍼트 들의 비밀병기화 될 것이다.


워낙 컴파일러의 기술발전이 엄청나고 자동 최적화 기술도 

정말 상상을 못하게 발전하고 무엇보다 Java 같은 VM 기반이 많아지고 

또 하드웨어 기술의 엄청난 발전으로 최적화의 필요성이 줄어들며 

어셈블리의 미래는 그리 밝지 않다.


하지만 TIOBE 인덱스에서도 여전히 13 위로 요즘 잘나간다는 여러 

언어들 보다 더 상위이다. 그만큼 여전히 어셈블리는 중요한 기술이고 

아마도 프로로서 성공하려면 꼭 갖추어야 할 기술로 남아 있을 것이다.

앞으로 30 년 후에도 어셈블리어는 상위 20개 언어의 하나로 여전히 남아 있을 것이다.