Google Go가 주류 언어가 될 가능성은 무엇입니까? [닫은]


58

여기서 누가 배우고 있습니까? 다른 회사에서 사용하고 있습니까? 널리 사용됩니까?


21
루비는 레일 뒤에서 인기를 얻었고, 아이폰 뒤에서는 objective-c after입니다.
ohho

1
끔찍한, 그것은 대부분의 사람들을 위해 아무것도 해결하지 않습니다.
Daniel Little

6
가능성은 0과 1 사이입니다. 좀 더 구체적인 것은 내가 가지고 있지 않은 예후 박사 학위를 필요로합니다.
Rein Henrichs

1
@Rein Henrichs은 -위원회가 최종 논문에 몇 가지 변경이 필요합니다하지만 당신은 하나를 얻을 것이다
마틴 베켓을

3
Google은 실제로 Go 용 Android SDK 개발을 고려해야합니다. 적어도 시작으로.
setzamora

답변:


46

프로그래밍 언어에 관해서는, "이것은 당신이 누구인지, 당신이 아는 사람이다"라는 오래된 속담은 분명히 사실입니다. C와 C ++는 AT & T의 후원을 받았으며, Java는 Sun에 의해 우리에게 제공되었으며, .NET 제품군은 Microsoft에서 출시되었으며, 매우 인기가있었습니다. 그런 다음 Objective-C와 Python을 사용했습니다. 이것은 꽤 오랫동안 주변에 있었고 Apple과 Google에서 각각 발견되고 과장된 다음 갑자기 실제로 벗어났습니다. 그러나 주요 후원자가없는 언어는 아무리 훌륭하더라도 모호한 경향이 있습니다.

Go는 Google이 후원합니다. 여기서 올바른 결론에 도달하는 것은 어렵지 않습니다. 5 년을 주면 거대해질 것입니다.


13
@ixtmixilix : 진심 이세요? App EngineGWT 는 그렇지 않다고 말합니다.
imgx64

4
@ixtmixilix-Guice (Java 기반 IoC 프레임 워크)는 Google이 작성했으며 애드워즈 프런트 엔드 및 Wave에서 사용됩니다. 많은 언어를 사용하기 위해 구글 심.
mlk

3
+1 나는 당신의 주요 주장에 동의하지만 (FORTRAN, COBOL, C는 살아 있고 건강합니다) Go는 회사 후원을받는 데있어 실험적인 것이기 때문에 동의하지 않습니다.
Apalala

2
AT & T는 실제로 C 또는 C ++를 추진하지 않았습니다. C는 Unix의 언어이기 때문에 인기가 있었고 나중에는 큰 프로그램의 경우 Pascal보다 좋았습니다. Stroustrup의 저서 인 "Design and Evolution of C ++"에 따르면 C ++은 널리 퍼져 있습니다. 일반적으로 언어를 크게 활용하려면 킬러 앱 또는 대기업 스폰서 십이 필요하지만 언어를 사용하지 않으면 큰 타격을 입거나 놓칠 수 있습니다.
David Thornley 2016 년

3
5 년이 지났습니다. 지금 어떻게 생각하십니까?
hippietrail

17

실제로 Go가 그렇게 성공할 것이라고는 생각하지 않습니다. 그것이 대중에게 도달하지 못하는 이유는 그것이 시스템 프로그래밍을위한 언어 가되기 때문입니다 .


17
동의하지 않습니다. 'echo'에 대한 Linux 소스 코드를보고 에코의 Go 구현을 살펴보십시오. 언어가 간단한 명령으로 수천 줄을 깎을 수 있다면, 그래픽 처리 라이브러리와 같은 줄로 줄을 깎을 수 있습니다. 그리고 그래픽 처리 라이브러리에서 줄을 깎을 수 있다면 id 소프트웨어를 사용하는 사람들이 언젠가 C / C ++보다 더 유용 할 것입니다. id는 게임용 소스 코드를 공개하는 습관이 있기 때문에 Go의 3d 그래픽은 5 년 안에 엄청날 수 있습니다.
ixtmixilix

14
@ixtmixilix Linux는 echo와 관련이 없으며 GNU의 일부입니다.
대안

3
얼랭 어로 작성된 것을 본 적이 있습니까? 그것은 신이 끔찍하지 않습니다.
유닉스 청소부

