Offcanvas

��������������� ������

“목표는 C++ 현대화”··· 실험적 컴파일러 ‘Cpp프론트’ 공개돼

‘Cpp프론트(Cppfront)’는 유서 깊은 프로그래밍 언어를 ‘10배 더 간단하고, 안전하며, 도구를 사용하기 쉽게’ 만드는 대체 C++ 구문용 실험적 컴파일러다.    C++ 언어가 ‘Cpp프론트’라는 제안에 따라 더 간단하고 안전해질 예정이다. 이는 유명 C++ 개발자 허브 셔터가 제안한 실험적인 C++ 프론트엔드다. 그는 ISO C++ 위원회 의장, C++ 기능 설계자, 마이크로소프트 소프트웨어 아키텍트 등을 맡고 있다.  셔터는 해당 프로젝트의 깃허브 리포지토리에서 이를 C++의 중요한 발전이라고 언급하면서, “Cpp프론트는 C++이 10배 더 간단하고, 안전하며, 쉽게 도구를 사용할 수 있게 진화할 수 있는지 탐구하도록 설계된 실험적인 컴파일러다”라고 설명했다.  그에 따르면 대체 C++ 구문은 ‘오늘날 존재하지 않는 새로운 코드의 거품’을 제공하여, C++ 언어 설계자가 기본값을 변경하거나, 안전하지 않은 파트를 제거하거나, 언어를 문맥에서 자유롭거나 순서 독립적으로 만드는 등 임의적인 개선을 할 수 있게 한다. 유형 및 메모리 안전은 기본으로 지원된다.  이어 셔터는 “또한 두 번째 구문을 통해 파서(parser), 리팩토링 및 기타 도구를 쉽게 작성할 수 있도록 한다. 아울러 구문이 현 C++보다 2배로 줄어들어 C++ 20 모듈과 C++ 23 import std를 기본값으로 만든다”라고 전했다.  Cpp프론트 컴파일러는 현재 진행 중인 프로젝트다. 이 프로젝트 자체는 지난 7년 동안 개발돼 왔지만 지난주 미국 콜로라도주 오로라시에서 열린 컨퍼런스(CppCon)에서 일종의 ‘데뷔 파티’가 있었다. Cpp프론트는 MSVG, GCC, Clang을 포함한 메이저 C++ 20 컴파일러로 빌드된다. 지침은 깃허브에서 확인할 수 있다.  한편 지난 7월 말 구글은 C++의 후계자를 목표로 개발 중인 카본(Carbon)을 공개한 바 있다. 카본을 통해 C++와의 원활한 양방향 상호...

C++ 프로그래밍 언어 개발 언어 컴파일러 Cpp프론트 소프트웨어 개발 개발 도구

4일 전

‘Cpp프론트(Cppfront)’는 유서 깊은 프로그래밍 언어를 ‘10배 더 간단하고, 안전하며, 도구를 사용하기 쉽게’ 만드는 대체 C++ 구문용 실험적 컴파일러다.    C++ 언어가 ‘Cpp프론트’라는 제안에 따라 더 간단하고 안전해질 예정이다. 이는 유명 C++ 개발자 허브 셔터가 제안한 실험적인 C++ 프론트엔드다. 그는 ISO C++ 위원회 의장, C++ 기능 설계자, 마이크로소프트 소프트웨어 아키텍트 등을 맡고 있다.  셔터는 해당 프로젝트의 깃허브 리포지토리에서 이를 C++의 중요한 발전이라고 언급하면서, “Cpp프론트는 C++이 10배 더 간단하고, 안전하며, 쉽게 도구를 사용할 수 있게 진화할 수 있는지 탐구하도록 설계된 실험적인 컴파일러다”라고 설명했다.  그에 따르면 대체 C++ 구문은 ‘오늘날 존재하지 않는 새로운 코드의 거품’을 제공하여, C++ 언어 설계자가 기본값을 변경하거나, 안전하지 않은 파트를 제거하거나, 언어를 문맥에서 자유롭거나 순서 독립적으로 만드는 등 임의적인 개선을 할 수 있게 한다. 유형 및 메모리 안전은 기본으로 지원된다.  이어 셔터는 “또한 두 번째 구문을 통해 파서(parser), 리팩토링 및 기타 도구를 쉽게 작성할 수 있도록 한다. 아울러 구문이 현 C++보다 2배로 줄어들어 C++ 20 모듈과 C++ 23 import std를 기본값으로 만든다”라고 전했다.  Cpp프론트 컴파일러는 현재 진행 중인 프로젝트다. 이 프로젝트 자체는 지난 7년 동안 개발돼 왔지만 지난주 미국 콜로라도주 오로라시에서 열린 컨퍼런스(CppCon)에서 일종의 ‘데뷔 파티’가 있었다. Cpp프론트는 MSVG, GCC, Clang을 포함한 메이저 C++ 20 컴파일러로 빌드된다. 지침은 깃허브에서 확인할 수 있다.  한편 지난 7월 말 구글은 C++의 후계자를 목표로 개발 중인 카본(Carbon)을 공개한 바 있다. 카본을 통해 C++와의 원활한 양방향 상호...

4일 전

“고(Go) 개발자 4분의 1 이상이 ‘제네릭’ 사용한다”

고(Go) 개발자 설문조사 결과에 따르면 전체 응답자의 4분의 1 이상이 이미 ‘제네릭(Generics)’을 사용하고 있다.  지난 3월 고 프로그래밍 언어에 추가된 제네릭이 빠르게 채택되고 있다. 이는 9월 8일 발표된 ‘고 개발자 설문조사 2022 Q2 결과(Go Developer Survey 2022 Q2 Results)’에서 확인됐다.    전체 설문조사 응답자의 대다수(86%)가 고 1.18 릴리즈에 제네릭이 추가됐다는 사실을 알고 있었으며, 26%는 고 코드에서 이미 제네릭을 사용하기 시작했다고 밝혔다. 54%는 제네릭 사용에 개방적이지만 아직까진 특별히 필요하지 않다고 답했다.  한편 몇 가지 문제에 직면하고 있는 개발자도 있었다. 전체 설문조사 응답자의 8%는 제네릭을 쓰고 싶지만 현 제네릭 구현의 제한(30%), 린터 등의 도구 지원 제한(26%), 가파른 학습 곡선 및 문서 부족(12%)으로 제네릭을 사용하지 못하고 있다고 언급했다. 개발자들이 지적한 제네릭 구현의 문제에는 매개 변수화된 메소드의 부족, 타입 추론 개선 필요성, 타입 전환의 필요성 등이 있었다. 아울러 제네릭 구문이 사용하기 불편하다는 응답도 있었다.  2012년 출시된 이래 고 언어의 가장 중요한 변화로 꼽히는 제네릭은 개발자에게 사용 중인 특정 타입과 독립적인 코드를 작성할 수 있는 방법을 제공한다. 또 제네릭은 코드를 공유 및 재사용하고, 프로그램을 더 쉽게 구축할 수 있는 빌딩 블록을 지원한다.  회사에 따르면 2022 2분기 고 개발자 설문조사는 지난 6월 진행됐으며, 총 5,752명의 개발자가 참여했다. 이 밖에 다른 설문조사 결과는 다음과 같다.  • 전반적인 고 언어 만족도는 여전히 매우 높으며, 전체 응답자의 93%가 ‘매우 만족(63%)’ 또는 ‘어느 정도 만족(30%)’이라고 전했다. 불만족스럽다는 응답은 4%에 불과했다.  • 버그를 찾기 위해 입력을 지속적으로 조작하...

고 언어 고랭 제네릭 개발 언어 프로그래밍 언어

7일 전

고(Go) 개발자 설문조사 결과에 따르면 전체 응답자의 4분의 1 이상이 이미 ‘제네릭(Generics)’을 사용하고 있다.  지난 3월 고 프로그래밍 언어에 추가된 제네릭이 빠르게 채택되고 있다. 이는 9월 8일 발표된 ‘고 개발자 설문조사 2022 Q2 결과(Go Developer Survey 2022 Q2 Results)’에서 확인됐다.    전체 설문조사 응답자의 대다수(86%)가 고 1.18 릴리즈에 제네릭이 추가됐다는 사실을 알고 있었으며, 26%는 고 코드에서 이미 제네릭을 사용하기 시작했다고 밝혔다. 54%는 제네릭 사용에 개방적이지만 아직까진 특별히 필요하지 않다고 답했다.  한편 몇 가지 문제에 직면하고 있는 개발자도 있었다. 전체 설문조사 응답자의 8%는 제네릭을 쓰고 싶지만 현 제네릭 구현의 제한(30%), 린터 등의 도구 지원 제한(26%), 가파른 학습 곡선 및 문서 부족(12%)으로 제네릭을 사용하지 못하고 있다고 언급했다. 개발자들이 지적한 제네릭 구현의 문제에는 매개 변수화된 메소드의 부족, 타입 추론 개선 필요성, 타입 전환의 필요성 등이 있었다. 아울러 제네릭 구문이 사용하기 불편하다는 응답도 있었다.  2012년 출시된 이래 고 언어의 가장 중요한 변화로 꼽히는 제네릭은 개발자에게 사용 중인 특정 타입과 독립적인 코드를 작성할 수 있는 방법을 제공한다. 또 제네릭은 코드를 공유 및 재사용하고, 프로그램을 더 쉽게 구축할 수 있는 빌딩 블록을 지원한다.  회사에 따르면 2022 2분기 고 개발자 설문조사는 지난 6월 진행됐으며, 총 5,752명의 개발자가 참여했다. 이 밖에 다른 설문조사 결과는 다음과 같다.  • 전반적인 고 언어 만족도는 여전히 매우 높으며, 전체 응답자의 93%가 ‘매우 만족(63%)’ 또는 ‘어느 정도 만족(30%)’이라고 전했다. 불만족스럽다는 응답은 4%에 불과했다.  • 버그를 찾기 위해 입력을 지속적으로 조작하...

7일 전

‘C# 11’ 출시 임박··· “객체 초기화 등 기능 추가”

