C# 신기능 발표 주기 빨라진다··· VB 지원은 '안정성' 중심으로

InfoWorld
마이크로소프트가 닷넷 프레임워크에서 사용하는 주요 언어인 C#과 비주얼 베이식을 더 확실하게 구분해 대응하기로 했다. C#은 새 버전 발표 주기가 짧아지고 비주얼 베이식은 안정성 중심으로 개선이 이뤄진다.

C#과 비주얼 베이식은 모두 객체지향 언어로 지난 수년간 프로그래밍 개념과 기능을 공유해왔다. 그러나 마이크로소프트는 이를 더 확실하게 구분하기로 했다. 이런 변화에는 개발자 커뮤니티의 의견이 반영됐다. 마이크로소프트의 C# 프로그램 매니저 매드 토거슨은 "비주얼 베이식 개발자는 안정성과 품질, 지원, 툴을 중요하게 생각하는 반면, C# 개발자는 이것 외에 신기능과 더 현대적인 요소 지원을 선호하는 것으로 나타났다"고 말했다.

단, 앞으로 두 언어에 대한 지원이 달라진다고 해도 닷넷용 오픈소스 컴파일러 플랫폼인 '로슬린(Roslyn)'을 공유하는 것은 변하지 않는다. 마이크로소프트의 비주얼 베이식팀 수석 프로그래밍 매니저 더스킨 캠벨은 "로슬린은 에디터와 통합개발환경(IDE), 리팩토링 툴, 리스팅 툴, 스크립팅 툴, 분석 툴 등 다양한 프로그래밍 툴의 언어 엔진이 될 것"이라고 말했다.

마이크로소프트는 곧 공개되는 C# 7버전부터 신규 버전 발표 주기를 줄일 예정이다. 기존까지는 전체 기능 세트가 준비되기 전까지는 새 버전을 내놓지 않았다. 그러나 토거슨은 "앞으로는 C# 신버전을 더 빨리 내놓을 예정"이라고 말했다. C# 6.0은 2015년 7월에 비주얼 스튜디오 2015 IDE와 함께 나왔다. C# 7은 비주얼 스튜디오 차기 버전과 함께 발표된다. 마이크로소프트는 '비주얼 스튜디오 15'로 명명된 차기 버전 프리뷰 버전을 최근 공개했다.

C# 7에는 다양한 신기능이 추가된다. 비트 패턴(bit pattern)을 보여 주는 바이너리 리터럴(binary literal)이 한 예다. 토거슨은 "앞으로는 비트 패턴을 보여주기 위해 16진수의 숨겨진 형제로 만들 필요가 없다"며 "바이너리 리터럴을 이용해 바로 볼 수 있다"고 말했다. 다른 함수 내부에 헬퍼(helper) 함수를 작성하는 '로컬 함수' 기능도 들어간다. 토거슨은 "이 기능을 이용하면 코드를 자바 스크립트처럼 구조화할 수 있다"고 말했다.

이밖에 일시적으로 그룹핑된 형식 값의 세트인 '튜플(Tuple)'이 C# 7에 추가된다. 패턴도 신기능 중 하나인데, 이를 이용하면 개발자가 패턴과 값이 일치하는지 테스트해, 맞는다면 이 정보를 패턴과 일치하는 주소를 가리키는 새 변수로 사용할 수 있다. 토거슨은 "이것은 매우 강력한 제어구조"라고 말했다.

마이크로소프트는 C# 7에 더 많은 신기능을 넣는다는 구상이지만 기한에 맞춰 개발이 끝날지는 아직 미지수다. 이런 기능 중 하나가 '변경 불가능(immutable)' 타입을 더 쉽게 쓸 수 있도록, 이 타입에서 객체 이니셜라이저(object initializer)를 지원하는 것이다. 레코드 기능도 추가로 개발하고 있는데, 이는 데이터를 대신하는 클래스의 축약형을 제공하거나 코드를 변경 불가능한 값 기반 클래스로 확장하는 문법을 지원한다. ciokr@idg.co.kr