2021.10.26

마이크로소프트, F# 버전 6 공개··· “성능 및 편의성 향상”

Paul Krill | InfoWorld
마이크로소프트에서 개발한 오픈소스 다중 패러다임 프로그래밍 언어 ‘F#’의 최신 업데이트 버전(v6)이 출시됐다. 이 새로운 버전을 사용하면 간결하고 성능이 뛰어난 코드를 쉽게 작성할 수 있다고 회사 측은 밝혔다. 

F# 6는 지난 10월 19일(현지 시각) 공식 블로그를 통해 발표됐다. 이는 ‘닷넷 6 릴리즈 캔디데이트 2(.NET 6 RC2)’ 그리고 ‘비주얼 스튜디오 2022 RC2(Visual Studio 2022 RC2)’와 함께 제공된다. F#은 함수, 객체 지향, 명령어를 포함한 여러 프로그래밍 모델을 지원한다. 
 
ⓒGetty Images

마이크로소프트 개발팀은 언어 디자인, 라이브러리 및 도구 영역에서 언어를 더 간단하고 성능이 뛰어나게 만드는 게 F# 6의 목표였다고 말했다. 이 언어의 장기적인 목표는 사용자를 놀라게 하거나 언어 채택에 불필요한 장애물이 되는 코너 케이스(여러 변수와 환경의 복합적인 상호작용으로 발생하는 문제) 제거다. 

개발팀에 따르면 F#과 관련해 가장 많이 요청된 기능이자 이번 릴리즈의 가장 중요한 기능은 비동기 작업 작성(authoring asynchronous tasks)을 더 간단하고, 성능이 뛰어나며, C# 등의 다른 닷넷(.NET) 언어와 상호 운용할 수 있도록 하는 것이다. 

이전에는 async {…}를 사용하여 작업을 만든 다음 Async.AwaitTask를 호출하여 닷넷 작업을 생성해야 했다. 이제 task {…}를 직접 사용하여 작업을 빌드할 수 있다. task {…} 기본 지원은 네임스페이스를 열 필요 없이 F# 코드에서 사용할 수 있다. 

이 밖에 F# 6에서 제공하는 새로운 기능 및 변경사항은 다음과 같다. 

• F#을 더 쉽게 배울 수 있도록 이번 릴리즈에서는 expr[idx] 구문이 인덱서/슬라이싱 구문을 모방하도록 허용한다. 

• F # 6.0에서는 속도 향상을 위해 활성 패턴에 구조체 표현을 지원한다. 이를 통해 속성을 사용하여 값 옵션을 반환하도록 부분 활성 패턴을 제한할 수 있다. 

• 속도를 높이기 위해 F# 6는 목록 및 배열 표현식에서 디버깅 성능을 개선했다. 또 람다(Lambda) 인수가 호출 사이트에서 인라인돼야 한다는 것을 코드에서 선택적으로 나타낼 수 있는 새로운 선언적 함수를 추가했다. 

• 닷넷 스타일의 암시적 변환에 ‘최고 수준의(First-class)’ 지원이 제공된다. F# 6에서 op_Implicit 변환은 사용할 수 있는 인수 표현식과 소스 표현식 및 대상 유형이 알려진 유형에 자동으로 적용된다. 

• 파이프라인 디버깅이 F# 툴체인에 추가됐다. 

• 균일성을 위해 F# 6은 ‘계산 표현식에서 오버로드된 커스텀 연산’ 기능을 활성화한다. 이를 통해 유효성 검사 및 웹 프로그래밍을 포함하여 F#에서 더 간단한 DSL을 사용할 수 있다. 또 이제 ‘as’ 패턴의 오른쪽 자체가 패턴이 될 수 있으며, F#의 들여쓰기 인식 구문 사용에서 여러 불일치 및 제한사항이 제거됐다. 

• 성능 및 확장성 측면에서 F# 컴파일러는 구문 분석 단계를 병렬로 수행하도록 그리고 분석 결과는 동시에 수행되도록 개선됐다. 

• F# 개발자는 ▲일반적으로 사용되는 리눅스 배포판의 패키징 규칭을 충족하는 소스 빌드, ▲시작 코드를 고품질으로 컴파일하고, 바이너리 크기를 줄이며, 시작 시 사용되는 코드가 파일 시작 부분 근처에 배치되도록 애플리케이션 바이너리를 재배열하는 프로필 기반 최적화 등 닷넷 6 개선사항의 이점을 누릴 수 있다고 회사 측은 설명했다.

• F# 6의 ‘메모리 내 프로젝트 간 참조’는 F# 및 C# 프로젝트 간 작업을 단순화한다. 이 기능을 사용하면 디스크에서 C# 프로젝트를 다시 컴파일할 필요 없이 C# 프로젝트가 F# 프로젝트에 즉시 반영된다. 

• 비주얼 스튜디오(Visual Studio)에서 F# 스크립트(.fsx)를 열면 기본적으로 스크립트가 64비트 실행과 함께 닷넷 코어(.NET Core)를 사용하여 실행된다. 

• 거의 사용되지 않는 기호 연산자(symbolic operators)를 줄였다. 또 접미사 유형 이름을 사용하는 여러 일반 매개변수 등 오랫동안 사용되지 않는 레거시 기능을 제거했다. 

ciokr@idg.co.kr






 



