"파스칼, iOS-안드로이드 개발에도 유용"

일반입력 :2013/05/10 01:28    수정: 2013/05/10 09:31

개발자들 사이에서 '크로스플랫폼'은 다양한 방식으로 추구되곤 한다. 한 번 작성한 코드를 여러 플랫폼에 돌아가게 만드는 건 소프트웨어(SW) 개발환경에서 효율성과 생산성에 밀접한 사안이다. 만일 '파스칼'이라는 오래된 언어가 강한 생명력을 지속하는 계기를 얻는다면 그 이유도 크로스플랫폼에서 찾을 수 있을 것 같다.

이달초 미국 지디넷은 파스칼 프로그래밍 언어를 계승하는 개발도구 델파이의 근황을 소개하며 많은 개발자들이 델파이로 iOS나 안드로이드 개발을 상상해보지도 않았겠지만 '크로스플랫폼컴파일러'의 등장은 수년간 경직된 코드만 갖고 있던 기업들에게 어느날 갑자기 원기회복의 기회가 됐다고 보도했다.

파스칼은 많은 개발자들의 초기 개발 경력에 있는 언어였다. 보통 '배워둘만한 오래된 언어'란 수식어가 붙었다. 델파이는 파스칼의 객체 지향 버전의 후계자로 인식된다. 상당수 사람들이 델파이 또한 파스칼 만큼 오래된 구식이라 여긴다.

하지만 지난 2008년 볼랜드로부터 델파이를 인수한 엠바카데로테크놀러지스에 따르면 델파이는 오늘날 많은 '현대적' 프로그래밍언어의 라이벌 이상이다.

의료부문을 예로 들면 최근 몇년간 그 SW개발은 '업계 전문가들이 선호하는 델파이로 SW를 개발한다'는 뜻이었다. 호주에서 헬스케어서비스업체 2만곳이 쓰는 SW를 델파이로 개발해온 메디컬오브젝트가 그 산 증인이다.

델파이는 '낡은(legacy)시스템'으로 치부하기엔 여전히 유연해 기존 코드들이 족쇄라기보다 오히려 강점이라고 엠바카데로는 주장한다.

말콤 그로브즈 엠바카데로 아태일본지역 총괄 상무는 델파이는 부모세대 '파스칼'과 달라 여타 언어들보다 더 현대적이라며 프로그래밍 언어의 발전에 발맞춰가고 있어 제네릭스와 클로저도 있는데, (오라클)자바엔 클로저가 있느냐고 되묻는다.

최신 버전인 자바8이 클로저를 지원하기 위해 준비중인 것으로 알려졌다. 업계서 널리 쓰이는 자바6이나 공개된지 얼마 안 된 자바7은 미지원 상태란 뜻이다.

앞서 SW업체 메디컬오브젝트는 또 델파이를 iOS와 안드로이드용 모바일 애플리케이션(이하 '앱') 개발언어로 활용하는 데에도 적극적이다. 사실 iOS용 앱은 '오브젝티브C'란 전용 언어를 써야 만들 수 있고 안드로이드는 자바를 배워야 되는 걸로 알려져 있다. 델파이로 만들던 코드를 이 2개 언어로 각각 변환하는 작업은 재앙일 수도 있다. 다행히 이는 잘못된 생각이었다.

그로브즈 상무는 이미 델파이 코드로 엄청나게 많이 구현된 자산을 단지 플랫폼이 다르단 이유로 새로 쓴다는 건 미친짓이고 투자측면에서도 잘못이라며 델파이 코드를 새로 쓰려했던 한 회사는 일종의 '재앙'을 겪은 뒤 그 개발자들이 다시 델파이 코드를 복원중이라고 말했다.

iOS와 안드로이드 모바일 운영체제(OS)에 동시에 대응하려고 HTML5과 자바스크립트 프로그래밍을 적용한 하이브리드 웹앱 개발을 선택하는 전략이 업계에 통용되고 있다. 이에 대해 그로브즈 상무는 성능과 사용자경험(UX)상의 질적 저하 문제가 있다고 주장한다. 엠바카데로의 최신 개발툴 'RAD스튜디오XE4'를 통해 델파이 프로그래밍을 안드로이드와 iOS 앱개발로도 이어갈 수 있다고 강조한다.

그는 디버깅이 끝난 바로 그 코드로 안정적으로 잘 작동하고 있는 것이라며 코드를 버릴 필요 없이 이제 새 플랫폼으로 가져가면 그만이라고 말했다. 또 누군가 파스칼을 추천하지 않을 수도 있는데, 우리가 C++버전(개발툴)을 갖고 있는 이유도 그것 때문이라고 덧붙였다.

관련기사

또한 회사 툴을 쓰면 델파이로 개발하지 않았던 회사에서도 일단 iOS 용으로 처음 개발을 할 수 있으면, 그 코드를 안드로이드 용으로 재컴파일 할 수 있다. iOS를 안드로이드에 포팅시 예를 들어 모듈 인텐트 같은 안드로이드의 장점을 잃을까 우려할 수도 있다. 하지만 RAD스튜디오에서는 플랫폼 고유의 커스터마이징을 방해받지 않고 구현 가능하다.

그로브즈 상무는 윈도와 맥OS X 모두를 개발해야 하는 지금 상황에서 10번에 1번은 개발자들이 대부분 직접 고유한 결과물을 만들고싶은 게 있을텐데 (윈도와 맥OS X 애플리케이션을 단일소스로 만들어내는) RAD스튜디오는 네이티브툴이라 가능하다며 핵심은 컴파일만 새로하면 그대로 되는 앱이든, 맥일 경우 어떻게 다르게 하라고 지정하는'if정의문법(ifdefs)'을 구현할 것이고 가끔 특정플랫폼을 위해 별도 영역에서 빌드하는 것 등 개발자 의지에 따라 제공되는 유연성을 활용하는 것이라고 말했다.