2
구글의 OS가 시작되면 시스템 언어는 Go가 C / C ++를 능가한다고 생각한다. Google의 OS가 이륙하지 않으면 주류를 타격하는 데 훨씬 많은 시간이 걸릴 것이라고 생각합니다.
Jordan Parmer

2
Neiter I Go는 매우 빠르게 성장할 것이라고 생각합니다. 내 이유 : 1. 구문이 이상하다 2. 너무 림보 3. 라이브러리가 완전하지 않다 4. 동시성 모델이 Erlang에서 더 낫다
Daniel Voina

15

보다 현대적인 기능을 갖춘 시스템 언어가 실제로 필요합니다. C와 C ++는 레거시 코드와 너무 밀접하게 호환되므로 이전 버전과의 호환성이 향상되었습니다. 나는 Go가 현재의 형태로 그 역할을 수행한다고 생각하지 않습니다. 디자인이 너무 미니멀하다. 동시성 모델은 흥미롭지 만 고급 언어에서 시스템 세계에 다른 기능은 거의 제공하지 않습니다. (마지막으로 확인한 것은 얼마 전까지 만해도 예외는 없었습니다.) 또한 적어도 컴퓨터 언어 벤치 마크 게임 이 좋은 척도 (매우 거친 지표 임) 만큼은 아닙니다. "실제"시스템 언어만큼이나 빠릅니다.

보다 현대적인 시스템 언어의 빈 공간을 채울 수있는 가장 좋은 기회는 D 라고 생각합니다 . D는 기술적으로는 Go보다 강력하지만 정치적으로 약합니다. 주요 기업의 지원을받지 않습니다. 실제로 필요한 것은 일부 라이브러리 (언어 사양이 안정적이므로 빠르게 해결되고 있음)와 킬러 앱입니다.


7
다시 "예외조차 없었습니다"그것은 중대한 결정입니다 -golang.org/doc/go_faq.html
user151019

1
@ 마크 : 흥미 롭습니다. 패닉과 복구는 예외적 인 것처럼 보입니다. D에는 scope 문이 있는데, 이는 defer ()와 거의 같지만 일반적인 예외는 없습니다.
dsimcha

3
예외는 없지만 필요하지는 않습니다. 대신 여러 반환 값을 허용하여 foo, err := SomeFunc()일반적입니다. 주요 문제 또는 오류가 제대로 작동하지 않는 지점의 경우 panic()및 을 사용할 수 있습니다 recover(). 그러나 이들은 의도적으로 매우 드물게 사용됩니다. 스택이 매우 짧은 경우 예외를 스택으로 전달할 수 없으며 동시 스택이 많은 경우 짧은 스택이 일반적입니다.
crazy2be 2016 년

3
"D는 기술적으로 Go보다 훨씬 강력합니다." "디자인이 너무 미니멀합니다." 이것이 사실이라고 말하는 방법에 흥미가 있습니다. 당신의 의견 일뿐입니다.
Moshe Revah

10

나는 Go를 배우고 있습니다. 그렇습니다 .Google과 Heroku 외에도 생산적으로 사용됩니다.

Go는 확실히 시스템 프로그래밍에 좋은 언어입니다. C와 같은 간단한 코드, C ++과 같은 강력한 구조 및 Java와 같은 안전 기능. 아주 어린 언어이기 때문에 다른 언어의 많은 좋은 것들이 상속되었습니다.

  • 범위에 대한 반복
  • 채널 (뮤텍스 등 잊어 버림)
  • 타입 계층이없고 인터페이스 상속 만
  • 실제로 Go는 클래스를 모르지만보다 유연한 "유형": 정의 된 메소드가 일치하면 인터페이스가 자동으로 상속됩니다.
  • 보일러 플레이트 감소 : i := 1대신 int i = 1, func f(x, y, z int)대신 void f(int x, int y, int z), type Foo struct { a, b int }; bar := Foo{1, 2}대신class Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • 예외적 인 경우에만 예외 ( "panics") : 다른 경우에 오류가 발생하기 쉬운 함수는 쉽게 무시할 수있는 추가 오류 매개 변수를 리턴 할 수 있습니다.

정적 유형 언어에서만 알려진 이러한 모든 장점과 안전 및 성능을 고려하면 동적 언어 커뮤니티의 많은 사람들이 Go를 좋아하기 시작했습니다. 대부분의 경우 Go-code는 Ruby 코드보다 길지 않지만 모든 경우 더 안전하고 체계적으로 구성됩니다.

