ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 플랫폼의 종속성을 떠나서
    2013. 1. 17. 0 comments

    이식성이 가장 높다고하는 C언어는 생산성의 문제로 사용이 많지 않을 것이라 생각된다. 안드로이드 모바일 환경에서도 인터프리터 언어인 자바를 채택하면서 C언어와 같이 오래된 언어는 점점 멀어져만 가고 있다.


    가상 머신위에서 중간언어로 만들어진 빌드 결과물을 실행시키면서 플랫폼의 벽이 허물어지기 시작했다고 생각한다. 물론 그전에 웹이 있었지만 지금처럼 웹을 통해 많은 일을 할 수 없었다. 하지만 기계어 코드를 다시 생성하고 실행하는데 있어서 지연이 되기 떄문에 속도가 충분하지 않은 단점으로 계속해서 1위의 자리를 유지할 수 없었다.


    무엇보다도 다양한 운영체제와 환경(PC, 타블렛,모바일)이 생겨나고 거기에 맞는 소프트웨어를 지원함에 따라 생산성이 문제가 되었다. 여러 빌드 환경에 맞게 소스 코드를 관리해야 하며 각각 모듈에 대해 테스트도 해야  하기 때문이다. 모바일만 보아도 윈도우,안드로이드,아이폰,블랙베리등 다양한 모바일 생태계 때문에 더 많은 코드를 만들어내야 한다. 올 겨울에는 Ubuntu 모바일도 나올 예정이라고 한다.


    이러한 문제점들을 해결하기 위해 하이브리드 앱인 웹 앱이라는 개념까지 등장했다. GUI는 웹 언어를 통해서, 그리고 비지니스 로직과 디바이스 컨트롤은 Native 코드로 개발하는 컨셉입니다. 


    • phonegap(http://www.phonegap.com/)


    C#을 linux에서도 사용하기 위해 mono C#도 있다. mono는 일부 함수를 변경하는 수준이 아닌, 직접 linux에서 돌아갈 수 있는 컴파일러를 지원한다. 만든 사람은 C# 컴파일러를 linux에서 실행하기 위해 개인적으로 만들고 유지하다가 결국은 정식으로 지원하는 mono project가 만들어졌다. 최신버전은 iOS 및 안드로이드에까지 지원한다.


    • mono-project(http://www.mono-project.com/Main_Page)


    앞으로도 새로운 개발언어는 계속해서 태어날 것이고 환경은 분할 또는 통합되는 과정을 반복할 것이라고 생각한다. 각자가 좋아하는 언어가 있고 노래방 18번처럼 자신있는 언어가 있을 것이다. 

    하지만, 소프트웨어 엔지니어라면 스크립트 언어 하나는 꼭 익혀야 한다. 플랫폼 종속성을 따지지 않는 웹이나 python과 같은 스크립트 언어등은 분할과 통합의 흐름과 무관하게 사용할 수 있기 때문에 앞으로도 그리고 지금도 중요한 기술이라고 생각하기 때문이다. 





    반응형

    댓글 0

Designed by Tistory.