마이크로소프트에서 개발한 인기 있는 객체-지향, 타입-세이프 프로그래밍 언어의 새 버전 ‘C# 11’이 거의 완성됐다. 한편 C# 11은 객체 초기화 개선, 일반 수학 지원 등 계속해서 기능을 추가 중이다.    객체 초기화를 사용하면 개발자는 변경할 수 없는 그리고 변경 가능한 멤버에 적용할 규칙과 관계없이 해당 타입에서 생성자와 객체 이니셜라이저를 쉽게 지원할 수 있다고 회사 측은 언급했다. 일반 수학을 활용하면 여러 숫자 타입에 알고리즘을 한번 작성할 수 있다. 이를 통해 머신러닝, 통계 및 기타 수학 집약적 애플리케이션에 C#과 닷넷을 더 쉽게 쓸 수 있다.  이 밖에 완화된 오른쪽-시프트 요건, 서명되지 않은 오른쪽 시프트 연산자, 인터페이스의 정적 추상 및 정적 가상 멤버, 숫자 IntPtr] 등의 기능도 제공된다.  마이크로소프트는 지난 8월 9일 출시된 비주얼 스튜디오 2022 17.3 IDE에서 해당 언어에 이러한 새 기능을 추가했다고 밝혔다. C# 11의 이전 개선 사항에는 원시 문자열 리터럴 및 리스트 패턴 등이 있다.  C# 11의 개발자 생산성을 위해 이제 비주얼 스튜디오 2022 17.3부터 nameof 연산자를 메소드 매개변수와 함께 사용할 수 있다. 이를 통해 개발자는 메소드 속성 선언에서 이 연산자를 쓸 수 있다.  또 C# 11에 새롭게 추가된 컴파일러는 구조체 타입의 필드가 기본값으로 초기화된다. 즉, 생성자에 의해 초기화되지 않는 모든 필드 또는 자동 속성은 컴파일러에 의해 자동으로 초기화된다. 생성자가 모든 필드를 확실하게 할당하지 않는 구조체는 이제 컴파일되고, 명시적으로 초기화되지 않은 필드는 기본값으로 설정된다.  아울러 패턴 일치에서는 문자열에 특정 상수 값이 있는지 테스트하는 데 사용됐던 동일한 패턴 일치 로직을 이제 Span<char> 또는 ReadOnlySpan<char> 변수와 함께 쓸 수 있다. ciokr@idg...

마이크로소프트 C# C# 11 프로그래밍 언어 개발 언어

2022.08.24

마이크로소프트에서 개발한 인기 있는 객체-지향, 타입-세이프 프로그래밍 언어의 새 버전 ‘C# 11’이 거의 완성됐다. 한편 C# 11은 객체 초기화 개선, 일반 수학 지원 등 계속해서 기능을 추가 중이다.    객체 초기화를 사용하면 개발자는 변경할 수 없는 그리고 변경 가능한 멤버에 적용할 규칙과 관계없이 해당 타입에서 생성자와 객체 이니셜라이저를 쉽게 지원할 수 있다고 회사 측은 언급했다. 일반 수학을 활용하면 여러 숫자 타입에 알고리즘을 한번 작성할 수 있다. 이를 통해 머신러닝, 통계 및 기타 수학 집약적 애플리케이션에 C#과 닷넷을 더 쉽게 쓸 수 있다.  이 밖에 완화된 오른쪽-시프트 요건, 서명되지 않은 오른쪽 시프트 연산자, 인터페이스의 정적 추상 및 정적 가상 멤버, 숫자 IntPtr] 등의 기능도 제공된다.  마이크로소프트는 지난 8월 9일 출시된 비주얼 스튜디오 2022 17.3 IDE에서 해당 언어에 이러한 새 기능을 추가했다고 밝혔다. C# 11의 이전 개선 사항에는 원시 문자열 리터럴 및 리스트 패턴 등이 있다.  C# 11의 개발자 생산성을 위해 이제 비주얼 스튜디오 2022 17.3부터 nameof 연산자를 메소드 매개변수와 함께 사용할 수 있다. 이를 통해 개발자는 메소드 속성 선언에서 이 연산자를 쓸 수 있다.  또 C# 11에 새롭게 추가된 컴파일러는 구조체 타입의 필드가 기본값으로 초기화된다. 즉, 생성자에 의해 초기화되지 않는 모든 필드 또는 자동 속성은 컴파일러에 의해 자동으로 초기화된다. 생성자가 모든 필드를 확실하게 할당하지 않는 구조체는 이제 컴파일되고, 명시적으로 초기화되지 않은 필드는 기본값으로 설정된다.  아울러 패턴 일치에서는 문자열에 특정 상수 값이 있는지 테스트하는 데 사용됐던 동일한 패턴 일치 로직을 이제 Span<char> 또는 ReadOnlySpan<char> 변수와 함께 쓸 수 있다. ciokr@idg...

2022.08.24

어느덧 10년 훌쩍, ‘고(Go)’ 언어를 돌아보다··· 특징 및 전망

구글에서 개발한 인기 있는 프로그래밍 언어 ‘고(Go)’의 강점, 약점, 사용 사례, 앞으로의 발전 방향을 살펴본다.  구글의 프로그래밍 언어, 일명 ‘고랭’(2022년 3월 현재 버전 1.18)은 출시 당시 알파 긱에게 주목받는 신기한 언어 정도였지만 10년이 지난 지금 이는 중요 클라우드 프로젝트의 핵심 언어로 우뚝 올라섰다. 도커와 쿠버네티스 등의 프로젝트 개발자가 고를 선택한 이유는 무엇일까? 고의 대표적인 특징은 무엇이고, 다른 프로그래밍 언어와 어떻게 다르며, 가장 적합한 프로젝트 종류는 무엇일까? 여기서는 고의 특징, 최적 사용 사례, 없는 기능 및 한계, 앞으로의 발전 방향을 살펴본다.    작고 단순하다 고랭이라고도 불리는 고는 구글 엔지니어 롭 파이크를 중심으로 구글 직원들이 개발했지만 엄밀히 말하면 ‘구글 프로젝트’는 아니었다. 오히려 고는 사용법과 방향성에 강력한 의견을 가진 리더십이 주도하는 커뮤니티 기반의 오픈소스 프로젝트로 개발됐다.  고는 배우거나 사용하기 쉬운 그리고 다른 개발자도 읽기 쉬운 언어를 목표로 설계됐다. 그래서 C++ 같은 언어와 비교하면 기능이 그렇게 많지는 않다. 문법적으로는 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 또한 고의 동시성과 함수형 프로그래밍 기능은 얼랭(Erlang) 등의 언어를 연상시키기도 한다. 여러 크로스 플랫폼 엔터프라이즈 애플리케이션을 구축 및 유지하기 위한 C와 유사한 언어인 만큼 고는 자바(Java)와 공통점이 많다. 아울러 어디에든 실행할 수 있는 코드를 신속하게 개발할 수 있게 해준다는 점은 파이썬과 비슷하다. 다만 파이썬과 비교하면 유사점보다는 차이점이 훨씬 많다. 고 언어에는 모두를 위한 무언가가 있다 고 문서는 고를 “동적 타입의 인터프리터 언어처럼 느껴지는, 빠른 정적 타입의 컴파일 언어”라고 설명한다. 실제로 용량이 큰 고 프로그램도 몇 초 안에 컴파일된다. 또한 고는 파일 및 라이브러리 등 C 스타...

구글 고 언어 고랭 프로그래밍 언어 개발 언어 제네릭

2022.08.17

구글에서 개발한 인기 있는 프로그래밍 언어 ‘고(Go)’의 강점, 약점, 사용 사례, 앞으로의 발전 방향을 살펴본다.  구글의 프로그래밍 언어, 일명 ‘고랭’(2022년 3월 현재 버전 1.18)은 출시 당시 알파 긱에게 주목받는 신기한 언어 정도였지만 10년이 지난 지금 이는 중요 클라우드 프로젝트의 핵심 언어로 우뚝 올라섰다. 도커와 쿠버네티스 등의 프로젝트 개발자가 고를 선택한 이유는 무엇일까? 고의 대표적인 특징은 무엇이고, 다른 프로그래밍 언어와 어떻게 다르며, 가장 적합한 프로젝트 종류는 무엇일까? 여기서는 고의 특징, 최적 사용 사례, 없는 기능 및 한계, 앞으로의 발전 방향을 살펴본다.    작고 단순하다 고랭이라고도 불리는 고는 구글 엔지니어 롭 파이크를 중심으로 구글 직원들이 개발했지만 엄밀히 말하면 ‘구글 프로젝트’는 아니었다. 오히려 고는 사용법과 방향성에 강력한 의견을 가진 리더십이 주도하는 커뮤니티 기반의 오픈소스 프로젝트로 개발됐다.  고는 배우거나 사용하기 쉬운 그리고 다른 개발자도 읽기 쉬운 언어를 목표로 설계됐다. 그래서 C++ 같은 언어와 비교하면 기능이 그렇게 많지는 않다. 문법적으로는 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 또한 고의 동시성과 함수형 프로그래밍 기능은 얼랭(Erlang) 등의 언어를 연상시키기도 한다. 여러 크로스 플랫폼 엔터프라이즈 애플리케이션을 구축 및 유지하기 위한 C와 유사한 언어인 만큼 고는 자바(Java)와 공통점이 많다. 아울러 어디에든 실행할 수 있는 코드를 신속하게 개발할 수 있게 해준다는 점은 파이썬과 비슷하다. 다만 파이썬과 비교하면 유사점보다는 차이점이 훨씬 많다. 고 언어에는 모두를 위한 무언가가 있다 고 문서는 고를 “동적 타입의 인터프리터 언어처럼 느껴지는, 빠른 정적 타입의 컴파일 언어”라고 설명한다. 실제로 용량이 큰 고 프로그램도 몇 초 안에 컴파일된다. 또한 고는 파일 및 라이브러리 등 C 스타...

2022.08.17

