>  기사  >  백엔드 개발  >  Go 언어는 저급 언어인가요?

Go 언어는 저급 언어인가요?

青灯夜游
青灯夜游원래의
2022-11-30 20:01:556671검색

go 언어는 저급 언어가 아닙니다. 최하위 언어(Bottom Language)는 저수준 언어(Low-level Language)라고도 하는데, 구현 효율성이 낮고, 실행 효율성이 높으며, 하드웨어 제어성이 강하고, 대상 코드가 작고, 유지 관리성이 낮고, 이식성이 떨어지는 언어를 말합니다. Go 언어는 대규모 시스템 개발 과정에서 발생하는 실질적인 문제를 해결하기 위해 설계되었으며, 동시성, 통일된 사양, 단순성, 우아함, 강력한 성능을 지원합니다.

Go 언어는 저급 언어인가요?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

저수준 언어라고도 불리는 저수준 언어는 구현 효율성이 낮고, 실행 효율성이 높으며, 하드웨어 제어성이 강하고, 대상 코드가 작고, 유지 관리성이 낮고, 이식성이 떨어지는 언어를 말합니다.

go 언어는 저급 언어가 아닙니다. Go 언어는 고수준 프로그래밍 언어로 Google에서 2009년에 오픈소스로 공개했습니다. 이는 대규모 시스템의 개발 과정에서 발생하는 실질적인 문제를 해결하도록 설계되었으며 동시성, 통일된 사양, 단순성과 우아함, 강력한 성능을 지원합니다. 많은 Go 언어 전도사들이 이를 "클라우드 컴퓨팅 시대의 C 언어"라고 부르며 사용하고 있습니다.

Go 언어는 C와 유사한 고급 언어로서 C 포인터 프로그래밍의 한계점을 낮추는 동시에 Go 언어 사용에 능숙한 베테랑이라도 실수로 함정에 빠질 수 있습니다. 그러므로 주의를 기울일 필요가 있습니다.

Go 언어의 발전 역사와 Go 언어의 특징에 대해 이야기해보겠습니다.

The naming of Go

Go 언어는 저급 언어인가요?
이것은 Rob Pike가 2007년 9월 25일 오후 3시 12분 프로그래밍 언어 토론 주제로 Robert Griesemer와 Ken Thompson에게 보낸 이메일입니다. 이메일 내용은 다음과 같습니다.

집으로 운전하는 동안 영감을 얻었습니다. * 이 프로그래밍 언어의 이름은 짧고 쓰기 쉽습니다. * 도구 클래스 이름은 goc, gol, goa로 지정할 수 있습니다. * 대화형 디버깅 도구의 이름을 직접 "go"로 지정할 수도 있습니다. * 언어 파일의 접미사는 .go 등입니다.
차고에서 탄생한 많은 위대한 기업들처럼, 바둑 언어의 이름도 자동차와 관련이 있습니다. 이상이 Go언어라는 이름의 유래이다. 저는 개인적으로 Go라는 이름을 아주 좋아합니다. 엉뚱한 생각 같지만 매우 정확합니다. 구글의 순수한 피를 담고 있으며 단순하고 우아한 언어의 특징을 구현하고 있습니다. 그리고 Go에서 코루틴을 여는 키워드는 go입니다.

20%의 Google 엔지니어

그 이후로 Robert, Rob 및 Ken은 Google 내에서 연구 및 개발을 수행하기 시작했습니다. Go 프로젝트 팀은 2009년이 되어서야 공식적으로 오픈 소스가 되었습니다. 는 공식 생일을 맞아 외부 세계에 공식적으로 공개되는 언어의 일본어 문자입니다. 소스 코드는 처음에