2021.10.26

마이크로소프트, F# 버전 6 공개··· “성능 및 편의성 향상”

Paul Krill | InfoWorld
마이크로소프트에서 개발한 오픈소스 다중 패러다임 프로그래밍 언어 ‘F#’의 최신 업데이트 버전(v6)이 출시됐다. 이 새로운 버전을 사용하면 간결하고 성능이 뛰어난 코드를 쉽게 작성할 수 있다고 회사 측은 밝혔다. 

F# 6는 지난 10월 19일(현지 시각) 공식 블로그를 통해 발표됐다. 이는 ‘닷넷 6 릴리즈 캔디데이트 2(.NET 6 RC2)’ 그리고 ‘비주얼 스튜디오 2022 RC2(Visual Studio 2022 RC2)’와 함께 제공된다. F#은 함수, 객체 지향, 명령어를 포함한 여러 프로그래밍 모델을 지원한다. 
 
ⓒGetty Images

마이크로소프트 개발팀은 언어 디자인, 라이브러리 및 도구 영역에서 언어를 더 간단하고 성능이 뛰어나게 만드는 게 F# 6의 목표였다고 말했다. 이 언어의 장기적인 목표는 사용자를 놀라게 하거나 언어 채택에 불필요한 장애물이 되는 코너 케이스(여러 변수와 환경의 복합적인 상호작용으로 발생하는 문제) 제거다. 

개발팀에 따르면 F#과 관련해 가장 많이 요청된 기능이자 이번 릴리즈의 가장 중요한 기능은 비동기 작업 작성(authoring asynchronous tasks)을 더 간단하고, 성능이 뛰어나며, C# 등의 다른 닷넷(.NET) 언어와 상호 운용할 수 있도록 하는 것이다. 

이전에는 async {…}를 사용하여 작업을 만든 다음 Async.AwaitTask를 호출하여 닷넷 작업을 생성해야 했다. 이제 task {…}를 직접 사용하여 작업을 빌드할 수 있다. task {…} 기본 지원은 네임스페이스를 열 필요 없이 F# 코드에서 사용할 수 있다. 

이 밖에 F# 6에서 제공하는 새로운 기능 및 변경사항은 다음과 같다. 

• F#을 더 쉽게 배울 수 있도록 이번 릴리즈에서는 expr[idx] 구문이 인덱서/슬라이싱 구문을 모방하도록 허용한다. 

• F # 6.0에서는 속도 향상을 위해 활성 패턴에 구조체 표현을 지원한다. 이를 통해 속성을 사용하여 값 옵션을 반환하도록 부분 활성 패턴을 제한할 수 있다. 

• 속도를 높이기 위해 F# 6는 목록 및 배열 표현식에서 디버깅 성능을 개선했다. 또 람다(Lambda) 인수가 호출 사이트에서 인라인돼야 한다는 것을 코드에서 선택적으로 나타낼 수 있는 새로운 선언적 함수를 추가했다. 

• 닷넷 스타일의 암시적 변환에 ‘최고 수준의(First-class)’ 지원이 제공된다. F# 6에서 op_Implicit 변환은 사용할 수 있는 인수 표현식과 소스 표현식 및 대상 유형이 알려진 유형에 자동으로 적용된다. 

• 파이프라인 디버깅이 F# 툴체인에 추가됐다. 

• 균일성을 위해 F# 6은 ‘계산 표현식에서 오버로드된 커스텀 연산’ 기능을 활성화한다. 이를 통해 유효성 검사 및 웹 프로그래밍을 포함하여 F#에서 더 간단한 DSL을 사용할 수 있다. 또 이제 ‘as’ 패턴의 오른쪽 자체가 패턴이 될 수 있으며, F#의 들여쓰기 인식 구문 사용에서 여러 불일치 및 제한사항이 제거됐다. 

• 성능 및 확장성 측면에서 F# 컴파일러는 구문 분석 단계를 병렬로 수행하도록 그리고 분석 결과는 동시에 수행되도록 개선됐다. 

• F# 개발자는 ▲일반적으로 사용되는 리눅스 배포판의 패키징 규칭을 충족하는 소스 빌드, ▲시작 코드를 고품질으로 컴파일하고, 바이너리 크기를 줄이며, 시작 시 사용되는 코드가 파일 시작 부분 근처에 배치되도록 애플리케이션 바이너리를 재배열하는 프로필 기반 최적화 등 닷넷 6 개선사항의 이점을 누릴 수 있다고 회사 측은 설명했다.

• F# 6의 ‘메모리 내 프로젝트 간 참조’는 F# 및 C# 프로젝트 간 작업을 단순화한다. 이 기능을 사용하면 디스크에서 C# 프로젝트를 다시 컴파일할 필요 없이 C# 프로젝트가 F# 프로젝트에 즉시 반영된다. 

• 비주얼 스튜디오(Visual Studio)에서 F# 스크립트(.fsx)를 열면 기본적으로 스크립트가 64비트 실행과 함께 닷넷 코어(.NET Core)를 사용하여 실행된다. 

• 거의 사용되지 않는 기호 연산자(symbolic operators)를 줄였다. 또 접미사 유형 이름을 사용하는 여러 일반 매개변수 등 오랫동안 사용되지 않는 레거시 기능을 제거했다. 

ciokr@idg.co.kr






 

X