파이썬, 여전히 뜨겁다··· “티오베·Pypl 모두에서 또 1위”

‘막을 수 없는 기세의’ 파이썬이 다시 한번 티오베(Tiobe) 그리고 Pypl(PopularitY of Programming Language) 지수에서 모두 1위를 차지했다.    파이썬이 티오베 지수에서 처음으로 1위를 차지한 지 1년가량이 지났지만 이 프로그래밍 언어는 개발자 사이에서 계속 높은 점수를 받고 있다. 최근 발표된 2022년 8월 순위에서 파이썬은 지난달보다 2%P 상승한 15.2%로 역대 최고 기록을 경신하며 가장 인기 있는 프로그래밍 언어 1위에 올랐다.  파이썬은 지난 2021년 10월 처음으로 티오베 지수에서 1위를 차지했으며, 자바와 C를 제외하고 유일하게 1위 자리를 지킨 언어가 됐다. 티오베는 이와 관련해 “파이썬의 기세를 막을 수 없다”라고 언급했다.  한편 티오베 지수는 구글, 빙, 야후, 빙, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 이어 “요즘 파이썬이 사용되지 않는 프로그래밍 분야를 찾기 힘들다. 유일한 예외는 (안전이 중요한) 임베디드 시스템이다. 파이썬이 동적으로 입력되고 너무 느리기 때문이다”라고 티오베는 언급했다. 반면에 C와 C++은 임베디드 시스템에 활용되고 있다고 덧붙였다.  이 밖에 8월 티오베 지수에서 러스트는 22위를 기록해 20위권에 근접했으며, 최근 C++의 후계자로 언급되고 있는 카본(Carbon)은 192위로 지수에 진입했다. 8월 티오베 지수의 톱 10은 다음과 같다.  1. 파이썬(15.42%) 2. C(14.59%) 3. 자바(12.4%) 4. C++(10.17%) 5. C#(5.59%) 6. 비주얼 베이직(4.99%) 7. 자바스크립트(2.33%) 8. 어셈블리(2.17%) 9. SQL(1.7%) 10. PHP(1.39%) 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기...

프로그래밍 언어 개발 언어 파이썬 티오베

2022.08.09

‘막을 수 없는 기세의’ 파이썬이 다시 한번 티오베(Tiobe) 그리고 Pypl(PopularitY of Programming Language) 지수에서 모두 1위를 차지했다.    파이썬이 티오베 지수에서 처음으로 1위를 차지한 지 1년가량이 지났지만 이 프로그래밍 언어는 개발자 사이에서 계속 높은 점수를 받고 있다. 최근 발표된 2022년 8월 순위에서 파이썬은 지난달보다 2%P 상승한 15.2%로 역대 최고 기록을 경신하며 가장 인기 있는 프로그래밍 언어 1위에 올랐다.  파이썬은 지난 2021년 10월 처음으로 티오베 지수에서 1위를 차지했으며, 자바와 C를 제외하고 유일하게 1위 자리를 지킨 언어가 됐다. 티오베는 이와 관련해 “파이썬의 기세를 막을 수 없다”라고 언급했다.  한편 티오베 지수는 구글, 빙, 야후, 빙, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 이어 “요즘 파이썬이 사용되지 않는 프로그래밍 분야를 찾기 힘들다. 유일한 예외는 (안전이 중요한) 임베디드 시스템이다. 파이썬이 동적으로 입력되고 너무 느리기 때문이다”라고 티오베는 언급했다. 반면에 C와 C++은 임베디드 시스템에 활용되고 있다고 덧붙였다.  이 밖에 8월 티오베 지수에서 러스트는 22위를 기록해 20위권에 근접했으며, 최근 C++의 후계자로 언급되고 있는 카본(Carbon)은 192위로 지수에 진입했다. 8월 티오베 지수의 톱 10은 다음과 같다.  1. 파이썬(15.42%) 2. C(14.59%) 3. 자바(12.4%) 4. C++(10.17%) 5. C#(5.59%) 6. 비주얼 베이직(4.99%) 7. 자바스크립트(2.33%) 8. 어셈블리(2.17%) 9. SQL(1.7%) 10. PHP(1.39%) 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기...

2022.08.09

고(Go) 1.19 출시 ··· “제네릭 코드 성능 최대 20% 향상”

구글이 ‘고(Go)’ 프로그래밍 언어의 최신 버전을 선보였다. 이번 업데이트는 최근 추가된 제네릭을 개선하고, 향상된 메모리 모델을 선보였다.  지난 8월 2일(현지 시각) ‘고 1.19’이 공개됐다. 개발팀에 따르면 제네릭 개발은 해당 커뮤니티에서 제기된 몇 가지 문제 그리고 성능 개선(일부 제네릭 프로그램에서 최대 20% 성능 향상)을 해결하는 데 초점을 맞췄다. 제네릭 기능들은 지난 3월 출시된 고 버전 1.18에서 도입됐다.    아울러 고 메모리 모델은 동기화/원자 패키지 동작을 명시적으로 정의한다. 동기화 알고리즘을 구축하기 위한 저수준 원자 메모리 기본 요소도 제공한다. 발생 이전(happens-before) 관계의 공식 정의는 C, C++, 자바, 자바스크립트, 러스트, 스위프트에서 사용되는 메모리 모델에 맞게 수정됐다. 기존 프로그램을 영향을 받지 않는다고 개발팀은 전했다.  메모리 모델 업데이트 외에도 atomic.int64 및 atomic.Pointer(T) 등 새로운 유형이 동기화/원자 패키지에 지원돼 원자 값을 더 쉽게 사용할 수 있다. 고 1.19는 이곳(go.dev)에서 다운로드할 수 있다. 고 1.19의 기타 개선사항 및 새로운 기능은 다음과 같다.  • 가비지 수집기에 소프트 메모리 제한이 추가됐다. 이 제한을 통해 고 프로그램을 최적화해 메모리 양이 할당된 컨테이너에서 가능한 한 효율적으로 실행되도록 할 수 있다. • 스택 카피라이팅을 줄이기 위한 코루틴 스택의 동적 크기 조정, 유닉스 시스템에서의 자동 추가 파일 설명자 사용, x86-64 및 Arm 64 상에서의 스위치 스테이트먼트용 점프 테이블, Arm64에서의 디버거 주입 함수 호출 지원이 지원된다.  • 메소드 선언의 형식 매개변수가 수정됐다. 기존 프로그램은 영향을 받지 않는다. • 이제 문서 주석에서 링크, 목록, 제목 구문을 지원한다. 특히 대규모 API를 갖춘 패키지에서 명확한 문서 주석을 작성할...

고 언어 고랭 구글 개발 언어 프로그래밍 언어 제네릭

2022.08.04

구글이 ‘고(Go)’ 프로그래밍 언어의 최신 버전을 선보였다. 이번 업데이트는 최근 추가된 제네릭을 개선하고, 향상된 메모리 모델을 선보였다.  지난 8월 2일(현지 시각) ‘고 1.19’이 공개됐다. 개발팀에 따르면 제네릭 개발은 해당 커뮤니티에서 제기된 몇 가지 문제 그리고 성능 개선(일부 제네릭 프로그램에서 최대 20% 성능 향상)을 해결하는 데 초점을 맞췄다. 제네릭 기능들은 지난 3월 출시된 고 버전 1.18에서 도입됐다.    아울러 고 메모리 모델은 동기화/원자 패키지 동작을 명시적으로 정의한다. 동기화 알고리즘을 구축하기 위한 저수준 원자 메모리 기본 요소도 제공한다. 발생 이전(happens-before) 관계의 공식 정의는 C, C++, 자바, 자바스크립트, 러스트, 스위프트에서 사용되는 메모리 모델에 맞게 수정됐다. 기존 프로그램을 영향을 받지 않는다고 개발팀은 전했다.  메모리 모델 업데이트 외에도 atomic.int64 및 atomic.Pointer(T) 등 새로운 유형이 동기화/원자 패키지에 지원돼 원자 값을 더 쉽게 사용할 수 있다. 고 1.19는 이곳(go.dev)에서 다운로드할 수 있다. 고 1.19의 기타 개선사항 및 새로운 기능은 다음과 같다.  • 가비지 수집기에 소프트 메모리 제한이 추가됐다. 이 제한을 통해 고 프로그램을 최적화해 메모리 양이 할당된 컨테이너에서 가능한 한 효율적으로 실행되도록 할 수 있다. • 스택 카피라이팅을 줄이기 위한 코루틴 스택의 동적 크기 조정, 유닉스 시스템에서의 자동 추가 파일 설명자 사용, x86-64 및 Arm 64 상에서의 스위치 스테이트먼트용 점프 테이블, Arm64에서의 디버거 주입 함수 호출 지원이 지원된다.  • 메소드 선언의 형식 매개변수가 수정됐다. 기존 프로그램은 영향을 받지 않는다. • 이제 문서 주석에서 링크, 목록, 제목 구문을 지원한다. 특히 대규모 API를 갖춘 패키지에서 명확한 문서 주석을 작성할...

2022.08.04

“C++의 후계자가 목표”··· 구글, ‘카본’ 공개

