Hacker News 의견
  • Go를 사용하여 금융 데이터를 처리하는 회사에서 일한 경험이 있음

    • 동료들이 CSV 파일을 집계하거나 데이터베이스를 업데이트하는 등의 일회성 작업에 Go를 사용하는 것을 불편하게 여김
    • Pandas를 사용하지 않고 기본 알고리즘을 직접 구현하는 동료들을 보며 신뢰하기 어려웠음
    • 회사의 시간 낭비라고 생각했으며, Go가 충분하다는 것을 보여주려는 자존심 문제로 보였음
  • 언어를 제대로 배우는 비용을 과소평가하는 사람들이 많음

    • 언어를 "알고 있다"고 말할 수 있는 수준에 도달하는 데 2-4년이 걸림
    • 언어, 컴파일러, 런타임, 표준 라이브러리, 관용적인 방법을 이해하는 데 8-10년이 걸림
    • 이 기간 동안 언어의 사용 방식을 발전시키고 초보자를 빠르게 훈련시킬 수 있음
  • Go는 거의 모든 작업에 적합하다고 생각함

    • Go를 사용할 때 생산성이 매우 높음
    • 프로젝트가 100줄을 넘으면 Python보다 더 나음
    • Go의 장점:
      • 언어가 매우 간단함
      • 핵심 라이브러리가 잘 설계됨
      • 도구 체인과 핵심 라이브러리만으로 대부분의 작업을 처리할 수 있음
  • Go는 개인 프로젝트에 적합하지 않다고 생각함

    • 코드가 장황하고 간단한 작업도 많은 코드를 작성해야 함
    • 적절한 열거형, 합집합 타입, null 안전성 등이 부족함
    • 이러한 이유로 개인 프로젝트에서는 재미를 느끼지 못함
  • Typescript와 Rust를 선호함

    • Deno와 Typescript는 Go보다 더 다재다능한 도구임
    • Typescript는 더 안전하고 인체공학적이지만 약간 느림
    • Rust는 더 안전하고 빠르지만 배우기 어려움
    • Typescript의 장점:
      • null 안전성
      • 널리 지원되는 제네릭
      • 차별화된 유니언 타입
      • 안전한 동시성
      • 컬렉션/이터레이터 메서드
    • Go의 장점:
      • 크기와 메모리 사용 측면에서 더 효율적임
      • Go의 GC가 V8보다 나음
      • CPU 바운드 작업에서 더 빠름
      • 더 큰 표준 라이브러리
  • Go와 Typescript를 사용해봤지만 Kotlin/JVM을 선호함

    • Gradle/Maven의 이분법과 빌드 시스템의 불안감이 있지만, 언어 기능과 런타임 측면에서 매우 만족함
  • Go는 만능 도구라고 생각함

    • 모든 것이 간단하고 사용하기 쉬움
    • 외부 도구를 많이 사용하지 않고도 간단한 명령으로 컴파일하고 배포할 수 있음
    • 다른 언어들도 장점이 있지만, Go만큼 간단하고 번거롭지 않음
  • Go를 좋아하지만 사랑하지는 않음

    • 도구 체계가 엉망이라고 생각함
    • Go 모듈이 완성되지 않은 느낌임
    • 제네릭이 아직 원시적임
    • 생태계가 미완성이라고 느껴짐
  • Go의 대부분의 측면을 좋아하지만, 수치 코드를 많이 작성하는 사람으로서 연산자 오버로딩이 없는 것이 단점임

    • Python과 C++을 계속 사용 중임
    • Rust는 C++ 대체로 매력적이지만, Python을 대체하기에는 규칙이 너무 많음
  • 인생은 한 가지에 능숙해지기에도 짧기 때문에 신중하게 선택해야 함

    • Go를 선택한 이유:
      • 놀라운 표준 라이브러리
      • 읽고 쓰기 간단함
      • 단일 정적 바이너리 빌드
      • 컨테이너가 필요 없음
      • 어디서나 사용 가능 (웹 개발, 데스크탑 앱, 게임 개발, 임베디드 등)