>  기사  >  백엔드 개발  >  바둑언어 대표 사임 후 국산언어 탄생

바둑언어 대표 사임 후 국산언어 탄생

PHPz
PHPz앞으로
2023-04-10 12:21:031186검색

이벤트 리뷰

지난주 Google의 Go 언어 프로젝트 책임자인 Steve Francia가 사임을 발표한 이유는 Go 프로젝트 작업이 중단되었기 때문입니다. 불편한. 흥미롭게도 일부 국내 고퍼(자칭 바둑 언어 마니아)들 역시 바둑 언어에 대해 새로운 생각을 갖고 있다. 예를 들어, 중국 최초의 Go 언어 애호가 중 한 명인 Chai Shushan과 오랫동안 글로벌 Go 기여자 목록에서 상위 50위에 랭크된 Shi Bin과 같은 Gophers는 Go 기반의 새로운 프로그래밍 언어를 출시하기로 결정했습니다. 언어: Ao Language™ (Ao)로 발음됩니다.

현재 Concave Language™의 코드는 Github에 오픈소스화되어 있으며, 간단한 실행 가능한 예제가 제공됩니다. 웨어하우스 소개에 따르면 WaGo Language™의 설계 목표는 다음과 같습니다. 1. Go 및 Rust 구문에 은폐된 C++ 언어 2. Wago Language™ 소스 코드 파일의 접미사는 .wa3이고 오목한 언어 ™ 컴파일러는 WaGo 구문과 호환됩니다. Concave 문법은 AST 수준의 WaGo 문법과 일치합니다. (둘은 동일한 AST를 생성하고 서로 손실 없이 변환할 수 있습니다.) 4. Concave Language™는 중국어/영어 이중 언어 키워드, 즉 모든 키워드를 지원합니다. 중국어 버전과 영어 버전이 있습니다

바둑언어 대표 사임 후 국산언어 탄생

Gao Language™ 표시, 사진 출처 @GitHub

Chai Shushan, Shi Bin 등에 따르면 " Go 언어의 절제된 스타일은 프로그래밍 언어에 대한 접근 방식이며 미학의 가장 큰 공통 분모입니다. 따라서 Concave Language™ 프로젝트가 시작되었을 때 Go의 디자인 아이디어와 구체적인 구현에 크게 의존했습니다.

물론 Go 언어를 초기 청사진으로 선택한 것은 제한된 투자로 이루어져야 하는 절충안이었다고도 했습니다. 그들은 프로젝트가 발전함에 따라 더욱 독창적인 디자인을 축적하고 독립적인 혁신 추세에 기여할 수 있기를 바랍니다. Chai Shushan, Shi Bin 등이 Gophers 선배이지만 Go 언어에 대한 그들의 선호도를 이해하는 것은 어렵지 않지만 우리는 궁금하지 않을 수 없습니다. Go 언어가 Go 언어에 매료되게 만드는 마법은 얼마나 될까요?

Go 언어를 선택하는 이유

Go 언어를 사용해 본 많은 개발자들의 Go에 대한 평가를 보면, Go 언어는 디자인상 다음과 같은 4가지 특징을 가지고 있습니다.

1. 간단하고 사용하기 쉽습니다
각 언어에서 차용하여 계속해서 새로운 기능을 추가하는 주류 프로그래밍 언어(예: C++, Java 등)와는 다릅니다. 기타, Go 디자이너는 언어 디자인에 있습니다. 처음부터 우리는 언어 기능의 융합 경로를 거부하고 "뺄셈"을 선택했습니다.