‘C++’을 대체하기 위해 개발 중인 오픈소스 프로그래밍 언어 ‘카본(Carbon)’은 C++과 동일한 수준의 성능 그리고 호환성을 지원하는 한편, 기술적 부채와 고질적인 문제를 해결할 계획이다.  전 세계에서 가장 많이 쓰이는 프로그래밍 언어 중 하나인 ‘C++’의 후계자가 필요한 시점이라고 생각하는가? 구글의 개발자 그룹은 그렇다고 보고 있다.     해당 그룹은 C++과의 상호 운용성을 제공하는 동시에, 이 레거시 언어를 개선하는 데 있어 알려진 문제를 해결하는 실험적 프로그래밍 언어 ‘카본’을 개발하고 있다. 개발팀에 따르면 카본은 C 또는 C++이 수십 년간 쌓아온 기술적 부채를 상속하지 않으면서 최신 제네릭 시스템, 간단한 구문, 모듈식 코드 구성 등의 기반으로 시작하여 앞서 언급한 장애물을 극복하려고 시도 중이다.  현재 카본은 사용 가능한 상태는 아니다. 카본 개발팀은 C++이 퍼포먼스 크리티컬 소프트웨어 구축에 지배적인 프로그래밍 언어이며, 방대한 코드 기반이 있다고 말했다. 이에 카본은 ‘진화’보다는 ‘후속 접근 방식’을 제시하며, 기존 C++ 코드 기반 및 C++ 개발자를 위한 마이그레이션을 지원할 것이라고 전했다.  카본은 지난주 캐나다 토론토에서 열린 개발자 컨퍼런스 ‘C++노스(CPP North)’에서 공개됐다. 카본의 리소스는 해당 프로젝트의 깃허브 리포지토리에서 액세스할 수 있다. 개발팀은 C++ 후계자로써의 요건을 다음과 같이 언급하면서, 카본의 접근 방식이 C++ 생태계 위에 구축될 수 있다고 밝혔다.  • C++과 동일한 수준의 성능  • C++과의 원활한 상호 운용성 • 완만한 학습 곡선 • 비슷한 표현식 • 확장 가능한 마이그레이션  카본은 타입스크립트가 자바스크립트, 코틀린이 자바와 비슷한 것처럼 C++과 유사하게 설계됐다. 개발팀은 카본이 퍼포먼스 크리티컬 소프트웨어, 소프트웨어 및 언어 발전을 지원하고, 안전하며 읽기 및 쓰기가 쉬운 ...

C++ 카본 구글 프로그래밍 언어 개발 언어 오픈소스

2022.07.29

‘C++’을 대체하기 위해 개발 중인 오픈소스 프로그래밍 언어 ‘카본(Carbon)’은 C++과 동일한 수준의 성능 그리고 호환성을 지원하는 한편, 기술적 부채와 고질적인 문제를 해결할 계획이다.  전 세계에서 가장 많이 쓰이는 프로그래밍 언어 중 하나인 ‘C++’의 후계자가 필요한 시점이라고 생각하는가? 구글의 개발자 그룹은 그렇다고 보고 있다.     해당 그룹은 C++과의 상호 운용성을 제공하는 동시에, 이 레거시 언어를 개선하는 데 있어 알려진 문제를 해결하는 실험적 프로그래밍 언어 ‘카본’을 개발하고 있다. 개발팀에 따르면 카본은 C 또는 C++이 수십 년간 쌓아온 기술적 부채를 상속하지 않으면서 최신 제네릭 시스템, 간단한 구문, 모듈식 코드 구성 등의 기반으로 시작하여 앞서 언급한 장애물을 극복하려고 시도 중이다.  현재 카본은 사용 가능한 상태는 아니다. 카본 개발팀은 C++이 퍼포먼스 크리티컬 소프트웨어 구축에 지배적인 프로그래밍 언어이며, 방대한 코드 기반이 있다고 말했다. 이에 카본은 ‘진화’보다는 ‘후속 접근 방식’을 제시하며, 기존 C++ 코드 기반 및 C++ 개발자를 위한 마이그레이션을 지원할 것이라고 전했다.  카본은 지난주 캐나다 토론토에서 열린 개발자 컨퍼런스 ‘C++노스(CPP North)’에서 공개됐다. 카본의 리소스는 해당 프로젝트의 깃허브 리포지토리에서 액세스할 수 있다. 개발팀은 C++ 후계자로써의 요건을 다음과 같이 언급하면서, 카본의 접근 방식이 C++ 생태계 위에 구축될 수 있다고 밝혔다.  • C++과 동일한 수준의 성능  • C++과의 원활한 상호 운용성 • 완만한 학습 곡선 • 비슷한 표현식 • 확장 가능한 마이그레이션  카본은 타입스크립트가 자바스크립트, 코틀린이 자바와 비슷한 것처럼 C++과 유사하게 설계됐다. 개발팀은 카본이 퍼포먼스 크리티컬 소프트웨어, 소프트웨어 및 언어 발전을 지원하고, 안전하며 읽기 및 쓰기가 쉬운 ...

2022.07.29

‘편리한’ 파이썬과 ‘빠른’ 러스트를 결합하는 법

두 언어의 라이브러리 덕분에 파이썬(Python)의 ‘편리함’과 러스트(Rust)의 ‘속도’를 결합할 수 있다. PyO3 프로젝트와 C파이썬(cpython) 크레이트를 시작해보자.  언뜻 보기에 파이썬과 러스트는 언어 스펙트럼의 양끝을 차지한다. 런타임으로 설명되는 파이썬은 개발자에게 유연하고 편리한 프로그래밍 환경을 제공하지만 실행 성능을 대가로 치러야 한다. 러스트는 속도와 메모리 안정성을 제공하지만 메모리 작업을 처리하는 새 패러다임을 배워야 한다.  이론적으로 이 언어들은 경쟁해서는 안 된다. 협력해야 한다. 그리고 실제로 가능한 일이다. 러스트는 파이썬의 사용 편의성이란 이점을, 파이썬은 러스트의 속도와 안정성이라는 이점을 얻을 수 있다.  단, 파이썬과 함께 러스트를 반대로 러스트와 함께 파이썬을 사용하여 최적의 결과를 얻으려면 최소한 두 언어를 어느 정도 알아야 한다. 또 각 접근법의 옵션이 크게 다르기 때문에 둘 중 어느 것이 기본 언어인지 결정해야 한다.    PyO3로 파이썬에서 러스트 호출하기 만약 파이썬이 기본 언어라면 러스트와의 통합은 개념적으로 파이썬을 C와 통합하는 것과 동일한 방식으로 이뤄진다. C로 작성된 파이썬의 기본 구현은 C로 작성된 확장 또는 C-호환 ABI를 사용하는 확장을 쓴다. 동일한 API를 활용하는 러스트로 작성된 확장도 작동하지만 자동은 아니다. 파이썬 C API에 러스트 함수 바인딩을 제공하도록 설계된 크레이트를 사용해야 한다.  파이썬에서 러스트 바인딩 만들기 파이썬에서 러스트 바인딩을 생성하기 위해 가장 널리 알려진 프로젝트는 PyO3다. 러스트에서 파이썬 모듈을 작성하거나 파이썬 런타임을 러스트 바이너리에 포함하는 데 사용할 수 있다.  PyO3는 또 다른 프로젝트 ‘마트린(Maturin)’을 활용한다. 이는 파이썬 패키징 및 바인딩으로 러스트 크레이트를 작성하는 도구다. 파이썬 가상 환경에 설치하면 마트린을 명령줄에서 사용하여 파...

파이썬 러스트 사이썬 C파이썬 프로그래밍 언어 개발 언어

2022.07.07

두 언어의 라이브러리 덕분에 파이썬(Python)의 ‘편리함’과 러스트(Rust)의 ‘속도’를 결합할 수 있다. PyO3 프로젝트와 C파이썬(cpython) 크레이트를 시작해보자.  언뜻 보기에 파이썬과 러스트는 언어 스펙트럼의 양끝을 차지한다. 런타임으로 설명되는 파이썬은 개발자에게 유연하고 편리한 프로그래밍 환경을 제공하지만 실행 성능을 대가로 치러야 한다. 러스트는 속도와 메모리 안정성을 제공하지만 메모리 작업을 처리하는 새 패러다임을 배워야 한다.  이론적으로 이 언어들은 경쟁해서는 안 된다. 협력해야 한다. 그리고 실제로 가능한 일이다. 러스트는 파이썬의 사용 편의성이란 이점을, 파이썬은 러스트의 속도와 안정성이라는 이점을 얻을 수 있다.  단, 파이썬과 함께 러스트를 반대로 러스트와 함께 파이썬을 사용하여 최적의 결과를 얻으려면 최소한 두 언어를 어느 정도 알아야 한다. 또 각 접근법의 옵션이 크게 다르기 때문에 둘 중 어느 것이 기본 언어인지 결정해야 한다.    PyO3로 파이썬에서 러스트 호출하기 만약 파이썬이 기본 언어라면 러스트와의 통합은 개념적으로 파이썬을 C와 통합하는 것과 동일한 방식으로 이뤄진다. C로 작성된 파이썬의 기본 구현은 C로 작성된 확장 또는 C-호환 ABI를 사용하는 확장을 쓴다. 동일한 API를 활용하는 러스트로 작성된 확장도 작동하지만 자동은 아니다. 파이썬 C API에 러스트 함수 바인딩을 제공하도록 설계된 크레이트를 사용해야 한다.  파이썬에서 러스트 바인딩 만들기 파이썬에서 러스트 바인딩을 생성하기 위해 가장 널리 알려진 프로젝트는 PyO3다. 러스트에서 파이썬 모듈을 작성하거나 파이썬 런타임을 러스트 바이너리에 포함하는 데 사용할 수 있다.  PyO3는 또 다른 프로젝트 ‘마트린(Maturin)’을 활용한다. 이는 파이썬 패키징 및 바인딩으로 러스트 크레이트를 작성하는 도구다. 파이썬 가상 환경에 설치하면 마트린을 명령줄에서 사용하여 파...

2022.07.07

“C++ 23, 표준 라이브러리 모듈 및 더 빠른 컴파일 지원할 계획”

