2017.12.29

자바를 둘러싼 반전의 반전··· 2017년 개발 언어 동향 정리

Paul Krill | InfoWorld
올해 기업용 앱과 모바일 개발 분야에서는 자바와 코틀린(Kotlin) 같은 언어가 큰 주목을 받았다. 웹 개발의 핵심인 자바스크립트는 계속해서 영역을 확장해 나갔다. 전반적으로 보면 올해 프로그래밍 언어 부문은 전통의 언어와 새로운 언어가 모두 고르게 발전하는 양상을 보였다.



먼저 자바를 둘러싸고는 일일드라마와 같은 상황이 펼쳐졌다. 표준 자바의 모듈화를 둘러싼 논쟁이 있었고 오라클이 자바 EE 엔터프라이즈 버전에서 완전히 손을 떼는 놀라운 일도 벌어졌다. 동시에 마이크로소프트의 타입스크립트(TypeScript)는 자바스크립트의 대안을 찾는 개발자의 주목을 받으며 인기를 끌었다. 마이크로소프트는 퀀텀 컴퓨팅용 언어인 Q#를 내놓기도 했다.

자바, 반전의 반전
지난 9월 최신 자바 표준을 반영한 자바 개발자 키트(JDK) 9가 공개됐다. 복잡한 모듈화 기술 관련 문제를 해결한 직후였다. 모듈 시스템은 확장성과 성능, 보안 등에서 장점이 있다. 그러나 레드햇과 IBM 같은 핵심 자바 지원 업체는 오라클이 이를 적용하는 방식에 대해 반대하고 나섰다. 이들은 애플리케이션 호환성에 대해 우려를 표시하고 5월에 열린 자바 집행 위원회에서 반대표를 던졌다.

그러나 이들 반대파는 다음 달에 곧바로 나온 수정안에 대해서는 찬성 입장을 밝혔다. 이로써 새 릴리즈 발표가 한없이 늘어지는 상황은 피할 수 있게 됐다. 자바 버전 9 업그레이드는 2018년 3월로 예정된 JDK 10 발표에 곧이어 공개된다. 가비지 컬렉터 인터페이스와 로컬 가변 타입 인퍼런스 등을 지원할 예정이다.

자바 EE 엔터프라이즈 버전 관련해서, 오라클은 그동안 겉치레만 늘어놓고 있었다. 이에 대해 자바 커뮤니티는 오라클이 자바 플랫폼에 충분히 신경 쓰지 않고 있다며 못마땅해했다.

이런 가운데 2016년 9월 오라클은 기업용 자바 EE를 클라우드 기반으로 전면 재개발한다고 밝혔다. 그러다 2017년 8월 돌연 엔터프라이즈 자바 관련된 책임과 권한을 모두 놔버렸다. 이 플랫폼은 결국 이클립스 파운데이션의 통제하에 들어갔다. 오라클은 자바 9 공개에 맞춰 자바 EE 8을 공개했다. 자바 EE 8은 클라우드와 HTML5, HTTP/2 기능을 지원한다.

자바스크립트 툴과 대안의 약진
웹 개발 관련해서 개발자들은 자바스크립트 자체를 이용하는 데 많은 도움을 받았다. 혹은 자바스크립트 대안을 사용할 수도 있다. 2017년에 발표된 이들 툴은 다음과 같다.

- 구글의 앵귤러(Angular) 5 자바스크립트 프레임워크: 11월에 공개됐다. 빌드 옵티마이저가 추가됐고 프로그레시브 웹 앱을 지원한다. 머티리얼 디자인 요소도 사용할 수 있다.
- 앵귤러 4: 3월에 공개됐다. 소형 소프트웨어 개발에 특화됐다.
- 리액트(React): 페이스북의 자바스크립트 UI 라이브러리다. 9월에 버전 16이 공개됐다. 리액트 코어를 재사용해 복잡한 애플리케이션의 반응성을 향상하는 기능이 추가됐다.

마이크로소프트는 웹 앱을 개발하고 자바스크립트의 대안이 될 타입 언어를 찾는 개발자를 위해 타입스크립트를 내놓았다. 올해 다양한 버전이 공개됐는데 다음과 같다.

- 타입스크립트 2.6: 할로윈에 맞춰 공개됐다. 스트릭트 모드 플래그와 에러 서프레션 코멘트를 지원한다.
- 타입스크립트 2.5: 8월에 공개됐다. 복잡한 재사용 작업을 더 간소화한 것이 특징이다.
- 타입스크립트 2.4: 6월에 나왔다. 애플리케이션의 리소스 활용성을 높인 다이내믹 임프레션 기능이 추가됐다.
- 타입스크립트 2.3: 4월에 나왔다. ECMA스크립트 비동기 제너레이터와 이터레이터를 지원한다.
- 타입스크립트 2.2: 2월에 나왔다. 네이티브 모바일 앱을 개발하는 리액트 네이티브 프레임워크와의 호환성이 강화됐다.

