Offcanvas

���������

C++ 이을 왕좌엔 누가? '러스트vs.카본vs.Cpp프론트' 살펴보기

C와 C++는 프로그래밍 세계를 움직인다. 파이썬, 고 같은 신생 프로그래밍 언어가 주목받는 상황에서, 선뜻 납득하기 어려운 이야기일 수도 있다. 하지만 일반적으로 사용되는 고성능 데스크톱 애플리케이션과 운영체제 대다수는 C++, 임베디드 애플리케이션은 주로 C로 개발된다. 스마트폰 앱이나 웹 애플리케이션 개발 이야기가 아니다. 그런 영역은 자바, 코틀린, 오브젝티브 C, 스위프트 같은 각 플랫폼에 맞는 특수 언어를 사용해야 한다. 물론 C나 C++을 사용할 수 있지만 빠른 속도가 필요한 특정 반복문이나 여러 운영체제에 공통으로 들어가는 라이브러리 개발에만 쓰인다.    C와 C++는 오랜 기간 동안 시스템 프로그래밍을 주도했기에 이를 대체할 언어는 찾기 어렵다. 그럼에도 불구하고 많은 전문가가 이제 두 언어를 보내줄 때라고 지적한다. 프로그래머는 언제나 더 나은 대안을 포용해야 하기 때문이다. 마이크로소프트 애저 사업부 CTO 마크 러시노비치는 최근 “C와 C++ 개발자들은 러스트로 전환해야 한다”라며 “업계에서 두 언어를 사라질 언어라고 선언해야 한다”라고 밝혀 큰 반향을 일으키기도 했다. 많은 개발자가 실제 제품 개발 과정에서 C와 C++를 대체할 언어로 러스트를 주목한다. 하지만 다른 선택지도 존재한다. 카본과 Cpp프론트 같은 언어다. 세 언어의 장점을 본격적으로 살펴보기 전에 먼저 C와 C++의 역사와 문제점을 확인해보자.    C++의 문제점 C++는 비야네 스트롭스트룹이 1979년 벨 연구소에서 개발한 언어다. C++는 C에 객체 지향 기능을 비롯해 여러 개선 사항을 더하는 것이 목적이었기 때문에 초기에는 ‘객체가 있는 C’라고 불리기도 했다. 1983년 공식 이름이 C++로 정해지고, 1985년에는 벨 연구소 뿐만 아니라 일반 대중에게도 공개했다. 최초의 상용 C++ 컴파일러인 C프론트(Cfront)가 이때 나왔다. C프론트를 이용하면 C++를 C로 변환한 다음 컴파일하고 링크할 수 있다. 향후 C++ ...

러스트 CPP프론트 카본 개발 언어 프로그래밍 언어

2022.11.17

C와 C++는 프로그래밍 세계를 움직인다. 파이썬, 고 같은 신생 프로그래밍 언어가 주목받는 상황에서, 선뜻 납득하기 어려운 이야기일 수도 있다. 하지만 일반적으로 사용되는 고성능 데스크톱 애플리케이션과 운영체제 대다수는 C++, 임베디드 애플리케이션은 주로 C로 개발된다. 스마트폰 앱이나 웹 애플리케이션 개발 이야기가 아니다. 그런 영역은 자바, 코틀린, 오브젝티브 C, 스위프트 같은 각 플랫폼에 맞는 특수 언어를 사용해야 한다. 물론 C나 C++을 사용할 수 있지만 빠른 속도가 필요한 특정 반복문이나 여러 운영체제에 공통으로 들어가는 라이브러리 개발에만 쓰인다.    C와 C++는 오랜 기간 동안 시스템 프로그래밍을 주도했기에 이를 대체할 언어는 찾기 어렵다. 그럼에도 불구하고 많은 전문가가 이제 두 언어를 보내줄 때라고 지적한다. 프로그래머는 언제나 더 나은 대안을 포용해야 하기 때문이다. 마이크로소프트 애저 사업부 CTO 마크 러시노비치는 최근 “C와 C++ 개발자들은 러스트로 전환해야 한다”라며 “업계에서 두 언어를 사라질 언어라고 선언해야 한다”라고 밝혀 큰 반향을 일으키기도 했다. 많은 개발자가 실제 제품 개발 과정에서 C와 C++를 대체할 언어로 러스트를 주목한다. 하지만 다른 선택지도 존재한다. 카본과 Cpp프론트 같은 언어다. 세 언어의 장점을 본격적으로 살펴보기 전에 먼저 C와 C++의 역사와 문제점을 확인해보자.    C++의 문제점 C++는 비야네 스트롭스트룹이 1979년 벨 연구소에서 개발한 언어다. C++는 C에 객체 지향 기능을 비롯해 여러 개선 사항을 더하는 것이 목적이었기 때문에 초기에는 ‘객체가 있는 C’라고 불리기도 했다. 1983년 공식 이름이 C++로 정해지고, 1985년에는 벨 연구소 뿐만 아니라 일반 대중에게도 공개했다. 최초의 상용 C++ 컴파일러인 C프론트(Cfront)가 이때 나왔다. C프론트를 이용하면 C++를 C로 변환한 다음 컴파일하고 링크할 수 있다. 향후 C++ ...

2022.11.17

수십 년째 요지부동, 'C 언어'가 왕좌 지키는 이유

‘C 언어’는 지난 1972년 개발돼 지금까지 전 세계적으로 널리 사용되고 있으며, 소프트웨어 시대의 핵심적인 기본 구성요소로 군림하고 있다. 하지만 지난 수십 년 동안 새로운 언어가 많이 등장했다. 그중에는 노골적으로 C 언어의 아성에 도전한 언어도 있었고, 인기를 끌면서 C 언어를 조금씩 갉아먹은 언어도 있었다. 여기서는 C 언어와 C++, 자바, C#, 러스트, 파이썬 그리고 ‘쌩신입’ 카본을 비교해 살펴봤다.    C vs. C++ C 언어의 가장 흔한 비교 대상은 C++다. 이름에서 알 수 있는 것처럼 C++는 C 언어의 확장판으로 개발됐다. C++의 구문 및 접근 방식은 C와 유사하지만 이는 네임 스페이스, 템플릿, 예외 처리, 자동 메모리 관리 등 C에서는 기본 제공하지 않는 매우 유용한 기능을 지원한다. 데이터베이스나 머신러닝 시스템 등 최상급 성능을 요하는 프로젝트는 C++의 이러한 기능을 사용해 작성되는 경우가 많다. 또한 C++는 C보다 훨씬 더 적극적인 확장 중이다. 곧 출시될 C++ 23은 모듈, 코루틴, 더 빠른 컴파일, 모듈화된 표준 라이브러리 등 많은 기능을 제공할 예정이다. 반면에 C 표준의 최신 버전(C2x)은 추가 기능이 거의 없으며, 하위 호환성 유지에 주안점을 두고 있다.  문제는 C++의 모든 장점이 동시에 단점으로 작용하기도 한다는 것인데, 이 단점이 크다. C++의 기능을 많이 사용할수록 복잡성이 증가하며, 결과를 통제하기가 어려워진다. C++의 특정 부분만 제한적으로 사용하면 최악의 문제는 대부분 피할 수 있다. 이러한 복잡성을 원천적으로 차단하기도 한다. 예를 들면 리눅스 커널(Linux Kernel) 개발팀은 C++를 기피하며, 대부분의 리눅스는 여전히 C로 작성된다(현재 러스트를 향후 커널 추가를 위한 언어로 보고 있긴 하다).  물론 C++가 고수준 기능을 풍부히 갖추고 있는 이유는 분명하다. 하지만 현재와 미래의 프로젝트 및 프로젝트팀에 미니멀리즘이 더 적합하다면...

C 언어 C++ 파이썬 러스트 카본 자바 프로그래밍 언어 개발 언어 개발자 소프트웨어 개발

2022.09.30

‘C 언어’는 지난 1972년 개발돼 지금까지 전 세계적으로 널리 사용되고 있으며, 소프트웨어 시대의 핵심적인 기본 구성요소로 군림하고 있다. 하지만 지난 수십 년 동안 새로운 언어가 많이 등장했다. 그중에는 노골적으로 C 언어의 아성에 도전한 언어도 있었고, 인기를 끌면서 C 언어를 조금씩 갉아먹은 언어도 있었다. 여기서는 C 언어와 C++, 자바, C#, 러스트, 파이썬 그리고 ‘쌩신입’ 카본을 비교해 살펴봤다.    C vs. C++ C 언어의 가장 흔한 비교 대상은 C++다. 이름에서 알 수 있는 것처럼 C++는 C 언어의 확장판으로 개발됐다. C++의 구문 및 접근 방식은 C와 유사하지만 이는 네임 스페이스, 템플릿, 예외 처리, 자동 메모리 관리 등 C에서는 기본 제공하지 않는 매우 유용한 기능을 지원한다. 데이터베이스나 머신러닝 시스템 등 최상급 성능을 요하는 프로젝트는 C++의 이러한 기능을 사용해 작성되는 경우가 많다. 또한 C++는 C보다 훨씬 더 적극적인 확장 중이다. 곧 출시될 C++ 23은 모듈, 코루틴, 더 빠른 컴파일, 모듈화된 표준 라이브러리 등 많은 기능을 제공할 예정이다. 반면에 C 표준의 최신 버전(C2x)은 추가 기능이 거의 없으며, 하위 호환성 유지에 주안점을 두고 있다.  문제는 C++의 모든 장점이 동시에 단점으로 작용하기도 한다는 것인데, 이 단점이 크다. C++의 기능을 많이 사용할수록 복잡성이 증가하며, 결과를 통제하기가 어려워진다. C++의 특정 부분만 제한적으로 사용하면 최악의 문제는 대부분 피할 수 있다. 이러한 복잡성을 원천적으로 차단하기도 한다. 예를 들면 리눅스 커널(Linux Kernel) 개발팀은 C++를 기피하며, 대부분의 리눅스는 여전히 C로 작성된다(현재 러스트를 향후 커널 추가를 위한 언어로 보고 있긴 하다).  물론 C++가 고수준 기능을 풍부히 갖추고 있는 이유는 분명하다. 하지만 현재와 미래의 프로젝트 및 프로젝트팀에 미니멀리즘이 더 적합하다면...