오는 2023년 완성될 예정인 C++ 프로그래밍 언어의 차기 버전 ‘C++ 23’은 표준 라이브러리 모듈과 더 빠른 컴파일을 지원할 계획이다.    C++을 개발한 비얀 스트로스트룹은 이번 업그레이드에 표준 라이브러리 모듈(std)과 코루틴 일부 지원이 포함될 것이라고 밝혔다. 표준 라이브러리 모듈을 사용해 “Hello World”라는 문자열을 출력하는 간단한 프로그램을 만드는 방법은 아래와 같다.    import std: int main() {    Std::cout<< "Hello, World!\n"; } 이는 #include <iostream>을 사용하는 이전 버전보다 10배 더 빠르게 컴파일될 것이라고 그는 설명했다.  아울러 스트로스트룹에 따르면 모듈은 향상된 컴파일 속도와 코드 위생을 제공할 뿐만 아니라 일반 기능 및 템플릿의 소스 구성을 통합한다. 그는 “.h/.cpp 구분이 사라지고 C++ 소스 코드가 근본적으로 단순화된다. 결국 모듈은 코드를 구성하는 방식에 있어 가장 중요한 개선사항이 될 것”이라고 전했다.  이어서 그는 “ISO(International Organization for Standardization)에 따라 개발 중인 C++ 23에는 사소한 개선사항이 많지만 몇몇은 사소하지 않을 것”이라고 덧붙였다.  한편 스트로스트룹은 C++ 11과 C++ 20 같은 방식으로 C++의 주요 업그레이드가 돼선 안 된다고 언급했다. 오히려 C++ 20을 완성하고 몇 가지 중요한 기능을 제공할 예정이었다는 게 그의 설명이다. 하지만 팬데믹이 발목을 잡았다. 스트로스트룹은 “가상으로 심도 깊은 설계 논의를 하기가 어려웠다. 대면 접촉이 없었던 게 큰 핸디캡으로 작용했다. 그 결과 패턴 매칭, 계약, 동시성(실행자)을 위한 일반 모델 등의 기능은 C++ 26까지 기다려야 할 것으로 보인다”라...

C++ C++ 23 프로그래밍 언어

2022.06.03

오는 2023년 완성될 예정인 C++ 프로그래밍 언어의 차기 버전 ‘C++ 23’은 표준 라이브러리 모듈과 더 빠른 컴파일을 지원할 계획이다.    C++을 개발한 비얀 스트로스트룹은 이번 업그레이드에 표준 라이브러리 모듈(std)과 코루틴 일부 지원이 포함될 것이라고 밝혔다. 표준 라이브러리 모듈을 사용해 “Hello World”라는 문자열을 출력하는 간단한 프로그램을 만드는 방법은 아래와 같다.    import std: int main() {    Std::cout<< "Hello, World!\n"; } 이는 #include <iostream>을 사용하는 이전 버전보다 10배 더 빠르게 컴파일될 것이라고 그는 설명했다.  아울러 스트로스트룹에 따르면 모듈은 향상된 컴파일 속도와 코드 위생을 제공할 뿐만 아니라 일반 기능 및 템플릿의 소스 구성을 통합한다. 그는 “.h/.cpp 구분이 사라지고 C++ 소스 코드가 근본적으로 단순화된다. 결국 모듈은 코드를 구성하는 방식에 있어 가장 중요한 개선사항이 될 것”이라고 전했다.  이어서 그는 “ISO(International Organization for Standardization)에 따라 개발 중인 C++ 23에는 사소한 개선사항이 많지만 몇몇은 사소하지 않을 것”이라고 덧붙였다.  한편 스트로스트룹은 C++ 11과 C++ 20 같은 방식으로 C++의 주요 업그레이드가 돼선 안 된다고 언급했다. 오히려 C++ 20을 완성하고 몇 가지 중요한 기능을 제공할 예정이었다는 게 그의 설명이다. 하지만 팬데믹이 발목을 잡았다. 스트로스트룹은 “가상으로 심도 깊은 설계 논의를 하기가 어려웠다. 대면 접촉이 없었던 게 큰 핸디캡으로 작용했다. 그 결과 패턴 매칭, 계약, 동시성(실행자)을 위한 일반 모델 등의 기능은 C++ 26까지 기다려야 할 것으로 보인다”라...

2022.06.03

타입스크립트 4.7 출시··· “노드.js16용 ESM 지원”

‘타입스크립트 4.7(TypeScript 4.7)’이 프로덕션 릴리즈로 출시됐다. 마이크로소프트가 자바스크립트에 정적 타입 문법을 추가해 만든 이 오픈소스 프로그래밍 언어의 최신 버전은 노드.js 16(Node.js 16)에 ECMA스크립트(ESM) 모듈을 지원하고, 다양한 코딩 기능을 개선했다.    ‘노드.js용 ESM 지원’은 타입스크립트 릴리즈에 뒤늦게 추가됐다. 작년 말 타입스크립트 4.5에서 계획돼 있었으나 이번 릴리즈로 연기돼, 지난 4월 8일 공개된 타입스크립트 4.7 베타에서 노드.js 12용 ESM 지원이 포함됐다. 하지만 노드.js 12가 더 이상 지원되지 않아 타입스크립트 개발팀은 노드.js 16에서 스테이블 버전을 시작했다. 이는 패턴 트레일러 등의 ECMA스크립트 모듈 기능을 제공할 뿐만 아니라 타입스크립트를 최상위 await를 지원하는 상위 타깃으로 기본 설정한다.  노드.js용 ECMA스크립트 모듈 지원 기능의 나이틀리 버전은 타입스크립트 4.5 릴리즈 기간 동안 재출시됐다. 이 모듈을 사용하면 패키징을 통해 코드를 재사용할 수 있다. 개발팀에 따르면 노드.js가 다른 모듈 시스템인 커먼JS(CommonJS)에 구축된 탓에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드16(node16)과 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가한다. 타입스크립트 4.7은 누겟(NuGet) 또는 NPM(npm install -D typescript)을 통해 다운로드할 수 있다. 이 밖에 타입스크립트 4.7의 다른 기능은 아래와 같다.  • 인덱싱된 키가 리터럴 유형 및 고유 기호일 때, 괄호로 묶인 요소 액세스의 제어 흐름 분석은 이제 요소 액세스 유형을 좁힌다.  • 타입스크립트 4.7에는 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 적용됐다.  • 모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이 지...

마이크로소프트 타입스크립트 자바스크립트 오픈소스 프로그래밍 언어 개발 언어 노드.js ECMA스크립트

2022.05.30

‘타입스크립트 4.7(TypeScript 4.7)’이 프로덕션 릴리즈로 출시됐다. 마이크로소프트가 자바스크립트에 정적 타입 문법을 추가해 만든 이 오픈소스 프로그래밍 언어의 최신 버전은 노드.js 16(Node.js 16)에 ECMA스크립트(ESM) 모듈을 지원하고, 다양한 코딩 기능을 개선했다.    ‘노드.js용 ESM 지원’은 타입스크립트 릴리즈에 뒤늦게 추가됐다. 작년 말 타입스크립트 4.5에서 계획돼 있었으나 이번 릴리즈로 연기돼, 지난 4월 8일 공개된 타입스크립트 4.7 베타에서 노드.js 12용 ESM 지원이 포함됐다. 하지만 노드.js 12가 더 이상 지원되지 않아 타입스크립트 개발팀은 노드.js 16에서 스테이블 버전을 시작했다. 이는 패턴 트레일러 등의 ECMA스크립트 모듈 기능을 제공할 뿐만 아니라 타입스크립트를 최상위 await를 지원하는 상위 타깃으로 기본 설정한다.  노드.js용 ECMA스크립트 모듈 지원 기능의 나이틀리 버전은 타입스크립트 4.5 릴리즈 기간 동안 재출시됐다. 이 모듈을 사용하면 패키징을 통해 코드를 재사용할 수 있다. 개발팀에 따르면 노드.js가 다른 모듈 시스템인 커먼JS(CommonJS)에 구축된 탓에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드16(node16)과 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가한다. 타입스크립트 4.7은 누겟(NuGet) 또는 NPM(npm install -D typescript)을 통해 다운로드할 수 있다. 이 밖에 타입스크립트 4.7의 다른 기능은 아래와 같다.  • 인덱싱된 키가 리터럴 유형 및 고유 기호일 때, 괄호로 묶인 요소 액세스의 제어 흐름 분석은 이제 요소 액세스 유형을 좁힌다.  • 타입스크립트 4.7에는 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 적용됐다.  • 모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이 지...

2022.05.30

‘코틀린 1.7.0’ 베타 출시··· “빌더 타입 추론 변경”

젯브레인(JetBrains)에서 만든 크로스 플랫폼 오픈소스 프로그래밍 언어의 최신 버전 ‘코틀린 1.7.0’이 베타 릴리즈 단계에 도달했다. 이번 업데이트는 빌더 타입 추론 변경사항과 새로운 메모리 관리자 등을 특징으로 한다.    회사에 따르면 빌더 추론은 일반 빌더 함수를 호출할 때 유용한 타입 추론이다. 이는 컴파일러가 람다 인수 내 다른 호출의 타입 정보를 사용하여 해당 호출의 타입 인수를 추론하는 데 도움을 준다.  1.7.0 베타에서는 -Xenable-builder-inference 컴파일러 옵션을 지정하지 않고 일반 타입 추론이 충분한 타입 정보를 얻을 수 없을 때 빌더 추론이 자동으로 활성화된다. 즉, 이제 개발자는 추가 주석이나 옵션을 적용하지 않고 빌더 타입 추론을 사용하는 빌더를 작성할 수 있다는 설명이다. 이번 변경사항으로 빌더 추론 안정화에 가까워졌다고 젯브레인은 밝혔다.  또 베타 릴리즈에는 새로운 코틀린/네이티브 메모리 관리자 알파 버전이 제공된다. 이 관리자는 JVM과 네이티브 플랫폼 간의 차이를 제거한다. 회사에 의하면 개발자는 안드로이드와 iOS 모두에서 작동하는 크로스 플랫폼 모바일 애플리케이션을 더 쉽게 구축할 수 있다. 아울러 스레드 간 객체 공유 제한이 제거되고, 특정한 관리나 주석이 필요하지 않은 ‘누수 없는(leak-free)’ 동시 프로그래밍 기본 요소가 지원된다. 새 메모리 관리자는 향후 버전에서 디폴트로 제공될 예정이다.  코틀린 1.7.0 베타 설치 지침은 이곳에서 확인할 수 있다. 이 밖에 베타의 다른 기능은 아래와 같다.  • ‘확실히 nullable이 아닌(definitely non-nullable types)’ 타입이 안정화됐다. 이는 지난달 공개된 코틀린 1.6.20에서 도입됐으며, 현재 디폴트로 활성화된다. 일반 자바 클래스 및 인터페이스를 확장할 때 개발자에게 향상된 상호운용성을 지원하는 타입을 제공한다.  • min()와...