그러나 결국 Go의 킬러 논쟁은 동시성이라고 생각합니다. 기능적 언어에서만 알려진 강력한 동시성 지원 기능이있는 C 유사 언어입니다.


2
나는 최근에 AppEngine 프로그래밍을 배우면서 Go와 사랑에 빠졌으며, 당신이 한 것보다 더 잘 말할 수 없었습니다. 잘 했어.
Adam Crossland

5

나는 이것이 Go에서 / 사용 / 사용할 라이브러리 / 서비스 / 소프트웨어에 주로 의존한다고 말하고 싶습니다. 사람들은 세 가지 상황 (주문 사항)에서 무언가를 사용합니다. 실제로 다른 옵션이 없을 때 (Objective-C), 주변 환경에서 사용할 때 (FORTRAN), 더 쉽게 살 수있는 경우 (Ruby).


5

조금 늦었을 수도 있지만 현재는 Go가 인기있는 언어가되고 있으며 Google이이를 추진하면서 주류에 진입 할 것입니다. Google의 시스템 및 제품에 사용되는 언어로 추진되고 있으며 Google App Engine과 함께 사용할 언어로 추진되고 있습니다. Go 건물의 백엔드에는 매우 날카로운 사람들이 있습니다. Go를 위해 타사 라이브러리에서 작업하는 매우 영리하고 상상력이 풍부한 사람들이 있습니다.

Go는 다른 언어로 채워지지 않은 공백을 채 웁니다. 나에게 나는 그 공백을 Perl과 많은 해결 방법과 트릭으로 채우려 고 노력했다. 나는 그것이 모든 상황과 모든 사람들에게 완벽한 언어라고 생각하지는 않지만 확실히 많은 상황의 후보입니다. 예를 들어 웹 앱에는 적합하지만 데스크톱 앱 또는 서버 기반 앱에도 적합합니다. 데몬과 일반 ol 데스크탑 앱 모두 Windows, Linux 및 OS X에서 잘 실행되는 동안 HTTP 및 WebSocket (아파치 또는 nginx를 모두 건너 뛸 수 있음)과 같은 환상적인 작업을 수행합니다. 현재로서는 실패한 유일한 상황은 Android 앱에 대한 것이며 곧 해결 될 것입니다. Windows 데스크톱 앱, Linux 데스크톱 앱 및 Linux 기반 웹 앱에 사용합니다.

나는 그것이 주류에 실제로 도달하기까지 몇 년이 걸릴 것이라고 믿지만 거기에 도착할 것입니다. 펄이 CPAN과 함께 사용하는 것과 같은 종류의 수와 선택과 같이 더 많은 타사 라이브러리를 구축해야한다고 생각합니다. 도착할 것이다.


3

"주류"는 무엇을 의미합니까? 그것을 알지 못하면이 질문에 대답하기가 너무 어렵습니다. 조금 살펴 보자.

가능한 정의가 많이 있습니다. 몇 가지가 있습니다 :

관리 뷰 :

  • 고객에게 사용 요구
  • 사용을 요구하는 경영진에게
  • 그것을 사용하는 경영진에 의해 비판되지 않습니다

개발자의 관점 :

  • 일반적으로 사용 가능한 언어 도구 (예 : Linux 배포판)
  • 언어 도구는 일반적으로 10 년 동안 제공됩니다.
  • 10 년 이상 지속되고 사용될 소프트웨어 아티팩트를 작성합니다.

경력보기 :

  • 언어 별 기술은 다른 직무로 이전 가능
    • 신병 모집 원

위의 모든 것을 감안할 때, 나는 정직한 대답은 아마도“말하기에는 너무 이른 것”이라고 주장하지만 실제 장수의 가장 좋은 지표는 작은 숫자라고 믿습니다.언어를 사용하는 비즈니스. 대기업은 모두 잘 운영됩니다. 적용 가능한 투자 규모 때문에 언어 또는 도구 시스템의 성장에 필수적 일 수도 있습니다. 반대로, 소기업이 제품과 서비스를 제공하기 위해 언어를 사용하여 구축 한 경우, 앞으로도 계속 그렇게 할 수 있도록하는 데 기여하고자 할 것입니다. 그들은 또한이 지역에서 고용 시장의 기반을 형성하고 도구에 대한 수요도 형성합니다. 놀랍게도, 그것들은 나의 목록에서 주류성을 나타내는 몇 가지 지표입니다 (관리의 기발함에 따라 더 많을 수도 있습니다).