http://code.google.com에서 호스팅되었으며 이후 몇 년 동안 점차적으로 GitHub로 이동되었습니다. Google의 '20% 시간' 작업 방식을 통해 엔지니어는 자신이 좋아하는 프로젝트에 자신의 시간 중 20%를 투자할 수 있습니다. 음성서비스 구글 나우, 구글 뉴스, 구글 지도의 교통정보 등은 모두 20%타임의 제품이다. Go 언어도 초기에는 20% 정도의 산물이었습니다.

Go 언어의 세 창시자

이메일에는 Go 언어의 가장 중요한 창시자 세 명이 언급되어 있습니다.

Go 언어는 저급 언어인가요?
이 세 사람에 대해 알아봅시다.

  • Rob Pike: 그는 Bell Labs의 Unix 개발팀 멤버였으며 Plan9 운영 체제 개발의 주요 리더이자 Inferno 운영 체제 개발의 주요 리더였습니다.
  • ken tomption: Turing Award 수상자, B 언어 작성자, C 언어의 전신, Unix 창시자 중 한 명, 운영 체제 Plan 9의 주요 작성자. UTF-8을 공동 개발했습니다.
  • Robert: Google의 V8 JavaScript 엔진 및 Chubby용 코드를 개발했습니다.

Go 언어 계보

프로그래밍 언어의 발전은 종의 진화와 비슷합니다. 각 프로그래밍 언어는 이전 언어로부터 학습한 다음 이를 혁신하고 개선합니다. 아래 그림은 Go가 이전 제품보다 어떤 이점을 물려받았는지 보여줍니다. Go는 이들 거대 기업의 어깨 위에 서서 클라우드 시대에 점점 더 중요한 역할을 하고 있습니다.

Go 언어는 저급 언어인가요?

Go 언어가 이전 언어로부터 상속받은 기능:

  • C 언어: Go 언어는 때때로 "C와 유사한 언어" 또는 "21세기의 C 언어"로 설명됩니다. Go는 C 언어의 유사한 표현식 구문, 제어 흐름 구조, 기본 데이터 유형, 호출 매개변수 값 전송, 포인터 및 기타 여러 아이디어를 C 언어뿐만 아니라 컴파일된 기계어 코드의 실행 효율성과 C가 제공하는 컴파일된 기계어 코드의 실행 효율성을 상속합니다. 언어는 항상 기존 운영 체제에 대한 원활한 적응을 중요하게 생각합니다.
  • 파스칼: 하지만 바둑 언어 가계도에는 다른 조상도 있어요. 영향력 있는 분기 중 하나는 Niklaus Wirth가 디자인한 Pascal 언어에서 나왔습니다. 그런 다음 Modula-2 언어는
  • packages 개념에 영감을 주었습니다. 그런 다음 Oberon 언어는 모듈 인터페이스 파일과 모듈 구현 파일 간의 구별을 포기했습니다. 2세대 Oberon-2) 언어는 Oberon 언어의 객체지향 기능이 제공하는 메서드의 선언 구문뿐만 아니라 패키지 가져오기 및 선언 구문에 직접적인 영향을 미칩니다.
  • CSP: Go 언어의 또 다른 조상으로, 다른 언어와 구별되는 Go 언어의 중요한 기능을
  • 가져옵니다. ​​ 이는 Bell Labs의 Tony Hoare가 발표한 잘 알려지지 않은 동시성 연구 논문에서 영감을 받았습니다. 1978. 기본 문헌, 순차 프로세스 전달(CSP). CSP에서 프로그램은 공유 상태가 없는 병렬 실행 프로세스 집합입니다. 통신 및 제어 동기화를 위해 파이프라인을 사용합니다. 그러나 Tony Hoare의 CSP는 동시성의 기본 개념을 설명하는 데 사용되는 설명 언어일 뿐 실행 가능한 프로그램을 작성할 수 있는 범용 프로그래밍 언어는 아닙니다. Go 언어는 코루틴에서 통신하기 위해 파이프를 사용합니다.

중량급 애플리케이션

다음은 Go 언어의 중량급 애플리케이션 중 일부입니다.

Go 언어는 저급 언어인가요?