젯브레인 코틀린 프로그래밍 언어 개발 언어 크로스 플랫폼 자바

2022.05.19

젯브레인(JetBrains)에서 만든 크로스 플랫폼 오픈소스 프로그래밍 언어의 최신 버전 ‘코틀린 1.7.0’이 베타 릴리즈 단계에 도달했다. 이번 업데이트는 빌더 타입 추론 변경사항과 새로운 메모리 관리자 등을 특징으로 한다.    회사에 따르면 빌더 추론은 일반 빌더 함수를 호출할 때 유용한 타입 추론이다. 이는 컴파일러가 람다 인수 내 다른 호출의 타입 정보를 사용하여 해당 호출의 타입 인수를 추론하는 데 도움을 준다.  1.7.0 베타에서는 -Xenable-builder-inference 컴파일러 옵션을 지정하지 않고 일반 타입 추론이 충분한 타입 정보를 얻을 수 없을 때 빌더 추론이 자동으로 활성화된다. 즉, 이제 개발자는 추가 주석이나 옵션을 적용하지 않고 빌더 타입 추론을 사용하는 빌더를 작성할 수 있다는 설명이다. 이번 변경사항으로 빌더 추론 안정화에 가까워졌다고 젯브레인은 밝혔다.  또 베타 릴리즈에는 새로운 코틀린/네이티브 메모리 관리자 알파 버전이 제공된다. 이 관리자는 JVM과 네이티브 플랫폼 간의 차이를 제거한다. 회사에 의하면 개발자는 안드로이드와 iOS 모두에서 작동하는 크로스 플랫폼 모바일 애플리케이션을 더 쉽게 구축할 수 있다. 아울러 스레드 간 객체 공유 제한이 제거되고, 특정한 관리나 주석이 필요하지 않은 ‘누수 없는(leak-free)’ 동시 프로그래밍 기본 요소가 지원된다. 새 메모리 관리자는 향후 버전에서 디폴트로 제공될 예정이다.  코틀린 1.7.0 베타 설치 지침은 이곳에서 확인할 수 있다. 이 밖에 베타의 다른 기능은 아래와 같다.  • ‘확실히 nullable이 아닌(definitely non-nullable types)’ 타입이 안정화됐다. 이는 지난달 공개된 코틀린 1.6.20에서 도입됐으며, 현재 디폴트로 활성화된다. 일반 자바 클래스 및 인터페이스를 확장할 때 개발자에게 향상된 상호운용성을 지원하는 타입을 제공한다.  • min()와...

2022.05.19

틈새 파고든다, 새로운 프로그래밍 언어 11선

웹어셈블리를 훨씬 더 쉽게 작성하는 법부터 머신러닝을 지원하는 시각적 언어까지 새로운 프로그래밍 도구 11가지를 살펴본다. 이는 어쩌면 소프트웨어 작성 방식을 재정의할지도 모른다.  영국의 시인 알렉산더 포프는 “희망은 인간의 가슴에서 영원히 샘솟는다(Hope springs eternal in the human breast)”라고 말했으니 해커가 아닌 시인이라 할지라도 새로운 프로그래밍 언어 발견에 대한 희망을 이해할 것이라 본다. 소프트웨어 개발자들은 유니코드 문자의 독특한 조합으로 만들어진 언어가 마침내 모든 문제를 해결하여 몇 번의 클릭만으로 쉽게 코딩할 수 있길 영원히 희망하고 있다.  포프는 분명 답을 상상하기만 하면 될 정도로 직관적인 구문에 대한 희망을 이해할 것이다. 또한 그는 올림픽에서 볼 수 있는 트리플 악셀 혹은 대회전 활강처럼 (사실은 그렇지 않지만) 힘들지 않고 우아해 보이는 새로운 코드를 손에 넣으려는 열망을 높이 평가할 것이다.    하지만 오늘날의 언어 대부분은 기발함이나 코딩 역량을 보여주기 위해 만들어지진 않았다. 이는 개발자(창작자)가 간절하게 해결하고자 했던 문제에 해결책을 내놓으면서 만들어졌다. 대다수의 개발자가 하나 이상의 오래된 기성 언어로 코딩을 계속하겠지만 코딩 문제를 해결하는 데 도움이 되는 새로운 도구도 ‘영원히’ 찾고 있다. 특히, 도메인별 언어(DSL)의 부상에서 이러한 경향을 볼 수 있다. 이러한 언어는 특정 도메인에 초점을 맞추고 있으며, 범용적으로 사용하진 못한다. 하지만 바로 그런 이유로 도구 상자에서 특별한 위치를 차지할 수 있다.  여기서는 틈새시장을 찾은 11개의 새로운 언어를 살펴본다. 비록 지금 당장 필요한 것은 아니지만 이 모두는 현재 하는 일을 개선할 무언가를 갖고 있다. 리액티브 클로저(Reactive Clojure) 이는 클로저(Clojure)와 리액트(React)를 결합한 결과다. 즉, 리액티브 프론트엔드의 모든 가능성과 클로저의...

개발자 소프트웨어 개발 프로그래밍 언어 개발 언어 웹어셈블리 리액티브 클로저 니켈 코브라 바이셉 프링크 파우스트 멜로즈 글리콜 웨이스 자바

2022.05.11

웹어셈블리를 훨씬 더 쉽게 작성하는 법부터 머신러닝을 지원하는 시각적 언어까지 새로운 프로그래밍 도구 11가지를 살펴본다. 이는 어쩌면 소프트웨어 작성 방식을 재정의할지도 모른다.  영국의 시인 알렉산더 포프는 “희망은 인간의 가슴에서 영원히 샘솟는다(Hope springs eternal in the human breast)”라고 말했으니 해커가 아닌 시인이라 할지라도 새로운 프로그래밍 언어 발견에 대한 희망을 이해할 것이라 본다. 소프트웨어 개발자들은 유니코드 문자의 독특한 조합으로 만들어진 언어가 마침내 모든 문제를 해결하여 몇 번의 클릭만으로 쉽게 코딩할 수 있길 영원히 희망하고 있다.  포프는 분명 답을 상상하기만 하면 될 정도로 직관적인 구문에 대한 희망을 이해할 것이다. 또한 그는 올림픽에서 볼 수 있는 트리플 악셀 혹은 대회전 활강처럼 (사실은 그렇지 않지만) 힘들지 않고 우아해 보이는 새로운 코드를 손에 넣으려는 열망을 높이 평가할 것이다.    하지만 오늘날의 언어 대부분은 기발함이나 코딩 역량을 보여주기 위해 만들어지진 않았다. 이는 개발자(창작자)가 간절하게 해결하고자 했던 문제에 해결책을 내놓으면서 만들어졌다. 대다수의 개발자가 하나 이상의 오래된 기성 언어로 코딩을 계속하겠지만 코딩 문제를 해결하는 데 도움이 되는 새로운 도구도 ‘영원히’ 찾고 있다. 특히, 도메인별 언어(DSL)의 부상에서 이러한 경향을 볼 수 있다. 이러한 언어는 특정 도메인에 초점을 맞추고 있으며, 범용적으로 사용하진 못한다. 하지만 바로 그런 이유로 도구 상자에서 특별한 위치를 차지할 수 있다.  여기서는 틈새시장을 찾은 11개의 새로운 언어를 살펴본다. 비록 지금 당장 필요한 것은 아니지만 이 모두는 현재 하는 일을 개선할 무언가를 갖고 있다. 리액티브 클로저(Reactive Clojure) 이는 클로저(Clojure)와 리액트(React)를 결합한 결과다. 즉, 리액티브 프론트엔드의 모든 가능성과 클로저의...

2022.05.11

“C# 무서운 상승세, C 대체할 수도” 티오베 인덱스

티오베 인덱스(Tiobe Index)에 따르면 마이크로소프트의 프로그래밍 언어 ‘C#’의 인기가 심상치 않다. 2022년 5월 C#의 순위는 작년 5월과 동일하게 5위(6.39%)를 기록했지만 이를 지목한 비율은 1년 전(4.41%)에 비해 2%P 가까이 증가했다.    소프트웨어 품질 서비스 회사 티오베는 C#을 “현존하는 가장 성숙한 언어이며, 많은 현대 프로그래밍 패러다임을 지원한다”라고 설명하면서, 더 많은 고객이 지난 2년 동안 리눅스에서 C#을 실행하기 시작했다고 밝혔다. 이어서 “C#이 티오베 인덱스의 상위 3개 언어 중 C를 대체할 수 있는 가능성이 크다”라고 내다봤다. 아울러 C#과 마찬가지로 상승세를 보이고 있는 ‘C++’은 작년 대비 1.01%P 증가했다. 전년 동기 대비 2위에서 1위로 올라선 파이썬은 0.86%P 증가했으며, 1위에서 2위로 내려간 C는 1.80%P 감소했다. 3위를 지킨 자바도 0.74% 감소했다.  티오베 인덱스는 구글, 빙, 야후, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 2022년 5월 티오베 인덱스 톱 10은 다음과 같다. 1. 파이썬(12.74%) 2. C(11.59%) 3. 자바(10.99%) 4. C++(8.83%) 5. C#(6.39%) 6. 비주얼 베이직(5.86%) 7. 자바스크립트(2.12%) 8. 어셈블리(1.92%) 9. SQL(1.87%) 10. PHP(1.52%) 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스의 톱 10은 다음과 같다. C#은 해당 인덱스에서도 상위 5위 안에 들었다.  1. 파이선(27.85%) 2. 자바(17.86%) 3. 자바스크립트(9.17%) 4. C#(7.62...

프로그래밍 언어 개발 언어 티오베 인덱스 C#

2022.05.11