그들은 언어 자체의 설계와 구현에 복잡성을 Go 핵심 개발 팀에 맡기고 Go 언어를 사용하는 대다수 개발자에게 단순성, 사용 용이성 및 명확성을 맡깁니다. 따라서 Go 언어는 다음을 제공합니다.

  • 간결하고 기존 구문(기호 테이블을 구문 분석할 필요 없음), 단 25개의 키워드
  • 명시적 종속성(패키지) ; 순환 종속성(패키지)이 없습니다.
  • 상수는 숫자일 뿐입니다.
  • 첫 글자의 대소문자가 가시성을 결정합니다.
  • 모든 유형은 메소드를 가질 수 있습니다(클래스 없음).
  • 산술 변환 없음
  • 생성자 또는 소멸자 없음
  • 할당 및 함수 호출에서 정의된 평가 순서("시퀀스 포인트" 개념 없음) ");
  • 포인터 연산 없음;
  • 메모리는 항상 0 값으로 초기화됩니다.
  • 형식 주석 구문 없음(예: C++의 const, static)
  • ……
  • 2. 선호하는 조합
  • C++, Java 및 기타 주류 객체 지향 언어는 거대한 하향식 시스템, 상속, 명시적 인터페이스 구현 및 기타 메커니즘을 통해 프로그램의 다양한 부분을 결합합니다. 그러나 우리는 고전적인 객체 지향 언어를 찾을 수 없습니다. ​​Go 언어에서 객체의 구문 요소, 유형 시스템 및 상속 메커니즘.

    그럼 Go 언어는 프로그램의 다양한 부분을 어떻게 결합합니까? 그것은 조합이다.

    언어 디자인 수준에서 Go는 Go 언어 무형식 시스템을 포함한 직교 문법 요소를 사용합니다. 유형은 독립적이며 각 유형은 고유한 메소드 세트, 유형 정의 및 메소드 구현을 가질 수 있습니다. 직교독립이다.
    타입 간 타입 임베딩을 통해 이미 구현된 기능을 새로운 타입에 임베딩하여 새로운 타입의 기능적 요구 사항을 빠르게 충족합니다. 새 유형의 인스턴스에서 메소드를 호출할 때 메소드 일치는 유형이 아닌 메소드 이름에 따라 달라집니다.
    또한 인터페이스 정의에 인터페이스 유형을 삽입하여 대규모 인터페이스를 형성함으로써 인터페이스 동작의 집합이 달성됩니다. 이 방법은 특히 표준 라이브러리에서 일반적으로 사용됩니다. 언어로 가세요.

    이것은 Go 언어의 혁신적인 디자인입니다. 인터페이스는 단지 메소드 모음일 뿐이며 구현자와의 관계가 암시적이므로 프로그램의 다양한 부분 간의 결합이 최소화됩니다.
    3. 동시성 및 경량

    Go 언어의 세 디자이너 Rob Pike, Robert Griesemer 및 Ken Thompson은 한때 C++ 표준 위원회가 근시안적이라고 믿었습니다. 하드웨어는 매우 복잡했기 때문에 향후 10년 내에 큰 변화가 일어날 수 있습니다. 언어를 당시의 하드웨어와 긴밀하게 결합하는 것은 대규모 동시 프로그램을 작성할 때 개발자에게 큰 도움이 되지 않습니다.
    그래서 그들은 멀티 코어 지향, 기본 내장 동시성 지원을 새로운 언어의 설계 원칙 중 하나로 간주합니다.

    Go 언어의 기본 동시성 지원 설계 철학은 다음 두 가지 사항에 반영됩니다.
    (1) Go 언어는 경량 코루틴 동시성 모델을 채택하여 멀티 코어 하드웨어를 대상으로 할 때 Go 애플리케이션의 확장성을 높입니다. (2) Go 언어는 개발자에게 동시성을 지원하는 구문 요소와 메커니즘을 제공합니다.
    4. 공학 지향

    Go 언어의 초기 설계 단계에서 Go 언어 설계자들은 공학적 문제 해결을 Go의 설계 원칙 중 하나로 여겼고, 이후 Go를 고려했습니다. 구문 및 도구 체인 표준 라이브러리의 디자인은 Go와 좀 더 학술적이고 연구 지향적인 프로그래밍 언어 간의 디자인 아이디어에 있어 주요한 차이점이기도 합니다.
    이는 Go 언어 사양을 간단하고 유연하게 만들어 다른 언어에 대한 기초 지식을 갖춘 프로그래머가 빠르게 시작할 수 있도록 해줍니다. 더 중요한 것은 Go에는 팀 협업의 일관성이 크게 향상되는 완전한 도구 체인이 함께 제공된다는 것입니다. 예를 들어, Gofmt는 Go 코드의 형식을 자동으로 지정하므로 다른 사람이 작성한 코드의 형식 스타일이 일관되지 않는 문제를 대부분 제거합니다. 아카이브를 편집할 때 자동으로 Gofmt를 실행하도록 편집기를 구성하면 코드를 작성할 때 코드를 마음대로 배치할 수 있고 아카이브할 때 자동으로 올바른 유형의 코드가 됩니다. 또한 Gofix 및 Govet과 같은 매우 유용한 도구가 있습니다.

    간단히 말하면, Go의 언어 수준에서의 단순성은 Go가 C++/Java 등에 뒤지지 않는 표현력을 얻을 수 있게 하는 동시에 소프트웨어 엔지니어링 분야에서 더 나은 가독성, 더 높은 개발 효율성 등을 얻을 수 있게 해줍니다. 중요한 요소로.

    Concave Language™의 미래

    오늘날 Go는 뛰어난 성능(75% 이상)으로 주류 프로그래밍 언어 중 하나가 되었습니다. CNCF 프로젝트, KubernetesIstio를 포함하여 둘 다 Go로 작성되었으며 Go도 주요 클라우드 애플리케이션 언어 중 하나입니다), 이동 중국에서의 언어도 꽤 인기가 있지만, Go에서 탄생한 오목 언어™의 미래가 밝을지 걱정이 되지 않습니다.


    미래를 예측하는 것은 늘 어려운 일이었지만 다행히도 Concave Language™-Go+ 언어 앞에는 선구자가 있습니다. Go+의 발전.

    Go+는 Qiniu Cloud CEO Xu Shiwei가 개발한 프로그래밍 언어로, 2020년 7월에 공식 출시되었으며 2021년 10월에 버전 1.0이 출시되었습니다. 현재 출시된 최신 버전은 올해 6월 13일에 출시된 버전 1.1입니다. 즉, 정식 출시된 지 거의 2년이 지났다는 점이다. Go+는 아직 초기 단계이고 대규모 적용과는 거리가 멀다. 대다수 개발자의 눈에는.

    또한 ECUG Con 2022 컨퍼런스에서 Xu Shiwei가 표현한 견해에 따르면 모두가 프로그래밍 언어의 성능에 더 많은 관심을 기울이고 있지만 성능 측면에서만 Xu Shiwei는 Python만 고려할 수 있다고 믿습니다. Python은 실제로 빠르지 않습니다. Xu Shiwei의 견해에 따르면 새로운 언어에서 가장 중요한 것은 언어가 선택하는 대상 그룹입니다.

    Go+가 선택한 대상 그룹은 전 국민입니다. Xu Shiwei는 이를 "어린이도 마스터할 수 있는 언어"라고 부릅니다. 따라서 Go+는 사용자 기반을 구축하기 위한 엔지니어링과 STEM 교육의 통합에서 시작됩니다.

    일부 개발자가 Go+의 미래에 대해 낙관적으로 보는 것은 Go+의 이러한 기능입니다. Go+에 대한 긍정적인 기대는 Go+의 발전을 위한 원동력이 될 것입니다.

    Concave Language™의 경우에도 이 원칙이 적용됩니다. Concave Language™의 개발 초점은 성능이 아니라 타겟 고객으로 선택한 그룹과 시드 사용자를 확보하는 방법에 있을 수 있습니다.

    앞으로 Ao Language™ 프로젝트팀에서 이러한 소식을 전해드린다면 Ao Language™의 앞날을 더욱 기대해도 좋을 것 같습니다.

위 내용은 바둑언어 대표 사임 후 국산언어 탄생의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제