Go의 장점

프로그래머의 목소리: 현실 세계가 나를 필요로 한다면 나는 며칠 내에 프로덕션 시스템을 프로토타이핑, 테스트 및 배포할 수 있으며 CPU 및 메모리 오버헤드가 거의 없이 초당 5배 더 많은 요청을 처리할 수 있습니다. Go 언어만이 그것을 할 수 있다고 생각합니다.
Go 언어에는 다음과 같은 장점이 있습니다.

  • 별도의 바이너리 릴리스: Go 프로젝트 컴파일은 정적 실행 파일을 생성합니다. 이 파일은 다른 종속성 없이 독립적으로 실행될 수 있습니다. 이 접근 방식은 특히 클라우드 기반 컨테이너 환경에 적합합니다.
  • 크로스 컴파일: 다른 플랫폼에서 실행되는 모든 운영 체제에서 바이너리를 컴파일합니다. 예를 들어 Mac 시스템에서는 Linux 및 Windows에서 실행할 수 있는 바이너리 파일을 컴파일할 수 있습니다.
  • 가비지 수집: Go 언어는 가비지 수집을 지원합니다. 이에 비해 C++, Rust 등은 개발자가 스스로 제어해야 합니다.
  • 실행 성능: Go가 매우 빠릅니다. 성능은 C++에 가깝습니다. Java, Python 및 Node보다 훨씬 높습니다.
  • 개발 효율성: Go 언어는 정적 언어의 실행 성능과 동적 언어의 개발 효율성을 모두 갖추고 있습니다.
  • 단순성과 효율성: Go 언어의 디자인 철학에는 단순성과 효율성이 포함됩니다. 전형적인 반례는 복잡하고 비대해진 Java 언어입니다.
  • 동시성: 언어 수준은 동시성을 지원하고 코루틴과 채널을 통해 동시 개발을 단순화하며 동시성 성능을 향상시킵니다.
  • 풍부한 표준 라이브러리: Go 표준 라이브러리는 텍스트, IO, 네트워크, 암호화, 웹 서비스, 원격 RPC, 템플릿 엔진 및 기타 기능을 다룹니다.
  • C 언어 호출 가능: C 언어 함수를 호출하여 성능을 더욱 최적화하고 C 언어의 거대한 생태계를 재사용할 수 있습니다.
  • 빠른 컴파일 시간: Go는 매우 빠르게 컴파일합니다. 정적 블로그 생성 시스템으로는 Hexo(노드 개발)와 Hugo(Go 개발) 두 가지를 참고할 수 있습니다.
  • 엔지니어링 유형: Go 언어 디자인의 목적은 실제 엔지니어링 문제를 해결하기 위한 엔지니어링 언어가 되는 것입니다. Go 언어는 개발 사양을 정의하고 다양한 도구를 제공합니다. Go 언어를 사용하면 읽고 이해하기 쉽고 테스트, 유지 관리 및 확장이 쉬운 프로그램을 작성할 수 있습니다.

Go의 단점

  • 헤비급 프레임워크가 부족합니다. Ruby의 Rails, Python의 Django, Java의 Spring 등이 있습니다.
  • 오류 처리: 예외 시스템이 없습니다. Go 관계자들이 이 문제를 해결하고 있습니다.
  • 소프트웨어 패키지 관리: 오랫동안 Go에는 공식적으로 패키지 관리 시스템이 없었습니다. 최근까지 Go 버전 1.13에서는 공식 종속성 관리 도구로 Go 모듈을 공식적으로 도입했습니다.
  • 표준 객체 지향 프로그래밍 모델이 아닙니다. 이는 Go 언어의 혁신이기도 합니다. 확고한 OOP 옹호자라면 조금 불편함을 느낄 수도 있습니다.

프로그래밍 관련 지식을 더 보려면 프로그래밍 동영상을 방문하세요! !

위 내용은 Go 언어는 저급 언어인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.