티오베 인덱스(Tiobe Index)에 따르면 마이크로소프트의 프로그래밍 언어 ‘C#’의 인기가 심상치 않다. 2022년 5월 C#의 순위는 작년 5월과 동일하게 5위(6.39%)를 기록했지만 이를 지목한 비율은 1년 전(4.41%)에 비해 2%P 가까이 증가했다.    소프트웨어 품질 서비스 회사 티오베는 C#을 “현존하는 가장 성숙한 언어이며, 많은 현대 프로그래밍 패러다임을 지원한다”라고 설명하면서, 더 많은 고객이 지난 2년 동안 리눅스에서 C#을 실행하기 시작했다고 밝혔다. 이어서 “C#이 티오베 인덱스의 상위 3개 언어 중 C를 대체할 수 있는 가능성이 크다”라고 내다봤다. 아울러 C#과 마찬가지로 상승세를 보이고 있는 ‘C++’은 작년 대비 1.01%P 증가했다. 전년 동기 대비 2위에서 1위로 올라선 파이썬은 0.86%P 증가했으며, 1위에서 2위로 내려간 C는 1.80%P 감소했다. 3위를 지킨 자바도 0.74% 감소했다.  티오베 인덱스는 구글, 빙, 야후, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 2022년 5월 티오베 인덱스 톱 10은 다음과 같다. 1. 파이썬(12.74%) 2. C(11.59%) 3. 자바(10.99%) 4. C++(8.83%) 5. C#(6.39%) 6. 비주얼 베이직(5.86%) 7. 자바스크립트(2.12%) 8. 어셈블리(1.92%) 9. SQL(1.87%) 10. PHP(1.52%) 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스의 톱 10은 다음과 같다. C#은 해당 인덱스에서도 상위 5위 안에 들었다.  1. 파이선(27.85%) 2. 자바(17.86%) 3. 자바스크립트(9.17%) 4. C#(7.62...

2022.05.11

“열에 아홉은 여전히 만족” 고(Go) 언어 개발자 설문조사

‘고(Go) 언어 개발자 설문조사 2021(Go Developer Survey 2021)’에 따르면 10명 중 9명 이상의 개발자가 고 언어 사용에 만족하는 것으로 나타났다. 기능 및 라이브러리 부족은 여전한 단점으로 지적됐다.    지난주 고 언어 개발자 설문조사 2021(Go Developer Survey 2021) 결과가 발표됐다. 구글에서 개발한 고 언어의 개발자 만족도는 매우 높은 수준을 유지하고 있지만 주요 라이브러리, 기능, 인프라 부족 등의 사용 장벽도 여전했다.  전체 응답자의 92%는 고 언어를 사용하는 것이 매우 또는 다소 만족스럽다고 밝혔다. 지난해 설문조사 결과와 동일한 수치다. 반면에 특정 프로젝트에서 이 언어를 쓰지 않는다고 답한 개발자의 39%는 그 이유로 필요한 기능 부족을 꼽았다. 라이브러리 부족(34%)이 그 뒤를 이었다. 물론 가장 많이 언급됐던 기능은 제네릭이었으나, 이는 설문조사 종료 이후(3월) 고 1.18에서 공식적으로 도입됐다.   이번 고 언어 개발자 설문조사는 2021년 10월 26일부터 11월 16일까지 3주 동안 진행됐으며, 총 참여 인원은 1만 1,840명으로 역대 최대 규모였다. 이 밖에 살펴볼 만한 다른 설문조사 결과는 다음과 같다.  • 모듈 사용 시 가장 큰 문제는 버전 관리, 개인 저장소 및 다중모듈 워크플로우 사용인 것으로 조사됐다. 하지만 고 1.18은 워크스페이스를 도입하면서 많은 문제를 해결했다고 고 언어 개발팀은 전했다.  • 고 언어의 주요 사용 사례에는 API/RPC 서비스(49%), 데이터 처리(10%), 웹 서비스(10%), CLI(8%) 등이 있었다.  • 전체 응답자의 절반은 고 언어 성능 최적화 및 프로젝트 디렉터리 구조의 베스트 프랙티스에 관한 추가 가이드라인을 원한다고 밝혔다.  • 리눅스에서 고 언어를 주로 사용하여 개발한다고 답한 비율이 2019년, 2020년, 2021년에 각각 66%...

프로그래밍 언어 개발 언어 고 언어 고랭

2022.04.27

‘고(Go) 언어 개발자 설문조사 2021(Go Developer Survey 2021)’에 따르면 10명 중 9명 이상의 개발자가 고 언어 사용에 만족하는 것으로 나타났다. 기능 및 라이브러리 부족은 여전한 단점으로 지적됐다.    지난주 고 언어 개발자 설문조사 2021(Go Developer Survey 2021) 결과가 발표됐다. 구글에서 개발한 고 언어의 개발자 만족도는 매우 높은 수준을 유지하고 있지만 주요 라이브러리, 기능, 인프라 부족 등의 사용 장벽도 여전했다.  전체 응답자의 92%는 고 언어를 사용하는 것이 매우 또는 다소 만족스럽다고 밝혔다. 지난해 설문조사 결과와 동일한 수치다. 반면에 특정 프로젝트에서 이 언어를 쓰지 않는다고 답한 개발자의 39%는 그 이유로 필요한 기능 부족을 꼽았다. 라이브러리 부족(34%)이 그 뒤를 이었다. 물론 가장 많이 언급됐던 기능은 제네릭이었으나, 이는 설문조사 종료 이후(3월) 고 1.18에서 공식적으로 도입됐다.   이번 고 언어 개발자 설문조사는 2021년 10월 26일부터 11월 16일까지 3주 동안 진행됐으며, 총 참여 인원은 1만 1,840명으로 역대 최대 규모였다. 이 밖에 살펴볼 만한 다른 설문조사 결과는 다음과 같다.  • 모듈 사용 시 가장 큰 문제는 버전 관리, 개인 저장소 및 다중모듈 워크플로우 사용인 것으로 조사됐다. 하지만 고 1.18은 워크스페이스를 도입하면서 많은 문제를 해결했다고 고 언어 개발팀은 전했다.  • 고 언어의 주요 사용 사례에는 API/RPC 서비스(49%), 데이터 처리(10%), 웹 서비스(10%), CLI(8%) 등이 있었다.  • 전체 응답자의 절반은 고 언어 성능 최적화 및 프로젝트 디렉터리 구조의 베스트 프랙티스에 관한 추가 가이드라인을 원한다고 밝혔다.  • 리눅스에서 고 언어를 주로 사용하여 개발한다고 답한 비율이 2019년, 2020년, 2021년에 각각 66%...

2022.04.27

칼럼 | 범용 DB의 귀환? 애초에 물러난 적이 없다

데이터베이스는 범용 모델에서 특화 모델로 발전해왔다. 하지만 최근 범용 모델로 돌아가려는 움직임이 보인다. 정말 그럴까?    작년 레드몽크(RedMonk) 애널리스트 스티븐 오그레이디는 ‘A Return to the General Purpose Database’(범용 데이터베이스의 귀환)이라는 제목의 글을 썼다. 글에 따르면 데이터베이스 시장 요구에 따라 ‘바닐라DB’(VanillaDB) 같은 관계형 데이터베이스를 넘어 NoSQL 같은 수많은 특화 데이터베이스가 만들어졌다(심지어 AWS는 수많은 종류의 맞춤형 데이터베이스를 만들어 판매했다). 그런데 10년 넘게 이어져 왔던 전환의 추세가 뒤집히는 듯했다는 것이 글의 핵심 주장이었다. 실제로 데이터베이스 관리 시스템별 사용률을 추적하는 DB엔진을 살펴보면 한때는 소수였던 데이터베이스가 2022년에는 무려 391개로 늘어났다. 오그레이디에 따르면 이제 소수의 범용 데이터베이스로 다시 간추려질 차례다. 과연 그럴까?  애초에 시장은 범용 데이터베이스를 떠난 적이 없다.  데이터 관리 도구를 만드는 모달 랩스(Modal Labs)의 CEO 에릭 베른하르트는 “궁극적으로 범용 도구(프로그래밍 언어, 데이터베이스, 프레임워크 등등)는 특화된 도구보다 더 많이 쓰일 수밖에 없다. 성능과 같은 특정한 측면에서 10배가 넘는 우위를 가졌더라도 말이다”라고 설명했다. 그는 “지난 10년 동안 데이터베이스, 프로그래밍 언어, 프레임워크의 역사를 통틀어봐도 범용 도구가 대부분 마지막 승자로 이름을 올려왔다”라고 덧붙였다.  왜일까? 개발자가 잡다한 특화 도구를 배울 여력이 없기 때문이다.   10년이 지나도 같은 도구가 상위권 유지  DB 엔진에 따르면 2012년 10월에 가장 많이 쓰인 데이터베이스는 다음과 같다.   오라클(Oracle) 마이크로소프트 SQL 서버(Microsoft SQL Server) 마이SQL(MySQL)&...

데이터베이스 백엔드 프로그래밍 언어

2022.04.19

