C#12, 신규 기능 '기본 생성자’ 혹평..."역대 최악의 기능"

클래스와 구조체 초기화 과정에서 일관성 헤쳐, 오히려 개발 과정에 혼란 야기

컴퓨팅입력 :2024/04/28 21:00

마이크로소프트의 프로그래밍 언어 C# 12에 추가된 신규 기능 ‘기본 생성자(primary constructors)’에 대해 역대 최악의 기능이라며 불만의 목소리를 내고 있다.

최근 데브클래스 등 외신에 따르면 개발자들은 마이크로소프트 개발자 블로그를 통해 새롭게 추가된 기본 생성자에 대해 개선을 요구 중이다.

C# 12는 프로그래밍 언어 C#의 연간 업데이트 버전명이다. 마이크로소프트의 앱 개발 플랫폼인 닷넷8(.NET8)과 지난해 11월 공개된 후 지속적으로 기능 업데이트가 이뤄지고 있다.

C# 12에 추가된 ‘기본 생성자’ 가 개발재들로부터 최악의 기능이라며 혹평받았다(이미지=마이크로소프트)

논란이 된 기본 생성자는 클래스와 구조체의 초기화를 간소화하기 위한 생성자다. 개발 과정에서 코드 사용을 줄여 효율적이고 간결한 업무를 지원하기 위해 개발됐다. 3년 전 C# 9에서 테스트 기능으로 추가된 이후 지난달 정식 버전에 업데이트 됐다.

하지만 업데이트 후 개발자들의 반응은 부정적인 내용이 주를 이뤘다. 대부분 기능이 원하는 방식으로 작동하지 않는 등 업데이트 과정에서 충분한 테스트가 이뤄지지 않았다는 지적이다.

문제점으로 지적된 내용 중 하나는 기본 생성자를 사용하면 클래스의 상태를 정의하기 위해 지정된 파라미터가 가변적으로 처리되어 의도치 않게 프로그램이 오작동할 가능성이 있다는 것이다.

또한, 초기화 과정에서 타입 변경이 제대로 이뤄지지 않아 클래스와 구조체의 일관성을 유지하기 위한 추가작업이 필요했다. 이로 인해 기대만큼의 업무 간소화가 이뤄지지 않을 뿐 아니라 오히려 개발 과정에 혼란을 일으킬 수 있다는 지적도 나타났다.

멜리사 P라는 개발자는 “기본생성자는 그저 잘못된 방식으로 파일을 압축할 뿐 생성하는 것은 더욱 큰 혼란 뿐”이라고 비판했다.

다른 개발자는 "기본 생성자는 C#에서 구현된 기능 중 최악일 것"이라며 "읽고 이해하기 쉽다는 것은 항상 C#의 가장 중요한 부분이었는데 이것은 완전히 반대였다"고 비판했다.

관련기사

개발자들의 비판이 이어지자 마이크로소프트 측은 해당 기능을 개선할 것이라고 밝혔다.

마이크로소프트의 메즈토르게르센 C# 수석디자이너는 "기본 생성자의 완전히 실패한 설계는 타임머신이 있다면 다시 돌아가서 변경하고 싶은 목록에 포함될 정도로 우리의 실수"라며 "우리는 일관성을 유지할 수 있도록 기능을 개선하고 추가로 사용자의 피드백을 받아 들이도록 하겠다"고 답했다.