타입 인퍼런스 기능을 강화한 타입스크립트 2.7은 2018년 1월에 공개될 예정이다. 타입스크립트가 자바스크립트의 유일한 대안인 것은 아니다. 자바스크립트 대신 구글 고(Go) 언어를 사용할 수도 있다. 크로스 컴파일을 지원하는 베타 조이 컴파일러가 12월에 공개됐다.

코틀린 급부상 중
자바스크립트로의 컴파일을 지원하는 또다른 언어가 바로 코틀린이다. 본래 JVM에서 시작됐지만 올해 큰 주목을 받았다. 특히 지난 5월 구글이 안드로이드 애플리케이션용으로 지원에 나서면서 급부상했다. 기존까지는 주로 자바를 사용했다. 올해 나온 주요 버전과 기능은 다음과 같다.

- 코틀린 1.2: 11월에 발표됐다. 여러 플랫폼에 걸쳐 코드를 재사용할 수 있도록 지원한다. 자바 9도 지원한다.
- 코틀린 1.1: 지난 3월에 발표됐다. 자바스크립트를 지원한다.

마이크로소프트 퀀텀 지원에 나서다
마이크로소프트가 퀀텀 컴퓨팅을 지원하는 Q#(큐샵이라고 읽는다)을 12월에 공개했다. 이를 이용하면 퀀텀 알고리즘을 구현할 수 있다. 새로운 구조의 타입을 만들 수 있는 어레이와 튜플 같은 초기 타입을 제공한다. 비주얼 스튜디오 IDE에서 사용할 수 있으며, 12월에 베타로 공개된 퀀텀 개발 키트에 포함됐다.

C++도 약진
올해는 C++ 17도 주목을 받았다. 특히 17버전에서는 사용성을 강화해 쓰기 편해졌다. 주요 개선점은 다음과 같다.

- 구조화된 바인딩과 클래스 템플릿
- 마치 루프처럼 if 범위 내에서 변수를 초기화하고 바꾸는 것이 가능

차기 C++ 20버전은 2019년 여름까지 개발을 마치고 2020년에 최종 발표할 예정이다. 동시실행과 라이브러리 기능이 개선된다. ciokr@idg.co.kr

2017.12.29

자바를 둘러싼 반전의 반전··· 2017년 개발 언어 동향 정리

Paul Krill | InfoWorld
올해 기업용 앱과 모바일 개발 분야에서는 자바와 코틀린(Kotlin) 같은 언어가 큰 주목을 받았다. 웹 개발의 핵심인 자바스크립트는 계속해서 영역을 확장해 나갔다. 전반적으로 보면 올해 프로그래밍 언어 부문은 전통의 언어와 새로운 언어가 모두 고르게 발전하는 양상을 보였다.



먼저 자바를 둘러싸고는 일일드라마와 같은 상황이 펼쳐졌다. 표준 자바의 모듈화를 둘러싼 논쟁이 있었고 오라클이 자바 EE 엔터프라이즈 버전에서 완전히 손을 떼는 놀라운 일도 벌어졌다. 동시에 마이크로소프트의 타입스크립트(TypeScript)는 자바스크립트의 대안을 찾는 개발자의 주목을 받으며 인기를 끌었다. 마이크로소프트는 퀀텀 컴퓨팅용 언어인 Q#를 내놓기도 했다.

자바, 반전의 반전
지난 9월 최신 자바 표준을 반영한 자바 개발자 키트(JDK) 9가 공개됐다. 복잡한 모듈화 기술 관련 문제를 해결한 직후였다. 모듈 시스템은 확장성과 성능, 보안 등에서 장점이 있다. 그러나 레드햇과 IBM 같은 핵심 자바 지원 업체는 오라클이 이를 적용하는 방식에 대해 반대하고 나섰다. 이들은 애플리케이션 호환성에 대해 우려를 표시하고 5월에 열린 자바 집행 위원회에서 반대표를 던졌다.

그러나 이들 반대파는 다음 달에 곧바로 나온 수정안에 대해서는 찬성 입장을 밝혔다. 이로써 새 릴리즈 발표가 한없이 늘어지는 상황은 피할 수 있게 됐다. 자바 버전 9 업그레이드는 2018년 3월로 예정된 JDK 10 발표에 곧이어 공개된다. 가비지 컬렉터 인터페이스와 로컬 가변 타입 인퍼런스 등을 지원할 예정이다.

자바 EE 엔터프라이즈 버전 관련해서, 오라클은 그동안 겉치레만 늘어놓고 있었다. 이에 대해 자바 커뮤니티는 오라클이 자바 플랫폼에 충분히 신경 쓰지 않고 있다며 못마땅해했다.