데이터베이스는 범용 모델에서 특화 모델로 발전해왔다. 하지만 최근 범용 모델로 돌아가려는 움직임이 보인다. 정말 그럴까?    작년 레드몽크(RedMonk) 애널리스트 스티븐 오그레이디는 ‘A Return to the General Purpose Database’(범용 데이터베이스의 귀환)이라는 제목의 글을 썼다. 글에 따르면 데이터베이스 시장 요구에 따라 ‘바닐라DB’(VanillaDB) 같은 관계형 데이터베이스를 넘어 NoSQL 같은 수많은 특화 데이터베이스가 만들어졌다(심지어 AWS는 수많은 종류의 맞춤형 데이터베이스를 만들어 판매했다). 그런데 10년 넘게 이어져 왔던 전환의 추세가 뒤집히는 듯했다는 것이 글의 핵심 주장이었다. 실제로 데이터베이스 관리 시스템별 사용률을 추적하는 DB엔진을 살펴보면 한때는 소수였던 데이터베이스가 2022년에는 무려 391개로 늘어났다. 오그레이디에 따르면 이제 소수의 범용 데이터베이스로 다시 간추려질 차례다. 과연 그럴까?  애초에 시장은 범용 데이터베이스를 떠난 적이 없다.  데이터 관리 도구를 만드는 모달 랩스(Modal Labs)의 CEO 에릭 베른하르트는 “궁극적으로 범용 도구(프로그래밍 언어, 데이터베이스, 프레임워크 등등)는 특화된 도구보다 더 많이 쓰일 수밖에 없다. 성능과 같은 특정한 측면에서 10배가 넘는 우위를 가졌더라도 말이다”라고 설명했다. 그는 “지난 10년 동안 데이터베이스, 프로그래밍 언어, 프레임워크의 역사를 통틀어봐도 범용 도구가 대부분 마지막 승자로 이름을 올려왔다”라고 덧붙였다.  왜일까? 개발자가 잡다한 특화 도구를 배울 여력이 없기 때문이다.   10년이 지나도 같은 도구가 상위권 유지  DB 엔진에 따르면 2012년 10월에 가장 많이 쓰인 데이터베이스는 다음과 같다.   오라클(Oracle) 마이크로소프트 SQL 서버(Microsoft SQL Server) 마이SQL(MySQL)&...

2022.04.19

타입스크립트 4.7, 마침내 '노드.js용 ESM 지원' 도입한다

현재 베타 릴리즈 상태인 마이크로소프트의 ‘타입스크립트(TypeScript)’ 최신 버전은 노드.js 12(Node.js 12)의 ECMA스크립트 모듈(ECMAScript module; ESM) 지원뿐만 아니라 여러 개선사항을 제공한다.    지난 4월 8일(현지 시각) 베타 릴리즈로 공개된 ‘타입스크립트 4.7’는 자바스크립트(JavaScript)에 정적 타입 문법을 추가한 오픈소스 프로그래밍 언어의 (계획된) 최신 버전이다. 타입스크립트 4.7는 (타입스크립트와 연동할 수 있는) 노드.js 12의 ESM 지원을 제공한다.  사실상 이는 작년 말 타입스크립트 4.5에서 계획돼 있었지만 이번 릴리즈로 연기됐다. 아울러 타입스크립트 4.5에서는 개발자용 노드.js ECMA스크립트 모듈 지원 버전도 공개된 바 있다. 이 모듈을 활용하면 패키징을 통해 자바스크립트 코드를 재사용할 수 있다. 하지만 노드.js가 다른 모듈 시스템인 커먼JS(commonJS)에 구축됐기 때문에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드12(node12)와 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가했다고 개발팀은 전했다.  한편 타입스크립트 4.7의 릴리즈 캔디데이트는 5월 10일, 정식 버전은 5월 24일 출시될 예정이다. 베타 릴리즈는 다음의 NPM을 통해 액세스할 수 있다(npm install typescript@beta). 이 밖에 타입스크립트 4.7의 새로운 기능 및 개선사항은 아래와 같다.  • 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 도입됐다.  • 모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이 지원된다.  • 컴퓨터 속성의 제어 흐름 분석을 통해 연산된 속성의 유형을 분석하고 정확하게 범위를 좁힐 수 있다.  • 이제 타입스크립트에서 객체 및 배열을 사용한 더 세분화된 함수 추론을 수행할 수 있다....

마이크로소프트 자바스크립트 타입스크립트 프로그래밍 언어 개발 언어 노드.js ESM

2022.04.13

현재 베타 릴리즈 상태인 마이크로소프트의 ‘타입스크립트(TypeScript)’ 최신 버전은 노드.js 12(Node.js 12)의 ECMA스크립트 모듈(ECMAScript module; ESM) 지원뿐만 아니라 여러 개선사항을 제공한다.    지난 4월 8일(현지 시각) 베타 릴리즈로 공개된 ‘타입스크립트 4.7’는 자바스크립트(JavaScript)에 정적 타입 문법을 추가한 오픈소스 프로그래밍 언어의 (계획된) 최신 버전이다. 타입스크립트 4.7는 (타입스크립트와 연동할 수 있는) 노드.js 12의 ESM 지원을 제공한다.  사실상 이는 작년 말 타입스크립트 4.5에서 계획돼 있었지만 이번 릴리즈로 연기됐다. 아울러 타입스크립트 4.5에서는 개발자용 노드.js ECMA스크립트 모듈 지원 버전도 공개된 바 있다. 이 모듈을 활용하면 패키징을 통해 자바스크립트 코드를 재사용할 수 있다. 하지만 노드.js가 다른 모듈 시스템인 커먼JS(commonJS)에 구축됐기 때문에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드12(node12)와 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가했다고 개발팀은 전했다.  한편 타입스크립트 4.7의 릴리즈 캔디데이트는 5월 10일, 정식 버전은 5월 24일 출시될 예정이다. 베타 릴리즈는 다음의 NPM을 통해 액세스할 수 있다(npm install typescript@beta). 이 밖에 타입스크립트 4.7의 새로운 기능 및 개선사항은 아래와 같다.  • 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 도입됐다.  • 모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이 지원된다.  • 컴퓨터 속성의 제어 흐름 분석을 통해 연산된 속성의 유형을 분석하고 정확하게 범위를 좁힐 수 있다.  • 이제 타입스크립트에서 객체 및 배열을 사용한 더 세분화된 함수 추론을 수행할 수 있다....

2022.04.13

“제네릭 자바 클래스 호환성 향상 外” 코틀린 1.6.20 출시

젯브레인이 지난 4월 4일(현지 시각) ‘코틀린 1.6.20’을 출시했다. 이 최신 업데이트는 제네릭 자바 클래스와의 호환성 개선, 빌드 시간 단축 등을 특징으로 한다.    회사에 따르면 이번 릴리즈에서는 제네릭 자바 클래스 및 인터페이스를 확장할 때 호환성을 향상하고자 ‘non-nullable인 유형(Definitely non-nullable types)’을 지원한다. 단, 이는 현재 베타 단계다. 개발자는 새로운 구문(T & Any)을 사용하여 제네릭 유형 매개변수를 non-nullable인 유형으로 표시할 수 있다.  빌드 시간을 단축하기 위한 ‘JVM IR 백엔드 모드(JVM IR back-end mode)’는 모듈의 모든 파일을 병렬로 컴파일한다. 현재 실험적 기능인 상태다. 이렇게 하면 컴파일 시간을 최대 15%까지 줄일 수 있다고 회사 측은 밝혔다. 하지만 이 병렬 컴파일에는 몇 가지 제약 조건이 있다. 설계상 더 많은 JVM 힙(heap)이 필요하고(힙의 양은 스레드 수에 비례한다), kapt는 IR 백엔드를 비활성화하기 때문에 해당 기능은 kapt에선 작동하지 않는다. 또 IR 컴파일러를 사용한 코틀린/JS 개발의 효율성을 높이기 위해 새로운 증분 컴파일 모드가 도입됐다.  한편 코틀린 1.6.20의 설치 가이드라인은 공식 웹사이트에서 확인할 수 있다. 다른 개선사항 및 새로운 기능은 아래와 같다.  • 코틀린에서 생성된 LLVM IR 업데이트 및 버그 수정을 통해 코틀린/네이티브(Kotlin/Native) 성능이 향상됐다.  • 멀티플랫폼 프로젝트의 계층 구조 지원이 기본적으로 활성화됐다. 지난 2020년 8월 코틀린 1.4.0에서 제공됐던 이 기능은 프로젝트의 코드 공유를 개선한다.  • 코틀린/JVM용 컨텍스트 수신기의 프로토타입이 컨텍스트 종속 선언 정의를 위한 새로운 지원을 제공한다.  ciork@idg.co.kr

젯브레인 코틀린 개발자 프로그래밍 언어

2022.04.06

젯브레인이 지난 4월 4일(현지 시각) ‘코틀린 1.6.20’을 출시했다. 이 최신 업데이트는 제네릭 자바 클래스와의 호환성 개선, 빌드 시간 단축 등을 특징으로 한다.    회사에 따르면 이번 릴리즈에서는 제네릭 자바 클래스 및 인터페이스를 확장할 때 호환성을 향상하고자 ‘non-nullable인 유형(Definitely non-nullable types)’을 지원한다. 단, 이는 현재 베타 단계다. 개발자는 새로운 구문(T & Any)을 사용하여 제네릭 유형 매개변수를 non-nullable인 유형으로 표시할 수 있다.  빌드 시간을 단축하기 위한 ‘JVM IR 백엔드 모드(JVM IR back-end mode)’는 모듈의 모든 파일을 병렬로 컴파일한다. 현재 실험적 기능인 상태다. 이렇게 하면 컴파일 시간을 최대 15%까지 줄일 수 있다고 회사 측은 밝혔다. 하지만 이 병렬 컴파일에는 몇 가지 제약 조건이 있다. 설계상 더 많은 JVM 힙(heap)이 필요하고(힙의 양은 스레드 수에 비례한다), kapt는 IR 백엔드를 비활성화하기 때문에 해당 기능은 kapt에선 작동하지 않는다. 또 IR 컴파일러를 사용한 코틀린/JS 개발의 효율성을 높이기 위해 새로운 증분 컴파일 모드가 도입됐다.  한편 코틀린 1.6.20의 설치 가이드라인은 공식 웹사이트에서 확인할 수 있다. 다른 개선사항 및 새로운 기능은 아래와 같다.  • 코틀린에서 생성된 LLVM IR 업데이트 및 버그 수정을 통해 코틀린/네이티브(Kotlin/Native) 성능이 향상됐다.  • 멀티플랫폼 프로젝트의 계층 구조 지원이 기본적으로 활성화됐다. 지난 2020년 8월 코틀린 1.4.0에서 제공됐던 이 기능은 프로젝트의 코드 공유를 개선한다.  • 코틀린/JVM용 컨텍스트 수신기의 프로토타입이 컨텍스트 종속 선언 정의를 위한 새로운 지원을 제공한다.  ciork@idg.co.kr

2022.04.06

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.6