2022.09.30

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

두 언어의 라이브러리 덕분에 파이썬(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

“개발자의 약 85%, 완전 또는 부분 원격근무한다” 스택 오버플로우

스택 오버플로우(Stack Overflow)의 ‘2022 개발자 설문조사(2022 Developer Survey)’ 결과에 따르면 대부분의 개발자가 원격에서 작업하고 있으며, 좋아하는 기술을 쓸 수 있는 유연한 환경을 선호하는 것으로 나타났다.  대부분의 소프트웨어 개발자는 현재 적어도 일정 시간 원격근무를 하고 있으며, 작업 환경의 유연성이 그 어느 때보다 중요하게 여겨지고 있다. 한편 2022년 5월 스택 오버플로우 개발자 설문조사에는 전 세계 180개국 총 7만 3,268명이 참여했다.    개발자 채용 및 유지의 새로운 법칙 지난 2020년, 완전히 원격근무로 전환해야 했던 개발자 팀이 많았다. 이번 보고서에 의하면 약 85%의 개발자는 소속 조직이 완전(42.98%) 또는 최소한 부분적으로(42.44%) 원격근무를 하고 있다고 답했다. 대기업일수록 완전 원격근무보다는 하이브리드 근무를 하는 경향이 컸다. 스택 오버플로우의 CEO 프라샨트 찬드라세카는 인포월드와의 인터뷰에서 “전 세계가 하이브리드 및 원격근무로 가고 있다. 이번 데이터는 기차는 이미 떠났다는 사실을 보여준다”라고 말했다.  이어서 그는 “작업 환경의 유연성 그리고 개발자가 쓰게 될 기술 스택은 직장 만족도에 가장 큰 영향을 미치는 요소인 것으로 조사됐다. 많은 개발자가 작업하게 될 기술 스택 때문에 채용 과정에서 중도 하차한다”라고 전했다.  한편 프리랜서 또는 개인 비즈니스를 하는 개발자가 작년보다 5%P 증가한 17%를 기록했다. 이 밖에 조직 문화도 변화하고 있으며, 클라우드 네이티브 기술이 인기를 끌었다. 대부분의 개발자의 현재 CI/CD(69.79%)를, 데브옵스 기능(59.35%), 자동화된 테스트(58.09%)를 사용하고 있다고 밝혔다. 하지만 필요한 도구 및 서비스를 쉽게 찾을 수 있는 내부 개발자 포털을 가지고 있다고 말한 개발자는 전체 응답자의 38%에 그쳤다. 아울러 내부 리소스 기술을 사용하여 코드와 지식을 공...

소프트웨어 개발자 스택 오버플로우 개발자 설문조사 원격근무 하이브리드 근무 자바스크립트 러스트 노드 리액트 클라우드 멀티클라우드 도커

2022.06.23

스택 오버플로우(Stack Overflow)의 ‘2022 개발자 설문조사(2022 Developer Survey)’ 결과에 따르면 대부분의 개발자가 원격에서 작업하고 있으며, 좋아하는 기술을 쓸 수 있는 유연한 환경을 선호하는 것으로 나타났다.  대부분의 소프트웨어 개발자는 현재 적어도 일정 시간 원격근무를 하고 있으며, 작업 환경의 유연성이 그 어느 때보다 중요하게 여겨지고 있다. 한편 2022년 5월 스택 오버플로우 개발자 설문조사에는 전 세계 180개국 총 7만 3,268명이 참여했다.    개발자 채용 및 유지의 새로운 법칙 지난 2020년, 완전히 원격근무로 전환해야 했던 개발자 팀이 많았다. 이번 보고서에 의하면 약 85%의 개발자는 소속 조직이 완전(42.98%) 또는 최소한 부분적으로(42.44%) 원격근무를 하고 있다고 답했다. 대기업일수록 완전 원격근무보다는 하이브리드 근무를 하는 경향이 컸다. 스택 오버플로우의 CEO 프라샨트 찬드라세카는 인포월드와의 인터뷰에서 “전 세계가 하이브리드 및 원격근무로 가고 있다. 이번 데이터는 기차는 이미 떠났다는 사실을 보여준다”라고 말했다.  이어서 그는 “작업 환경의 유연성 그리고 개발자가 쓰게 될 기술 스택은 직장 만족도에 가장 큰 영향을 미치는 요소인 것으로 조사됐다. 많은 개발자가 작업하게 될 기술 스택 때문에 채용 과정에서 중도 하차한다”라고 전했다.  한편 프리랜서 또는 개인 비즈니스를 하는 개발자가 작년보다 5%P 증가한 17%를 기록했다. 이 밖에 조직 문화도 변화하고 있으며, 클라우드 네이티브 기술이 인기를 끌었다. 대부분의 개발자의 현재 CI/CD(69.79%)를, 데브옵스 기능(59.35%), 자동화된 테스트(58.09%)를 사용하고 있다고 밝혔다. 하지만 필요한 도구 및 서비스를 쉽게 찾을 수 있는 내부 개발자 포털을 가지고 있다고 말한 개발자는 전체 응답자의 38%에 그쳤다. 아울러 내부 리소스 기술을 사용하여 코드와 지식을 공...

2022.06.23

깃허브, 러스트 언어용 공급망 보안 도구 추가

깃허브의 여러 공급망 보안 기능을 러스트 카고(Rust Cargo) 파일에 사용할 수 있게 됐다. 자문 데이터베이스(Advisory Database), 디펜더봇 경보(Dependabot Alerts), 디펜던시 그래프(Dependency Graph) 등의 활용처가 넓어진 셈이다.   깃허브가 러스트(Rust) 언어를 위한 일련의 공급망 보안 기능을 추가했다. 요즘 성장세를 타고 있는 러스트를 사용하는 개발자가 보안 취약성을 발견하고 예방할 수 있도록 지원하기 위함이다.   여기에는 깃허브 자문 데이터베이스가 포함된다. 이 데이터베이스는 400개 이상의 러스트 보안 권고 사항, 디펜더봇 경보 및 업데이트, 디펜던시 그래프를 지원하며, 러스트 카고 패키지 파일의 취약한 의존성에 대한 경고를 제공한다.  깃허브 자문 데이터베이스는 개발자가 조치를 취할 수 있는 취약점 정보를 제공하는 보안 데이터베이스이다. 데이터베이스에 기재된 취약점 대부분은 러스트 라이브러리와 관련된 보안 권고 사항을 게재하는 러스트섹(RustSec)에서 제공한다. 러스트 패키지 메인테이너는 보안 권고 사항을 참고해 취약점을 공개적으로 발표하기 전에 제보자와 협력한 뒤 서로 논의을 거쳐 취약점을 수정할 수 있다. 개발자는 커뮤니티 기여를 통해 러스트 취약점을 CVE(Common Vulnerabilities and Exposures)로 보고할 수 있다.  깃허브 디펜던시 그래프는 저장소의 Cargo.toml 및 Cargo.lock 파일을 분석하여 프로젝트의 의존관계를 판단한다. 디펜더봇은 이 디펜던시 그래프를 이용하여 개발자에게 알려진 취약성을 경고하고 풀 요청(pull request)을 생성하여 영향을 받는 의존성을 업데이트한다. 디펜던시 그래프는 공용 저장소에서 사용하도록 기본 설정되지만, 개인 저장소에서 사용하려면 따로 설정을 해야 한다.  깃허브는 공용 저장소의 디펜던시 그래프가 아직 업데이트되지 않았다면 곧 업데이트되...

러스트 깃허브 자문데이터베이스 공급망보안

2022.06.08

깃허브의 여러 공급망 보안 기능을 러스트 카고(Rust Cargo) 파일에 사용할 수 있게 됐다. 자문 데이터베이스(Advisory Database), 디펜더봇 경보(Dependabot Alerts), 디펜던시 그래프(Dependency Graph) 등의 활용처가 넓어진 셈이다.   깃허브가 러스트(Rust) 언어를 위한 일련의 공급망 보안 기능을 추가했다. 요즘 성장세를 타고 있는 러스트를 사용하는 개발자가 보안 취약성을 발견하고 예방할 수 있도록 지원하기 위함이다.   여기에는 깃허브 자문 데이터베이스가 포함된다. 이 데이터베이스는 400개 이상의 러스트 보안 권고 사항, 디펜더봇 경보 및 업데이트, 디펜던시 그래프를 지원하며, 러스트 카고 패키지 파일의 취약한 의존성에 대한 경고를 제공한다.  깃허브 자문 데이터베이스는 개발자가 조치를 취할 수 있는 취약점 정보를 제공하는 보안 데이터베이스이다. 데이터베이스에 기재된 취약점 대부분은 러스트 라이브러리와 관련된 보안 권고 사항을 게재하는 러스트섹(RustSec)에서 제공한다. 러스트 패키지 메인테이너는 보안 권고 사항을 참고해 취약점을 공개적으로 발표하기 전에 제보자와 협력한 뒤 서로 논의을 거쳐 취약점을 수정할 수 있다. 개발자는 커뮤니티 기여를 통해 러스트 취약점을 CVE(Common Vulnerabilities and Exposures)로 보고할 수 있다.  깃허브 디펜던시 그래프는 저장소의 Cargo.toml 및 Cargo.lock 파일을 분석하여 프로젝트의 의존관계를 판단한다. 디펜더봇은 이 디펜던시 그래프를 이용하여 개발자에게 알려진 취약성을 경고하고 풀 요청(pull request)을 생성하여 영향을 받는 의존성을 업데이트한다. 디펜던시 그래프는 공용 저장소에서 사용하도록 기본 설정되지만, 개인 저장소에서 사용하려면 따로 설정을 해야 한다.  깃허브는 공용 저장소의 디펜던시 그래프가 아직 업데이트되지 않았다면 곧 업데이트되...

2022.06.08

“러스트(Rust) 프로그래밍 언어, 재미있지만 어렵다”

‘러스트(Rust)’ 프로그래머를 대상으로 한 설문조사 결과에 따르면 개발자들은 이 프로그래밍 언어를 사용하는 것을 즐기지만 프로덕션 환경에서 사용 가능한 코드를 작성하는 데 때때로 어려움을 겪고 있었다.    보고서에 따르면 러스트를 사용하는 개발자가 증가하고 있다. 하지만 일부 개발자는 어려움을 토로했다. 전체 응답자 가운데 81%가 최소한 매주 러스트를 쓰고 있다고 답했다. 이는 작년 설문조사의 72%보다 높은 수치다. 아울러 75%는 프로덕션 환경에서 사용 가능한 코드를 작성할 수 있다고 밝혔다. 반면에 27%는 프로덕션 환경에서 사용 가능한 코드를 작성하는 데 어려움을 겪을 때도 있다고 전했다.  이러한 결과는 지난 2월 15일 발간된 러스트 커뮤니티의 언어 사용 현황을 조사하는 연례 보고서 최신판 ‘2021 러스트 서베이 결과(Rust Survey 2021 Results)’에서 나왔다. 해당 보고서는 이번 설문조사 결과를 통해 러스타시안(Rustaceans; 러스트 사용자를 일컫는 별칭) 커뮤니티가 건강하게 성장하고 있음을 확인했지만 이와 동시에 해결해야 할 문제도 있다고 언급했다. 특히, 러스트 사용자들은 컴파일 시간(61%), 디스크 공간(45%), 디버깅(40%), GUI 개발(56%)에서 개선 작업이 이뤄져야 한다고 말했다.  한편 ‘2021 러스트 서베이 결과’ 보고서는 지난 2021년 12월 개발자 총 9,345명을 대상으로 실시한 설문조사 결과를 담았다. 이 밖에 다른 결과는 다음과 같다.  • 회사에서 러스트를 사용하고 있다고 밝힌 개발자의 83%가 (러스트를) ‘어렵다’라고 답했다. 하지만 이 문제가 러스트 고유의 문제인지 아니면 새로운 언어 도입으로 발생하는 일반적인 문제인지는 분명하지 않다고 보고서는 전했다. 이 가운데 13%는 러스트로 인해 팀의 (개발) 속도가 느려졌다고 말했고, 82%는 러스트가 팀의 목표를 달성하는 데 도움이 됐다고 밝혔다.  • 러스트 개발자...

러스트 프로그래밍 프로그래밍 언어 개발 언어

2022.02.18

‘러스트(Rust)’ 프로그래머를 대상으로 한 설문조사 결과에 따르면 개발자들은 이 프로그래밍 언어를 사용하는 것을 즐기지만 프로덕션 환경에서 사용 가능한 코드를 작성하는 데 때때로 어려움을 겪고 있었다.    보고서에 따르면 러스트를 사용하는 개발자가 증가하고 있다. 하지만 일부 개발자는 어려움을 토로했다. 전체 응답자 가운데 81%가 최소한 매주 러스트를 쓰고 있다고 답했다. 이는 작년 설문조사의 72%보다 높은 수치다. 아울러 75%는 프로덕션 환경에서 사용 가능한 코드를 작성할 수 있다고 밝혔다. 반면에 27%는 프로덕션 환경에서 사용 가능한 코드를 작성하는 데 어려움을 겪을 때도 있다고 전했다.  이러한 결과는 지난 2월 15일 발간된 러스트 커뮤니티의 언어 사용 현황을 조사하는 연례 보고서 최신판 ‘2021 러스트 서베이 결과(Rust Survey 2021 Results)’에서 나왔다. 해당 보고서는 이번 설문조사 결과를 통해 러스타시안(Rustaceans; 러스트 사용자를 일컫는 별칭) 커뮤니티가 건강하게 성장하고 있음을 확인했지만 이와 동시에 해결해야 할 문제도 있다고 언급했다. 특히, 러스트 사용자들은 컴파일 시간(61%), 디스크 공간(45%), 디버깅(40%), GUI 개발(56%)에서 개선 작업이 이뤄져야 한다고 말했다.  한편 ‘2021 러스트 서베이 결과’ 보고서는 지난 2021년 12월 개발자 총 9,345명을 대상으로 실시한 설문조사 결과를 담았다. 이 밖에 다른 결과는 다음과 같다.  • 회사에서 러스트를 사용하고 있다고 밝힌 개발자의 83%가 (러스트를) ‘어렵다’라고 답했다. 하지만 이 문제가 러스트 고유의 문제인지 아니면 새로운 언어 도입으로 발생하는 일반적인 문제인지는 분명하지 않다고 보고서는 전했다. 이 가운데 13%는 러스트로 인해 팀의 (개발) 속도가 느려졌다고 말했고, 82%는 러스트가 팀의 목표를 달성하는 데 도움이 됐다고 밝혔다.  • 러스트 개발자...

2022.02.18

러스트 1.58.1 공개··· “취약한 경합 조건 수정”

개발팀에 따르면 공격자는 이 취약점을 통해 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다.    러스트 1.58에 이어 지난 1월 20일 공개된 이 포인트 릴리즈는 std::fs::remove_dir_all 표준 라이브러리 함수의 경합 조건(race condition)을 수정했다. 개발팀은 해당 취약점이 CVE-2022-21658로 지정됐다고 밝히면서 권고사항을 게시했다.  이 보안 문제를 통해 공격자는 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다. 러스트 버전 1.0.0~1.58.0은 이 취약점의 영향을 받는다. 사용자는 툴체인을 업데이트하고, 업데이트된 컴파일러로 프로그램을 빌드하는 게 좋다고 개발팀은 권장했다.  또한 러스트 1.58.1은 러스트 1.58에서 도입된 진단 및 도구의 여러 회귀를 해결한다.  • non_send_fields_in_send_ty 클리피 린트(Clippy lint)는 오탐(false positives)이 너무 많은 것으로 확인돼 ‘nursery’라는 실험적 린트 그룹으로 이동됐다.  • useless_format 클리피 린트가 러스트 1.58에 도입된 형식 문자열에서 캡처된 식별자를 처리하도록 업데이트됐다.  • 표준 입력을 통해 전달될 때 생성된 파일이 형식화되는 것을 방지하는 Rustfmt의 회귀가 수정됐다.  • 경우에 따라 rustc에서 잘못된 오류 메시지가 표시되는 문제가 수정됐다.  ciokr@idg.co.kr

러스트 개발자 프로그래밍 언어 개발 언어 취약점

2022.01.24

개발팀에 따르면 공격자는 이 취약점을 통해 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다.    러스트 1.58에 이어 지난 1월 20일 공개된 이 포인트 릴리즈는 std::fs::remove_dir_all 표준 라이브러리 함수의 경합 조건(race condition)을 수정했다. 개발팀은 해당 취약점이 CVE-2022-21658로 지정됐다고 밝히면서 권고사항을 게시했다.  이 보안 문제를 통해 공격자는 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다. 러스트 버전 1.0.0~1.58.0은 이 취약점의 영향을 받는다. 사용자는 툴체인을 업데이트하고, 업데이트된 컴파일러로 프로그램을 빌드하는 게 좋다고 개발팀은 권장했다.  또한 러스트 1.58.1은 러스트 1.58에서 도입된 진단 및 도구의 여러 회귀를 해결한다.  • non_send_fields_in_send_ty 클리피 린트(Clippy lint)는 오탐(false positives)이 너무 많은 것으로 확인돼 ‘nursery’라는 실험적 린트 그룹으로 이동됐다.  • useless_format 클리피 린트가 러스트 1.58에 도입된 형식 문자열에서 캡처된 식별자를 처리하도록 업데이트됐다.  • 표준 입력을 통해 전달될 때 생성된 파일이 형식화되는 것을 방지하는 Rustfmt의 회귀가 수정됐다.  • 경우에 따라 rustc에서 잘못된 오류 메시지가 표시되는 문제가 수정됐다.  ciokr@idg.co.kr

2022.01.24

'파슬 CSS 파서' 나왔다··· "성능 및 축소 측면에서 강점"

러스트(Rust) 기반 CSS 파서(parser), 컴파일러, 축소기(minifier)인 파슬 CSS(Parcel CSS)가 지난주 공식 발표됐다. 성능 및 축소 측면에서 강점을 지니는 도구라고 개발사 측은 강조했다.  러스트 언어로 작성된 이 도구는, CSS 모듈의 컴파일링을 처리하며, 중첩(nesting), 논리적 속성 및 레벨 4 색상 구문(Level 4 color syntax) 등의 CSS 기능을 트리 셰이킹 및 트랜스파일링한다.  파슬 CSS는 파슬과 함께 사용되거나 자바스크립트 또는 러스트의 독립실행형 라이브러리로 사용될 수 있다. 다른 도구 내에서 플러그인으로 래핑될 수도 있다. 지난 1월 12일 깃허브에 등록됐다. 현재 브라우저에서 라이브 데모를 시험해볼 수 있다.  개발진에 따르면 파슬 CSS의 강점 중 하나는 빠른 속도다. 네이티브 언어로 작성된 한편, 설계 시점부터 성능을 염두에 두고 개발됐기 때문이다. 이 밖에 CSS 속성을 사용할 때마다 다시 구문 분석해야 하는 문자열로 나타내지 않고 구조화된 데이터로 구문 분석 업무를 수행하는 메모리 최적화 기능을 갖췄다.  이 밖에 빠른 속도를 감안했음에도 불구하고 크기 및 요소 측면에서 타협하지는 않았다는 설명이다. 많은 라이브러리에서 사용되는 레거시 CSS 구문을 더 작고 현대적인 구문으로 변환하는 기능을 지원한다. 따라 많은 경우 다른 도구보다 더 작은 출력물을 생성한다고 개발진은 밝혔다. 아울러 각 개별 CSS 속성을 이해하기도 하는 것으로 전해졌다.  한편 파슬 CSS의 근간은 ‘css파서 러스트 크레이트’(cssparser Rust crate)다. 이는 파이어폭스 브라우저에서 사용되는 브라우저 등급 토크나이저다. 이를 통해 토큰화 및 기본 구문 분석 등을 아우르는 근간을 제공하게 된다. 파슬 사용자는 .parcelrc 파일에 다음을 추가하여 Parcel CSS를 사용해 볼 수 있다. {   "extends": "@parcel/...

파슬 CSS 파서 러스트

2022.01.17

러스트(Rust) 기반 CSS 파서(parser), 컴파일러, 축소기(minifier)인 파슬 CSS(Parcel CSS)가 지난주 공식 발표됐다. 성능 및 축소 측면에서 강점을 지니는 도구라고 개발사 측은 강조했다.  러스트 언어로 작성된 이 도구는, CSS 모듈의 컴파일링을 처리하며, 중첩(nesting), 논리적 속성 및 레벨 4 색상 구문(Level 4 color syntax) 등의 CSS 기능을 트리 셰이킹 및 트랜스파일링한다.  파슬 CSS는 파슬과 함께 사용되거나 자바스크립트 또는 러스트의 독립실행형 라이브러리로 사용될 수 있다. 다른 도구 내에서 플러그인으로 래핑될 수도 있다. 지난 1월 12일 깃허브에 등록됐다. 현재 브라우저에서 라이브 데모를 시험해볼 수 있다.  개발진에 따르면 파슬 CSS의 강점 중 하나는 빠른 속도다. 네이티브 언어로 작성된 한편, 설계 시점부터 성능을 염두에 두고 개발됐기 때문이다. 이 밖에 CSS 속성을 사용할 때마다 다시 구문 분석해야 하는 문자열로 나타내지 않고 구조화된 데이터로 구문 분석 업무를 수행하는 메모리 최적화 기능을 갖췄다.  이 밖에 빠른 속도를 감안했음에도 불구하고 크기 및 요소 측면에서 타협하지는 않았다는 설명이다. 많은 라이브러리에서 사용되는 레거시 CSS 구문을 더 작고 현대적인 구문으로 변환하는 기능을 지원한다. 따라 많은 경우 다른 도구보다 더 작은 출력물을 생성한다고 개발진은 밝혔다. 아울러 각 개별 CSS 속성을 이해하기도 하는 것으로 전해졌다.  한편 파슬 CSS의 근간은 ‘css파서 러스트 크레이트’(cssparser Rust crate)다. 이는 파이어폭스 브라우저에서 사용되는 브라우저 등급 토크나이저다. 이를 통해 토큰화 및 기본 구문 분석 등을 아우르는 근간을 제공하게 된다. 파슬 사용자는 .parcelrc 파일에 다음을 추가하여 Parcel CSS를 사용해 볼 수 있다. {   "extends": "@parcel/...

2022.01.17

블로그ㅣ‘러스트(Rust)’의 미래

러스타시안 원칙(The Rustacean Principles)은 좋은 아이디어 그 이상이다. 이는 개발자들이 ‘러스트(Rust)’에 계속해서 왕관을 수여하는 이유의 핵심이다.  러스트(사전적 의미: 녹슬다)라는 이름에도 불구하고 이 프로그래밍 언어가 이렇게 빛나고 새로워 보인 적은 없었다. 지난 2016년 스택 오버플로우(Stack Overflow)의 개발자 연례 설문조사에서 러스트는 ‘가장 사랑받는(most loved)’ 언어로 선정됐다. 뒤를 이어 2017년, 2018년, 2019년, 2020년, 2021년에도 ‘가장 사랑받는’ 언어로 뽑혔다. 2022년에도 러스트를 향한 사랑은 계속될 전망이다.    러스트 커뮤니티는 여기에 안주하지 않는다. 러스트 프로그래밍 언어 프로젝트의 공동 리더 니코 마사키스, 러스트 재단의 회장 셰인 밀러, 그리고 러스트 커뮤니티의 핵심 구성원들은 러스트가 몇 년, 더 나아가 수십 년 동안 사랑받을 수 있도록 열심히 일하고 있다. 그리고 이를 실천하는 한 가지 방법이 ‘러스타시안 원칙’이다(편집자 주: 러스타시안은 러스트 사용자를 일컫는 별칭이다).  러스타시안 원칙은 이상과 현실이 부딪힐 때마다 대수롭지 않게 버려지는 모토로 취급될 수 있지만 실제로는 러스트의 장기적인 발전을 위한 강력한 가이드 역할을 한다.  러스트의 원칙적 행동 러스트 커뮤니티는 러스트를 구축 시 때때로 경쟁적인 개발 우선순위 간의 균형을 맞추기 위해 ‘러스타시안 원칙’을 발전시켰다. 이는 다음과 같다.  • 안정성(Reliable): 컴파일하면 작동한다.  • 성능(Performant): 관용적 코드가 효율적으로 실행된다.  • 지원(Supportive): 언어, 도구, 커뮤니티가 도움을 준다.  • 생산성(Productive): 적은 노력으로 많은 일을 한다.  • 투명성(Transparent): 낮은 수준의 세부 사항을 예측하고 제어할 수 있다.&nbs...

러스트 러스타시안 원칙 러스타시안 프로그래밍 언어 개발 언어 소프트웨어 개발

2021.09.14

러스타시안 원칙(The Rustacean Principles)은 좋은 아이디어 그 이상이다. 이는 개발자들이 ‘러스트(Rust)’에 계속해서 왕관을 수여하는 이유의 핵심이다.  러스트(사전적 의미: 녹슬다)라는 이름에도 불구하고 이 프로그래밍 언어가 이렇게 빛나고 새로워 보인 적은 없었다. 지난 2016년 스택 오버플로우(Stack Overflow)의 개발자 연례 설문조사에서 러스트는 ‘가장 사랑받는(most loved)’ 언어로 선정됐다. 뒤를 이어 2017년, 2018년, 2019년, 2020년, 2021년에도 ‘가장 사랑받는’ 언어로 뽑혔다. 2022년에도 러스트를 향한 사랑은 계속될 전망이다.    러스트 커뮤니티는 여기에 안주하지 않는다. 러스트 프로그래밍 언어 프로젝트의 공동 리더 니코 마사키스, 러스트 재단의 회장 셰인 밀러, 그리고 러스트 커뮤니티의 핵심 구성원들은 러스트가 몇 년, 더 나아가 수십 년 동안 사랑받을 수 있도록 열심히 일하고 있다. 그리고 이를 실천하는 한 가지 방법이 ‘러스타시안 원칙’이다(편집자 주: 러스타시안은 러스트 사용자를 일컫는 별칭이다).  러스타시안 원칙은 이상과 현실이 부딪힐 때마다 대수롭지 않게 버려지는 모토로 취급될 수 있지만 실제로는 러스트의 장기적인 발전을 위한 강력한 가이드 역할을 한다.  러스트의 원칙적 행동 러스트 커뮤니티는 러스트를 구축 시 때때로 경쟁적인 개발 우선순위 간의 균형을 맞추기 위해 ‘러스타시안 원칙’을 발전시켰다. 이는 다음과 같다.  • 안정성(Reliable): 컴파일하면 작동한다.  • 성능(Performant): 관용적 코드가 효율적으로 실행된다.  • 지원(Supportive): 언어, 도구, 커뮤니티가 도움을 준다.  • 생산성(Productive): 적은 노력으로 많은 일을 한다.  • 투명성(Transparent): 낮은 수준의 세부 사항을 예측하고 제어할 수 있다.&nbs...

2021.09.14

“개발자들, 러스트·스벨트 선호하지만 앵귤러JS는 그닥” 스택 오버플로우

지난 8월 2일 발표된 ‘2021 스택 오버플로우 개발자 설문조사(Stack Overflow 2021 Developer Survey)’에 따르면 개발자의 학습 방식에서 큰 변화가 있었다. 보고서는 18세 미만 코더의 경우 (책과 학교를 합친 것보다) 동영상 및 블로그 등의 온라인 리소스가 기술을 배우는 데 더 중요한 것으로 나타났다고 밝혔다.    전체 응답자의 약 60%는 온라인 리소스를 통해 코딩을 배웠다고 말했다. 온라인 학습이 1위를 차지했지만 학교도 여전히 중요했다. 약 54%는 학교에서 코딩을 배웠다고 답했다.  또한 보고서는 소프트웨어 개발자의 수가 비약적으로 증가하고 있다고 전했다. 전체 응답자의 50%는 프로그래밍 경력이 10년 이하라고 말했으며, 절반 이상(53.6%)은 11세에서 17세 사이에 첫 코드 라인을 작성했다고 답했다. 대다수는(전체 응답자의 91%, 전문 개발자의 92%) 남성인 것으로 조사됐다.  한편 2021 스택 오버플로우 설문조사는 5월 말부터 6월 중순까지 진행됐으며, 총 8만 3,439명의 개발자가 참여했다. 이 밖에 살펴볼 만한 내용은 다음과 같다.  • ‘자바스크립트(JavaScript)’가 9년 연속 가장 일반적으로 사용되는 프로그래밍 언어(64.96%)로 꼽혔다. 러스트(Rust)도 6년 연속 가장 사랑받는 언어 1위를 차지했다.  • ‘리액트(React)’는 2021년 가장 일반적으로 사용되는 웹 프레임워크(40.14%)로 선정됐다. 제이쿼리(jQuery)가 그 뒤를 이었다. 가장 사랑받는 웹 프레임워크는 ‘스벨트(Svelte)’였다. ‘앵귤러JS(AngularJS)’는 현재 사용 중이지만 더 사용하고 싶지 않은 언어로 꼽혔다.  • 가장 많은 급여를 받는 언어는 클로저(Clojure), F#, 엘릭서(Elixir), 얼랭(Erlang), 펄(Perl)인 것으로 나타났다.  • 전문 개발자의 81%가 정규직이며, 이는...

스택 오버플로우 개발자 프로그래머 프로그래밍 언어 개발 언어 러스트 스벨트 앵귤러JS 자바스클비트 리액트 제이쿼리 클로저 엘릭서 얼랭 구글 클라우드 마이크로소프트 애저 AWS

2021.08.06

지난 8월 2일 발표된 ‘2021 스택 오버플로우 개발자 설문조사(Stack Overflow 2021 Developer Survey)’에 따르면 개발자의 학습 방식에서 큰 변화가 있었다. 보고서는 18세 미만 코더의 경우 (책과 학교를 합친 것보다) 동영상 및 블로그 등의 온라인 리소스가 기술을 배우는 데 더 중요한 것으로 나타났다고 밝혔다.    전체 응답자의 약 60%는 온라인 리소스를 통해 코딩을 배웠다고 말했다. 온라인 학습이 1위를 차지했지만 학교도 여전히 중요했다. 약 54%는 학교에서 코딩을 배웠다고 답했다.  또한 보고서는 소프트웨어 개발자의 수가 비약적으로 증가하고 있다고 전했다. 전체 응답자의 50%는 프로그래밍 경력이 10년 이하라고 말했으며, 절반 이상(53.6%)은 11세에서 17세 사이에 첫 코드 라인을 작성했다고 답했다. 대다수는(전체 응답자의 91%, 전문 개발자의 92%) 남성인 것으로 조사됐다.  한편 2021 스택 오버플로우 설문조사는 5월 말부터 6월 중순까지 진행됐으며, 총 8만 3,439명의 개발자가 참여했다. 이 밖에 살펴볼 만한 내용은 다음과 같다.  • ‘자바스크립트(JavaScript)’가 9년 연속 가장 일반적으로 사용되는 프로그래밍 언어(64.96%)로 꼽혔다. 러스트(Rust)도 6년 연속 가장 사랑받는 언어 1위를 차지했다.  • ‘리액트(React)’는 2021년 가장 일반적으로 사용되는 웹 프레임워크(40.14%)로 선정됐다. 제이쿼리(jQuery)가 그 뒤를 이었다. 가장 사랑받는 웹 프레임워크는 ‘스벨트(Svelte)’였다. ‘앵귤러JS(AngularJS)’는 현재 사용 중이지만 더 사용하고 싶지 않은 언어로 꼽혔다.  • 가장 많은 급여를 받는 언어는 클로저(Clojure), F#, 엘릭서(Elixir), 얼랭(Erlang), 펄(Perl)인 것으로 나타났다.  • 전문 개발자의 81%가 정규직이며, 이는...

2021.08.06

“개발자 경험 대폭 개선”··· 러스트 2021 출시 계획 발표

오는 10월 출시될 러스트 프로그래밍 언어의 세 번째 버전 ‘러스트 2021(Rust 2021)’은 몇 가지 변경사항을 통해 실질적인 러스트 사용 경험을 크게 향상시킬 전망이다.    5월 11일(현지 시각) 러스트 2021 에디션 워킹그룹(Rust 2021 Edition Working Group)이 이번 릴리즈에서 계획된 변경사항을 공개했다. 여기에는 표준 라이브러리의 표준 모듈(Prelude)이 포함된다. 이는 모든 모듈에서 자동으로 임포트되는 모든 것을 포함하는 모듈이다.  새로운 표준 모듈(Prelude)은 표준 모듈에 트레이드를 추가했을 때 기존 코드가 미묘하게 깨지는 문제를 해결하고자 한다. 이를 위해 러스트 2021에 추가될 새로운 표준 모듈(Prelude) 3가지는 다음과 같다.  • std::convert::TryInto • std::convert::TryFrom • std::iter::FromIterator 또 러스트 1.51에서 옵트-인으로 지원됐던 피처 리졸버(feature resolver)가 러스트 2021부터 기본값으로 제공된다. 이 밖에 러스트 2021의 변경사항은 아래와 같다.  • 본문 내에서 참조된 모든 것을 자동 캡처할 수 있는 익명 함수 ‘클로저(Closures)’가 러스트 2021부터 사용하는 필드만 캡처한다. 이는 구조체의 가용성과 관련된 프로그래밍 문제를 해결한다.  • panic! () 매크로가 더 이상 임의의 표현식을 유일한 인수로 받아들이지 않고 일관성을 유지한다.   • 새 구문을 위한 공간을 확보하고자 prefix#identifier, prefix”string”, prefix’c’, prefix#123을 포함한 접두사가 붙은 식별자와 리터럴에 구문이 예약된다. 여기서 prefix는 모든 식별자가 될 수 있다. 향후 접두사는 형식 문자열의 약어로 f””를 포함한다. 또 null로 끝나는 C 문자열의 경우 c”” 또는 z””를 포함할 수 ...

러스트 프로그래밍 언어 개발 언어 소프트웨어 개발

2021.05.18

오는 10월 출시될 러스트 프로그래밍 언어의 세 번째 버전 ‘러스트 2021(Rust 2021)’은 몇 가지 변경사항을 통해 실질적인 러스트 사용 경험을 크게 향상시킬 전망이다.    5월 11일(현지 시각) 러스트 2021 에디션 워킹그룹(Rust 2021 Edition Working Group)이 이번 릴리즈에서 계획된 변경사항을 공개했다. 여기에는 표준 라이브러리의 표준 모듈(Prelude)이 포함된다. 이는 모든 모듈에서 자동으로 임포트되는 모든 것을 포함하는 모듈이다.  새로운 표준 모듈(Prelude)은 표준 모듈에 트레이드를 추가했을 때 기존 코드가 미묘하게 깨지는 문제를 해결하고자 한다. 이를 위해 러스트 2021에 추가될 새로운 표준 모듈(Prelude) 3가지는 다음과 같다.  • std::convert::TryInto • std::convert::TryFrom • std::iter::FromIterator 또 러스트 1.51에서 옵트-인으로 지원됐던 피처 리졸버(feature resolver)가 러스트 2021부터 기본값으로 제공된다. 이 밖에 러스트 2021의 변경사항은 아래와 같다.  • 본문 내에서 참조된 모든 것을 자동 캡처할 수 있는 익명 함수 ‘클로저(Closures)’가 러스트 2021부터 사용하는 필드만 캡처한다. 이는 구조체의 가용성과 관련된 프로그래밍 문제를 해결한다.  • panic! () 매크로가 더 이상 임의의 표현식을 유일한 인수로 받아들이지 않고 일관성을 유지한다.   • 새 구문을 위한 공간을 확보하고자 prefix#identifier, prefix”string”, prefix’c’, prefix#123을 포함한 접두사가 붙은 식별자와 리터럴에 구문이 예약된다. 여기서 prefix는 모든 식별자가 될 수 있다. 향후 접두사는 형식 문자열의 약어로 f””를 포함한다. 또 null로 끝나는 C 문자열의 경우 c”” 또는 z””를 포함할 수 ...

2021.05.18

모질라, 브라우저에 파이썬 통합하는 ‘파이어다이드’ 프로젝트 분리

모질라가 ‘파이어다이드(Pyodide)’를 커뮤니티 주도의 독립 프로젝트로 분리(spin out)했다. 웹어셈블리로 컴파일된 사이썬(CPython) 3.8 인터프리터로 구성된 파이어다이드는 파이썬을 웹 브라우저에서 실행할 수 있도록 한다.    파이어다이드 프로젝트는 독립된 깃허브(GitHub) 조직에 새로운 보금자리(github.com/pyodide)를 마련했다. 공식 문서는 이곳(pyodide.org)에서 확인할 수 있다. 향후 이 프로젝트는 자원봉사로 참여하는 컨트리뷰터에 의해 유지관리될 예정이다. 이와 관련한 거버넌스 문서 그리고 파이썬 코드 성능 향상, 다운로드 크기 감소, 패키지 로딩 간소화 등의 목표를 정리한 프로젝트 로드맵이 게시됐다.   파이어다이드는 파이썬 패키지 인덱스(Python Package Index; PyPi)의 PPW(pure Python wheel)로 모든 파이썬 패키지를 설치할 수 있다. 또 파이어다이드에는 파이썬 패키지를 자바스크립트에 노출하고, DOM을 포함한 브라우저 UI를 파이썬에 노출하는 외부 함수 인터페이스가 있다.  이 밖에도 해당 프로젝트는 넘파이(NumPy), 판다(Panda), 맷플롯립(Matplotlib), 사이파이(SciPy), 사이킷런(Scikit-learn) 등의 많은 파이썬 과학 패키지를 브라우저에서 실행할 수 있도록 지원한다. 개발자는 브라우저의 REPL(Read Eval Print Loop)에서 파이어다이드를 사용해볼 수 있다.  모질라는 지난 4월 22일 이 프로젝트의 독립을 발표하는 한편 주요 유지관리 개선, 중앙 API 재설계, 오류 및 메모리 누수 제거 등을 특징으로 하는 파이어다이드 0.17 릴리즈도 출시했다.  본래 브라우저에서 데이터 과학을 지원하는 아이오다이드(Iodide) 프로젝트에서 파이썬을 사용할 수 있도록 모질라 내부에서 개발됐던 파이어다이드는 큰 관심을 끌었으며, 현재 모질라 외부의 많은 프로젝트에서 사용되고 있...

모질라 파이어다이드 파이썬 데이터 과학 사이썬 깃허브 넘파이 판다 맷플롯립 사이파이 사이킷런 브라우저 아이오다이드 러스트 웹 개발 오픈소스

2021.04.26

모질라가 ‘파이어다이드(Pyodide)’를 커뮤니티 주도의 독립 프로젝트로 분리(spin out)했다. 웹어셈블리로 컴파일된 사이썬(CPython) 3.8 인터프리터로 구성된 파이어다이드는 파이썬을 웹 브라우저에서 실행할 수 있도록 한다.    파이어다이드 프로젝트는 독립된 깃허브(GitHub) 조직에 새로운 보금자리(github.com/pyodide)를 마련했다. 공식 문서는 이곳(pyodide.org)에서 확인할 수 있다. 향후 이 프로젝트는 자원봉사로 참여하는 컨트리뷰터에 의해 유지관리될 예정이다. 이와 관련한 거버넌스 문서 그리고 파이썬 코드 성능 향상, 다운로드 크기 감소, 패키지 로딩 간소화 등의 목표를 정리한 프로젝트 로드맵이 게시됐다.   파이어다이드는 파이썬 패키지 인덱스(Python Package Index; PyPi)의 PPW(pure Python wheel)로 모든 파이썬 패키지를 설치할 수 있다. 또 파이어다이드에는 파이썬 패키지를 자바스크립트에 노출하고, DOM을 포함한 브라우저 UI를 파이썬에 노출하는 외부 함수 인터페이스가 있다.  이 밖에도 해당 프로젝트는 넘파이(NumPy), 판다(Panda), 맷플롯립(Matplotlib), 사이파이(SciPy), 사이킷런(Scikit-learn) 등의 많은 파이썬 과학 패키지를 브라우저에서 실행할 수 있도록 지원한다. 개발자는 브라우저의 REPL(Read Eval Print Loop)에서 파이어다이드를 사용해볼 수 있다.  모질라는 지난 4월 22일 이 프로젝트의 독립을 발표하는 한편 주요 유지관리 개선, 중앙 API 재설계, 오류 및 메모리 누수 제거 등을 특징으로 하는 파이어다이드 0.17 릴리즈도 출시했다.  본래 브라우저에서 데이터 과학을 지원하는 아이오다이드(Iodide) 프로젝트에서 파이썬을 사용할 수 있도록 모질라 내부에서 개발됐던 파이어다이드는 큰 관심을 끌었으며, 현재 모질라 외부의 많은 프로젝트에서 사용되고 있...

2021.04.26

러스트 워킹 그룹, ‘액세스 가능한’ 비동기 러스트 비전 문서 발표

‘에이싱크 파운데이션 워킹 그룹(Async Foundations Working Group)’에서는 러스트(Rust)를 분산형 시스템 구축을 위한 가장 인기 있는 선택지로 만들고자 한다.  에이싱크 파운데이션 워킹 그룹이 ‘비동기 러스트(Async Rust)’의 비전 문서를 구축하기 시작했다고 밝혔다. 비동기 러스트는 비동기 입출력(Async I/O) 프로그래밍을 러스트 개발자에게 원활한 경험으로 만들고자 고안됐다.    지난 3월 18일 러스트 워킹 그룹은 비전 문서 계획을 발표하면서, 이를 통해 러스트가 임베디드 시스템부터 기본 클라우드 서비스까지 분산형 시스템에서 가장 인기 있는 선택지가 될 수 있을 것이라고 전했다. 그러려면 비동기 러스트를 현재 MVP 상태(Minimum Viable Product)에서 나아가 모든 사람이 액세스할 수 있도록 해야 한다고 덧붙였다.  워킹 그룹은 언어 및 표준 라이브러리 확장 프로그램을 포함해 비동기 I/O를 위한 기반을 구현하고 설계하는 데 초점을 맞추고 있다. 그리고 비전 문서의 궁극적인 목표는 현재 상황이 어떠한지, 어디로 어떻게 가야 할지를 설명하는 것이라고 말했다.  비전 문서는 특정 러스트 값(예: 성능, 생산성)과 연결된 캐릭터들로 시작된다. 각 캐릭터에 대해 이들이 목표를 달성하는 데 있어서 직면한 문제를 설명하는 ‘현재 상황(status quo)’ 스토리를 작성할 계획이다. 비동기 러스트를 사용한 실제 경험을 문서화하는 과정이라고 러스트 워킹 그룹은 언급했다. 현재 상황 스토리를 작성하고 나면 앞으로 2~3년 후에 비동기 러스트가 어떤 모습일지에 대한 ‘미래’ 스토리(Shiny future)로 브레인스토밍을 진행할 예정이다.  오는 4월 2일까지는 현재 상황 스토리만 수집된다. 그러고나서 4월 30일까지 현재 상황 및 미래 스토리가 모두 수집된다. 현재 상황 스토리 템플릿은 이곳에서 확인해볼 수 있다. 전체 프로세스를 설명하는 비전 페이지는 ...

러스트 프로그래밍 언어 비동기 러스트 분산형 시스템 비동기 입출력 임베디드 시스템 클라우드 서비스

2021.03.23

‘에이싱크 파운데이션 워킹 그룹(Async Foundations Working Group)’에서는 러스트(Rust)를 분산형 시스템 구축을 위한 가장 인기 있는 선택지로 만들고자 한다.  에이싱크 파운데이션 워킹 그룹이 ‘비동기 러스트(Async Rust)’의 비전 문서를 구축하기 시작했다고 밝혔다. 비동기 러스트는 비동기 입출력(Async I/O) 프로그래밍을 러스트 개발자에게 원활한 경험으로 만들고자 고안됐다.    지난 3월 18일 러스트 워킹 그룹은 비전 문서 계획을 발표하면서, 이를 통해 러스트가 임베디드 시스템부터 기본 클라우드 서비스까지 분산형 시스템에서 가장 인기 있는 선택지가 될 수 있을 것이라고 전했다. 그러려면 비동기 러스트를 현재 MVP 상태(Minimum Viable Product)에서 나아가 모든 사람이 액세스할 수 있도록 해야 한다고 덧붙였다.  워킹 그룹은 언어 및 표준 라이브러리 확장 프로그램을 포함해 비동기 I/O를 위한 기반을 구현하고 설계하는 데 초점을 맞추고 있다. 그리고 비전 문서의 궁극적인 목표는 현재 상황이 어떠한지, 어디로 어떻게 가야 할지를 설명하는 것이라고 말했다.  비전 문서는 특정 러스트 값(예: 성능, 생산성)과 연결된 캐릭터들로 시작된다. 각 캐릭터에 대해 이들이 목표를 달성하는 데 있어서 직면한 문제를 설명하는 ‘현재 상황(status quo)’ 스토리를 작성할 계획이다. 비동기 러스트를 사용한 실제 경험을 문서화하는 과정이라고 러스트 워킹 그룹은 언급했다. 현재 상황 스토리를 작성하고 나면 앞으로 2~3년 후에 비동기 러스트가 어떤 모습일지에 대한 ‘미래’ 스토리(Shiny future)로 브레인스토밍을 진행할 예정이다.  오는 4월 2일까지는 현재 상황 스토리만 수집된다. 그러고나서 4월 30일까지 현재 상황 및 미래 스토리가 모두 수집된다. 현재 상황 스토리 템플릿은 이곳에서 확인해볼 수 있다. 전체 프로세스를 설명하는 비전 페이지는 ...

2021.03.23

'러스트' vs. '고'··· 주요 차이점은? 적합한 작업은?

10년이 채 되지 않는 기간 동안 2개의 새로운 프로그래밍 언어가 엔터프라이즈 개발의 주요 언어로 부상했다. 구글에서 만들어진 고(Go), 모질라에서 탄생한 러스트(Rust)다. 2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티를 제공한다. 이렇게 비슷한 부분을 제외하면 러스트와 고는 서로 극명하게 다른 언어다. 서로 다른 목적으로, 다른 요구를 해결하고 다른 종류의 프로그램을 작성하도록 만들어졌다. 따라서 러스트와 고를 비교할 때는 어느 언어가 '객관적으로 더 우수한가'가 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각에서 봐야 한다. 이를 염두에 두고 러스트와 고의 주요 차이점과 각 언어가 적합한 작업의 종류에 대해 살펴보자. 성능 측면에서의 러스트 vs. 고  러스트의 대표적인 장점은 안정성, 사용의 용이함과 함께 성능인데, 이 가운데서도 성능을 가장 큰 장점으로 볼 수 있다. 러스트 프로그램은 메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++와 대등하거나 거의 근접한 속도로 실행된다. 물론 러스트 프로그램도 어떻게 작성되느냐에 따라 느려질 수 있지만, 최소한 러스트는 안전이나 편리함을 위해 선택의 여지없이 성능을 희생하지는 않는다. 러스트의 비용이라면 개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야 한다는 점이다.  반면 고는 개발자 편의성을 위해 어느 정도의 런타임 속도를 희생한다. 메모리 관리는 고 런타임이 담당하므로 런타임 관련 오버헤드가 필연적으로 발생한다. 그러나 많은 시나리오에서 이 타협은 무시해도 되는 수준이다. 고는 프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 기본적으로 파이썬(Python)과 같은 다른 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공한다(파이썬의 편리성과 유연성에는...

러스트 Go Rust 언어 프로그래밍

2021.03.17

10년이 채 되지 않는 기간 동안 2개의 새로운 프로그래밍 언어가 엔터프라이즈 개발의 주요 언어로 부상했다. 구글에서 만들어진 고(Go), 모질라에서 탄생한 러스트(Rust)다. 2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티를 제공한다. 이렇게 비슷한 부분을 제외하면 러스트와 고는 서로 극명하게 다른 언어다. 서로 다른 목적으로, 다른 요구를 해결하고 다른 종류의 프로그램을 작성하도록 만들어졌다. 따라서 러스트와 고를 비교할 때는 어느 언어가 '객관적으로 더 우수한가'가 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각에서 봐야 한다. 이를 염두에 두고 러스트와 고의 주요 차이점과 각 언어가 적합한 작업의 종류에 대해 살펴보자. 성능 측면에서의 러스트 vs. 고  러스트의 대표적인 장점은 안정성, 사용의 용이함과 함께 성능인데, 이 가운데서도 성능을 가장 큰 장점으로 볼 수 있다. 러스트 프로그램은 메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++와 대등하거나 거의 근접한 속도로 실행된다. 물론 러스트 프로그램도 어떻게 작성되느냐에 따라 느려질 수 있지만, 최소한 러스트는 안전이나 편리함을 위해 선택의 여지없이 성능을 희생하지는 않는다. 러스트의 비용이라면 개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야 한다는 점이다.  반면 고는 개발자 편의성을 위해 어느 정도의 런타임 속도를 희생한다. 메모리 관리는 고 런타임이 담당하므로 런타임 관련 오버헤드가 필연적으로 발생한다. 그러나 많은 시나리오에서 이 타협은 무시해도 되는 수준이다. 고는 프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 기본적으로 파이썬(Python)과 같은 다른 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공한다(파이썬의 편리성과 유연성에는...

2021.03.17

‘서보 브라우저 엔진’, 모질라에서 리눅스 재단으로 둥지 옮긴다

모질라에서 시작된 이 러스트 기반 프로젝트는 다른 애플리케이션에 임베디드할 수 있는 안전한 고성능 렌더링 웹 엔진을 제공하고자 한다.  모질라(Mozilla)에서 개발하고 있었던 오픈소스 브라우저 엔진 ‘서보(Servo)’가 리눅스 재단(Linux Foundation)으로 새 보금자리를 틀었다.   모질라의 프로그래밍 언어 러스트(Rust)로 개발된, 임베디드 할 수 있는 모듈식 웹 엔진 ‘서보’는 파이어폭스(Firefox) 브라우저와 코드를 공유하며 웹 표준을 통해 콘텐츠와 애플리케이션을 전달할 수 있도록 설계됐다. 서보 프로젝트는 2012년부터 시작됐다. 그 과정에서 GPU 렌더링 시스템 ‘웹렌더(WebRender)’와 같은 서보에서 인큐베이팅된 기술이 파이어폭스에 통합되기도 했다.  하지만 지난 8월 모질라가 심각한 경영난으로 직원 250명을 해고하는 구조조정을 단행했고, 정리해고 대상자 가운데 러스트 및 서보 개발과 관련된 인력을 포함하면서 사실상 서보 개발에서 손을 뗀 게 아니냐는 우려가 제기됐었다. 그리고 11월 17일, 서보 프로젝트의 관리 주체가 리눅스 재단으로 이관됐다는 소식이 전해졌다.  서보 프로젝트는 리눅스 재단으로 이전되긴 했지만 프로젝트의 미래를 안내할 이사회와 기술운영회를 얻었다. 리눅스 재단에 따르면 서보의 핵심 목표는 변경되지 않는다. 다른 애플리케이션에 임베디드할 수 있는 안전한 고성능 렌더링 엔진을 제공한다는 목표다.  윈도우, 리눅스, 맥OS에서 구동할 수 있는 서보는 렌더링 및 CSS와 같은 중요한 웹 구성요소가 안전성, 동시성, 속도에 초점을 맞춘 러스트로 구현될 수 있다는 증거 역할을 해왔다. 현재 서보 웹 엔진은 안드로이드 폰, 오큘러스, 매직 리프, 마이크로소프트 홀로렌즈 등에도 포팅됐다. 또한 병렬화된 CSS 엔진을 갖춘 서보는 사용자 인터페이스, 3D 경험 및 기타 제품에 통합될 수 있다.  한편 서보 프로젝트 개발자는 사양 문제를 보고하고, 브라...

웹 개발 소프트웨어 개발 모질라 러스트 서보 웹 엔진 렌더링 리눅스 재단 오픈소스 파이어폭스

2020.11.20

모질라에서 시작된 이 러스트 기반 프로젝트는 다른 애플리케이션에 임베디드할 수 있는 안전한 고성능 렌더링 웹 엔진을 제공하고자 한다.  모질라(Mozilla)에서 개발하고 있었던 오픈소스 브라우저 엔진 ‘서보(Servo)’가 리눅스 재단(Linux Foundation)으로 새 보금자리를 틀었다.   모질라의 프로그래밍 언어 러스트(Rust)로 개발된, 임베디드 할 수 있는 모듈식 웹 엔진 ‘서보’는 파이어폭스(Firefox) 브라우저와 코드를 공유하며 웹 표준을 통해 콘텐츠와 애플리케이션을 전달할 수 있도록 설계됐다. 서보 프로젝트는 2012년부터 시작됐다. 그 과정에서 GPU 렌더링 시스템 ‘웹렌더(WebRender)’와 같은 서보에서 인큐베이팅된 기술이 파이어폭스에 통합되기도 했다.  하지만 지난 8월 모질라가 심각한 경영난으로 직원 250명을 해고하는 구조조정을 단행했고, 정리해고 대상자 가운데 러스트 및 서보 개발과 관련된 인력을 포함하면서 사실상 서보 개발에서 손을 뗀 게 아니냐는 우려가 제기됐었다. 그리고 11월 17일, 서보 프로젝트의 관리 주체가 리눅스 재단으로 이관됐다는 소식이 전해졌다.  서보 프로젝트는 리눅스 재단으로 이전되긴 했지만 프로젝트의 미래를 안내할 이사회와 기술운영회를 얻었다. 리눅스 재단에 따르면 서보의 핵심 목표는 변경되지 않는다. 다른 애플리케이션에 임베디드할 수 있는 안전한 고성능 렌더링 엔진을 제공한다는 목표다.  윈도우, 리눅스, 맥OS에서 구동할 수 있는 서보는 렌더링 및 CSS와 같은 중요한 웹 구성요소가 안전성, 동시성, 속도에 초점을 맞춘 러스트로 구현될 수 있다는 증거 역할을 해왔다. 현재 서보 웹 엔진은 안드로이드 폰, 오큘러스, 매직 리프, 마이크로소프트 홀로렌즈 등에도 포팅됐다. 또한 병렬화된 CSS 엔진을 갖춘 서보는 사용자 인터페이스, 3D 경험 및 기타 제품에 통합될 수 있다.  한편 서보 프로젝트 개발자는 사양 문제를 보고하고, 브라...

2020.11.20

무서운 질주··· 파이썬, 자바 제치고 단독 2위 <레드몽크>

파이썬이 자바스크립트를 바짝 따라붙었다. 한편 자바가 파이썬에 밀려 3위를 차지했다. 자바는 2012년 이후 8년 만에 레드몽크 프로그래밍 언어 최저 순위를 기록했다.  27일(현지 시각) 발표된 2020년 6월 자 상반기 레드몽크(RedMonk) 프로그래밍 언어 순위에 따르면 파이썬이 자바스크립트에 이어 2위에 올랐다. 지난 1월 발표된 레드몽크 프로그래밍 언어 순위에서 파이썬은 자바와 함께 공동 2위를 기록한 바 있다. 이번에는 자바를 제치고 단독 2위 자리를 차지했다는 점에서 큰 의미가 있다. 레드몽크 프로그래밍 언어 순위는 6개월마다 발표된다.   자바 또는 자바스크립트 이외의 프로그래밍 언어가 단독 2위 자리를 차지한 것은 2012년 레드몽크 순위를 시작한 이래로 처음이다. 또한 자바가 2위권 밖으로 밀려난 것도 처음이다. 레드몽크는 파이썬이 수 천개의 소규모 프로젝트를 위한 지원 역할을 하고 있으며, 수많은 개인용 스크립트 언어의 근간으로 자리 잡았다고 설명했다. 이어서 파이썬이 데이터 과학 등의 분야에서도 많이 채택되고 있다고 레드몽크는 덧붙였다.  레드몽크에 따르면 자바가 현재처럼 치열한 경쟁에 직면한 적은 없다. 물론 자바는 앞으로 오랫동안 주요 프로그래밍 언어로 사용되겠지만 이러한 지배적 위치가 계속해서 보장되진 않을 것이라고 회사 측은 예측했다(자바는 최근 티오베(Tiobe) 프로그래밍 언어 순위에서도 C에 밀려 2위로 떨어졌다). 레드몽크 프로그래밍 언어 순위는 기트허브(GitHub) 및 스택 오버플로우(Stack Overflow) 분석을 기반으로 한다. 기트허브에서는 ‘기트허브 아카이브(GitHub Archive)’를 활용, 풀 리퀘스트를 바탕으로 프로그래밍 언어를 쿼리한다. 개발자 커뮤니티인 스택 오버플로우에서는 프로그래밍 언어와 관련된 개발자들의 게시물을 평가한다.  이 밖에 5년 전 48위를 기록했던 러스트(Rust)가 처음으로 20위권에 진입했다. 코틀린(Kotlin) 역시...

개발자 개발 언어 프로그래밍 언어 레드몽크 티오베 파이썬 자바 자바스크립트 기트허브 스택 오버플로우 러스트 코틀린

2020.07.30

파이썬이 자바스크립트를 바짝 따라붙었다. 한편 자바가 파이썬에 밀려 3위를 차지했다. 자바는 2012년 이후 8년 만에 레드몽크 프로그래밍 언어 최저 순위를 기록했다.  27일(현지 시각) 발표된 2020년 6월 자 상반기 레드몽크(RedMonk) 프로그래밍 언어 순위에 따르면 파이썬이 자바스크립트에 이어 2위에 올랐다. 지난 1월 발표된 레드몽크 프로그래밍 언어 순위에서 파이썬은 자바와 함께 공동 2위를 기록한 바 있다. 이번에는 자바를 제치고 단독 2위 자리를 차지했다는 점에서 큰 의미가 있다. 레드몽크 프로그래밍 언어 순위는 6개월마다 발표된다.   자바 또는 자바스크립트 이외의 프로그래밍 언어가 단독 2위 자리를 차지한 것은 2012년 레드몽크 순위를 시작한 이래로 처음이다. 또한 자바가 2위권 밖으로 밀려난 것도 처음이다. 레드몽크는 파이썬이 수 천개의 소규모 프로젝트를 위한 지원 역할을 하고 있으며, 수많은 개인용 스크립트 언어의 근간으로 자리 잡았다고 설명했다. 이어서 파이썬이 데이터 과학 등의 분야에서도 많이 채택되고 있다고 레드몽크는 덧붙였다.  레드몽크에 따르면 자바가 현재처럼 치열한 경쟁에 직면한 적은 없다. 물론 자바는 앞으로 오랫동안 주요 프로그래밍 언어로 사용되겠지만 이러한 지배적 위치가 계속해서 보장되진 않을 것이라고 회사 측은 예측했다(자바는 최근 티오베(Tiobe) 프로그래밍 언어 순위에서도 C에 밀려 2위로 떨어졌다). 레드몽크 프로그래밍 언어 순위는 기트허브(GitHub) 및 스택 오버플로우(Stack Overflow) 분석을 기반으로 한다. 기트허브에서는 ‘기트허브 아카이브(GitHub Archive)’를 활용, 풀 리퀘스트를 바탕으로 프로그래밍 언어를 쿼리한다. 개발자 커뮤니티인 스택 오버플로우에서는 프로그래밍 언어와 관련된 개발자들의 게시물을 평가한다.  이 밖에 5년 전 48위를 기록했던 러스트(Rust)가 처음으로 20위권에 진입했다. 코틀린(Kotlin) 역시...

2020.07.30

R 언어, 인기 지수 8위로 껑충··· “코로나19 연구서 많이 사용”

통계 분석을 위한 프로그래밍 언어 R이 2020년 7월 티오베 프로그래밍 언어 인기 지수(Tiobe Index)에서 크게 약진했다. 최근 C 언어가 부상한 이유로 꼽혔던 코로나19 사태는 이번 R 언어의 순위 상승에도 영향을 미친 것으로 추정된다.  R 언어는 지난해 20위에서 올해 역대 최고 순위인 8위에 올랐다. 티오베는 코로나19 백신 연구와 관련된 통계 분석 및 데이터 마이닝의 급증으로 R 언어가 인기를 얻고 있다고 설명했다.    지난 5월, 5년 넘게 1위를 지켜왔던 자바를 제치고 C 언어가 가장 인기 있는 프로그래밍 언어로 부상했다. 여기에 이어 이번 달에는 R 언어의 인기 순위가 급격하게 상승했다. 당시 티오베는 C 언어의 급상승 요인으로 코로나19 사태와 함께 C 언어가 의료기기에 많이 사용됐기 때문이라고 분석했다. R 언어의 경우 통계 분석을 위해 SAS, STRATA, SPSS와 같은 상용 패키지보다 R과 파이썬을 채택하는 대학 및 연구소가 늘었기 때문이라고 티오베는 전했다. 이 밖에 러스트(Rust)는 지난달 20위에서 이번 달 18위를 기록했으며, 코틀린(Kotlin)은 이번 달 27위로 3계단 상승했다. 델파이/오브젝트 파스칼(Delphi/Object Pascal)은 30위로 하락했다. C 언어는 3개월 연속 1위를 차지했다.  2020년 7월 티오베 인덱스의 상위 10개 프로그래밍 언어는 다음과 같다.  1. C 언어 (16.45%) 2. 자바 (15.1%) 3. 파이썬 (9.09%) 4. C++ (6.21%) 5. C# (5.25%) 6. 비주얼 베이직 (5.23%) 7. 자바스크립트 (2.48%) 8. R 언어 (2.41%) 9. PHP (1.9%) 10. 스위프트 (1.43%) 한편 프로그래밍 언어 튜토리얼의 구글 검색 빈도를 기반으로 등수를 매기는 PyPL(PopularitY of Programming Language)의 2020년 7월 인기 순위는 ...

티오베 티오베 인덱스 프로그래밍 언어 개발 언어 자바 C 언어 R 언어 러스트 코틀린 통계 분석 코로나19 코로나19 백신

2020.07.08

통계 분석을 위한 프로그래밍 언어 R이 2020년 7월 티오베 프로그래밍 언어 인기 지수(Tiobe Index)에서 크게 약진했다. 최근 C 언어가 부상한 이유로 꼽혔던 코로나19 사태는 이번 R 언어의 순위 상승에도 영향을 미친 것으로 추정된다.  R 언어는 지난해 20위에서 올해 역대 최고 순위인 8위에 올랐다. 티오베는 코로나19 백신 연구와 관련된 통계 분석 및 데이터 마이닝의 급증으로 R 언어가 인기를 얻고 있다고 설명했다.    지난 5월, 5년 넘게 1위를 지켜왔던 자바를 제치고 C 언어가 가장 인기 있는 프로그래밍 언어로 부상했다. 여기에 이어 이번 달에는 R 언어의 인기 순위가 급격하게 상승했다. 당시 티오베는 C 언어의 급상승 요인으로 코로나19 사태와 함께 C 언어가 의료기기에 많이 사용됐기 때문이라고 분석했다. R 언어의 경우 통계 분석을 위해 SAS, STRATA, SPSS와 같은 상용 패키지보다 R과 파이썬을 채택하는 대학 및 연구소가 늘었기 때문이라고 티오베는 전했다. 이 밖에 러스트(Rust)는 지난달 20위에서 이번 달 18위를 기록했으며, 코틀린(Kotlin)은 이번 달 27위로 3계단 상승했다. 델파이/오브젝트 파스칼(Delphi/Object Pascal)은 30위로 하락했다. C 언어는 3개월 연속 1위를 차지했다.  2020년 7월 티오베 인덱스의 상위 10개 프로그래밍 언어는 다음과 같다.  1. C 언어 (16.45%) 2. 자바 (15.1%) 3. 파이썬 (9.09%) 4. C++ (6.21%) 5. C# (5.25%) 6. 비주얼 베이직 (5.23%) 7. 자바스크립트 (2.48%) 8. R 언어 (2.41%) 9. PHP (1.9%) 10. 스위프트 (1.43%) 한편 프로그래밍 언어 튜토리얼의 구글 검색 빈도를 기반으로 등수를 매기는 PyPL(PopularitY of Programming Language)의 2020년 7월 인기 순위는 ...

2020.07.08

IDG 설문조사

회사명:한국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.5.0.8