이런 가운데 2016년 9월 오라클은 기업용 자바 EE를 클라우드 기반으로 전면 재개발한다고 밝혔다. 그러다 2017년 8월 돌연 엔터프라이즈 자바 관련된 책임과 권한을 모두 놔버렸다. 이 플랫폼은 결국 이클립스 파운데이션의 통제하에 들어갔다. 오라클은 자바 9 공개에 맞춰 자바 EE 8을 공개했다. 자바 EE 8은 클라우드와 HTML5, HTTP/2 기능을 지원한다.

자바스크립트 툴과 대안의 약진
웹 개발 관련해서 개발자들은 자바스크립트 자체를 이용하는 데 많은 도움을 받았다. 혹은 자바스크립트 대안을 사용할 수도 있다. 2017년에 발표된 이들 툴은 다음과 같다.

- 구글의 앵귤러(Angular) 5 자바스크립트 프레임워크: 11월에 공개됐다. 빌드 옵티마이저가 추가됐고 프로그레시브 웹 앱을 지원한다. 머티리얼 디자인 요소도 사용할 수 있다.
- 앵귤러 4: 3월에 공개됐다. 소형 소프트웨어 개발에 특화됐다.
- 리액트(React): 페이스북의 자바스크립트 UI 라이브러리다. 9월에 버전 16이 공개됐다. 리액트 코어를 재사용해 복잡한 애플리케이션의 반응성을 향상하는 기능이 추가됐다.

마이크로소프트는 웹 앱을 개발하고 자바스크립트의 대안이 될 타입 언어를 찾는 개발자를 위해 타입스크립트를 내놓았다. 올해 다양한 버전이 공개됐는데 다음과 같다.

- 타입스크립트 2.6: 할로윈에 맞춰 공개됐다. 스트릭트 모드 플래그와 에러 서프레션 코멘트를 지원한다.
- 타입스크립트 2.5: 8월에 공개됐다. 복잡한 재사용 작업을 더 간소화한 것이 특징이다.
- 타입스크립트 2.4: 6월에 나왔다. 애플리케이션의 리소스 활용성을 높인 다이내믹 임프레션 기능이 추가됐다.
- 타입스크립트 2.3: 4월에 나왔다. ECMA스크립트 비동기 제너레이터와 이터레이터를 지원한다.
- 타입스크립트 2.2: 2월에 나왔다. 네이티브 모바일 앱을 개발하는 리액트 네이티브 프레임워크와의 호환성이 강화됐다.

타입 인퍼런스 기능을 강화한 타입스크립트 2.7은 2018년 1월에 공개될 예정이다. 타입스크립트가 자바스크립트의 유일한 대안인 것은 아니다. 자바스크립트 대신 구글 고(Go) 언어를 사용할 수도 있다. 크로스 컴파일을 지원하는 베타 조이 컴파일러가 12월에 공개됐다.

코틀린 급부상 중
자바스크립트로의 컴파일을 지원하는 또다른 언어가 바로 코틀린이다. 본래 JVM에서 시작됐지만 올해 큰 주목을 받았다. 특히 지난 5월 구글이 안드로이드 애플리케이션용으로 지원에 나서면서 급부상했다. 기존까지는 주로 자바를 사용했다. 올해 나온 주요 버전과 기능은 다음과 같다.

- 코틀린 1.2: 11월에 발표됐다. 여러 플랫폼에 걸쳐 코드를 재사용할 수 있도록 지원한다. 자바 9도 지원한다.
- 코틀린 1.1: 지난 3월에 발표됐다. 자바스크립트를 지원한다.

마이크로소프트 퀀텀 지원에 나서다
마이크로소프트가 퀀텀 컴퓨팅을 지원하는 Q#(큐샵이라고 읽는다)을 12월에 공개했다. 이를 이용하면 퀀텀 알고리즘을 구현할 수 있다. 새로운 구조의 타입을 만들 수 있는 어레이와 튜플 같은 초기 타입을 제공한다. 비주얼 스튜디오 IDE에서 사용할 수 있으며, 12월에 베타로 공개된 퀀텀 개발 키트에 포함됐다.

C++도 약진
올해는 C++ 17도 주목을 받았다. 특히 17버전에서는 사용성을 강화해 쓰기 편해졌다. 주요 개선점은 다음과 같다.

- 구조화된 바인딩과 클래스 템플릿
- 마치 루프처럼 if 범위 내에서 변수를 초기화하고 바꾸는 것이 가능

차기 C++ 20버전은 2019년 여름까지 개발을 마치고 2020년에 최종 발표할 예정이다. 동시실행과 라이브러리 기능이 개선된다. ciokr@idg.co.kr

X