그렇다면 Google 이외의 사람들 이 자신의 작업에 Go를 사용하고 있습니까? 나도 몰라 (아니요. 현재 Java, C 및 Tcl. YMMV가 혼합되어 있습니다.)


“주류”의 의미에 대한 훌륭한 요약. “고객이 사용을 요구하는 경우”를 제외하고 Go에이 모든 것이 있다고 생각합니다.
Wildcard

2

이미 일부 언어보다 인기가 있습니다.

아마도 Go는 20 년 이상 가장 중요한 언어 일 것입니다. 소셜 미디어 사이트, 클라우드 컴퓨팅, 검색 및 모바일이 제공하는 대규모 데이터 세트 측면에서 큰 이점을 제공합니다.

Facebook, Twitter, Linkedin, YouTube 및 Ad-Serving 네트워크와 같은 사이트는 적어도 일부 상황에서 Ruby On Rails보다 Google Go를 훨씬 더 많이 사용합니다.


1

나는 그것을 들었을 때 Go를 조사했다. 완전한 초보자로서 나는 여전히 받아 들여야 할 초보자 언어 (제 경우에는 Java, C #, Python 및 Scheme)를 배우고 있지만 다른 언어에 몰두하지 않으면 진지하게 고려했을 것입니다.

나는 내 레벨을 알고 밴드 밴드를 뛰어 넘기 전에 기본을 내리는 데 아무런 해가 없습니다. 바르게 기억한다면 Go를 찾아 다니면서 어떤 이유로 Erlang에 매료되었습니다.


1

나는이 질문 때문에 Go를 보았으므로 주류 언어로 이륙할지 여부에 대해서는 실제로 언급 할 수 없지만 한 가지 사실은 나를 정말로 흥분 시켰습니다.

http://golang.org/doc/go_spec.html#Channel_types

내가 먼저 오캄-PI에서 채널의 개념을 가로 질러 와서 나는 그것이 최고의 프로그래밍 개념 중 하나라고한다 이제까지 . C 형 언어로 같은 일을하는 것이 때로는 고통 스러울 수있는 동시성을 너무 쉽게 보이게합니다.

내가 본 것 (10 분 동안 본 것)에서 Go는 많은 다른 프로그래밍 개념을 결합하려고 노력하고 있지만, 모든 거래의 잭이 될 수있는 위험이 있습니다.


0

그것이 주류가 될지 여부는 Google이 그것을 appengine 및 / 또는 GWT 지원 언어로 채택하는지에 달려 있다고 생각합니다.


2
Google App Engine에 시스템 언어가 어떻게 유용합니까?
ixtmixilix

현재 머신 코드로 컴파일 된 시스템 언어이기 때문에 앞으로 Google이 다른 플랫폼을 타겟팅하는 것을 막을 수는 없습니다. GWT의 경우 JavaScript로 자바 컴파일하고 안드로이드에 대한 dalvik vm을 실행하여 수행 한 작업을 살펴보십시오. 마찬가지로 페이스 북 컴파일 PHP. 나는 미래에 언젠가 appengine에 설치 될 수있는 Go의 출력을 구상 할 수 있었다.
Chris Buckett

+1-중요한 것은 무언가에 유용하다는 것입니다. 아이폰이 Objective-C를 위해 무엇을했는지 보자.

3
글쎄 , 그냥 일어났다 . 이제 이륙하는지 보자 ...
Elad

3
기록을 위해 현재 AppEngine Go 런타임에서 대규모의 야심 찬 웹 응용 프로그램을 개발 중입니다. Go는 엄청나게 생산적이고 빠릅니다. 코드는 매우 읽기 쉽습니다. 훌륭한 언어입니다.
Adam Crossland

0

Go가 대중화되기를 바랍니다.

구문이 강력합니다. (python, C, Java의 장점을 배우십시오). 멀티 코어 CPU에 좋습니다. (채널 기능은 스레드 프로그래밍보다 훨씬 낫습니다). 이 디자인은 많은 프로그래머의 함정을 방지합니다. (잘못된 포인터, 도구 gofmt에 의한 동일한 코딩 스타일, 변수 초기화되지 않은 버그 방지, 처음에는 파이썬 + C이지만 C의 1/2 속도에 가까운 속도로 처음 시도합니다.

그러나 깊이 배우고 나면 내결함성과 확장 가능한 아키텍처를 개발하는 것이 적합하다는 것을 알았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.