Salesforce: Einstein Analytics에서 Google Go 언어용 Python을 버린 이유

  • Sep 06, 2023

Salesforce가 Einstein Analytics에 Google의 Go 프로그래밍 언어가 Python 및 C보다 더 적합한 이유를 설명합니다.

최근 세일즈포스 157억 달러 지출 분석 회사인 Tableau에서 자체 Einstein Analytics 플랫폼 강화. 분명히 Salesforce는 분석을 미래에 매우 중요한 요소로 보고 있습니다.

개발자

  • 우리가 알고 있는 프로그래밍의 종말입니다.
  • 개발자들은 자신의 직업이 안정감을 느끼지만 여전히 그만둘 생각을 하고 있습니다.
  • 웹의 미래에는 다른 종류의 소프트웨어 개발자가 필요합니다
  • 소비자와 개발자를 위한 최고의 Linux 노트북

그러나 회사는 2017년에 Einstein Analytics를 출시하기 전에 백엔드를 점검하고 거의 전적으로 Google의 인기 있는 Go 또는 'Golang' 프로그래밍 언어로 재구축했습니다.

보다:6가지 주문형 프로그래밍 언어: 시작하기 (무료 PDF)

Salesforce 수석 설계자 Guillaume Le Stum에 따르면 Salesforce가 Einstein Analytics를 출시하기 전에 쿼리 엔진 및 데이터 세트 생성 도구는 다음과 같습니다. 결국 Einstein Analytics는 "성능을 위해" C로 작성되었으며 쿼리 구문 분석 및 REST API와 같은 기능을 제공하는 Python 래퍼로 작성되었습니다. 섬기는 사람.

"본질적으로 이 제품은 두 세계의 장점을 모두 갖출 수 있도록 제작되었습니다." Stack Overflow의 게시물에서 Le Stum을 설명합니다..

"Python은 더 높은 수준의 애플리케이션을 빠르게 작성하는 데 적합하지만 엔터프라이즈 수준에서 필요한 고성능을 항상 제공하지는 않습니다. C는 고성능 실행 파일을 생성하지만 기능을 추가하는 데 훨씬 더 많은 시간이 걸립니다."

파이썬은 물론 개발자들에게 엄청난 인기를 끌었습니다, 포함 Netflix의 엔지니어 방대한 스트리밍 인프라의 모든 부분에서 Python을 사용합니다.

그러나 출시되기 전에 Le Stum은 Einstein Analytics의 내부 성능 저하가 나타나기 시작했다고 말했습니다. 핵심 쿼리 엔진의 일부가 아닌 모든 새로운 기능이 Python 래퍼에 로드되었기 때문입니다.

따라서 Salesforce는 Python을 사용하여 신속하게 기능을 개발하고 배포할 수 있었지만 결국 접근 방식이 느려졌습니다.

"Python은 멀티스레딩을 잘 수행하지 못하므로 래퍼에 더 많은 작업을 요청할수록 성능이 저하됩니다."라고 Le Stum은 설명합니다.

반면 Go는 Google의 프로덕션 시스템에 적합한 대규모 애플리케이션용으로 제작되었으므로 Salesforce는 Einstein Analytics를 하이브리드 C-Python 애플리케이션에서 완전히 Go로 전환하기로 결정했습니다. 애플리케이션.

Le Stum은 또한 일부 장점에도 불구하고 Python을 계속 사용하는 데 있어 두 가지 단점을 더 식별합니다.

"먼저 Python은 느슨한 타이핑을 사용합니다. 이는 소규모 팀이 새로운 아이디어를 빠르게 개발하고 이를 프로젝트에 적용하는 데 적합했습니다. 생산 – 그러나 일부 고객이 수백만 달러를 지불하는 엔터프라이즈 규모 애플리케이션에는 적합하지 않습니다." 쓴다.

"둘째, 올바른 Python 라이브러리, 버전 및 파일을 배포하는 것이 자질구레한 일이 될 것이기 때문에 우리는 엄청난 의존성 악몽이 곧 일어날 것이라고 예견했습니다. 그래서 2014년에 우리는 Python 래퍼를 Go로 이식하기로 결정했습니다." 

보다: Microsoft: 우리는 여러분이 Python 프로그래밍 언어를 무료로 배우기를 원합니다.

Le Stum은 Go의 강점에는 내장된 도구, 빠른 컴파일 시간 및 배포, 쉬운 문제 해결은 물론 코드를 쉽게 이해할 수 있게 만드는 방법이 포함된다고 말합니다.

"Python에서는 매우 우아한 목록 이해력과 거의 수학적인 아름다운 코드를 작성할 수 있습니다. 그러나 코드를 작성하지 않았다면 그 우아함은 가독성을 희생하면서 나타날 수 있습니다."라고 그는 설명하면서 엔터프라이즈 소프트웨어에서 엔지니어는 코드를 작성하는 것보다 코드를 읽는 데 더 많은 시간을 소비한다고 지적했습니다.

그룹은 쿼리 엔진에 대해 C와 비교하여 Go의 성능에 대해 여전히 의문을 제기했습니다. 그러나 Go로 작성된 개념 증명을 통해 계속 진행할 수 있었고 Einstein Analytics의 Go 버전은 2018년에 일반 출시되었습니다.

가장 큰 장점 중 하나는 Go의 크로스 플랫폼 기능으로 인해 코드 포팅이 쉬워진다는 것입니다.

"모바일 앱에 이 코드가 필요한 경우 iOS나 Android로 크로스 컴파일하면 제대로 작동합니다."라고 Le Stum은 말합니다.

Go로 구축되지 않은 Einstein Analytics의 유일한 부분은 Java로 작성된 클러스터 관리자입니다.

업데이트: Salesforce는 ZDNet에 회사의 원본 스택 오버플로 부분의 부정확성을 지적하도록 요청했습니다. Salesforce는 실제로 Einstein Analytics 쿼리 엔진을 C-Python 하이브리드에서 Go로 이식했지만 Einstein Analytics는 Go 및 Java 이외의 다른 언어를 기반으로 구축되었지만 Salesforce는 다른 언어에 대해 언급하지 않았습니다. 언어는.

프로그래밍 언어에 대한 추가 정보 

  • Python에서 영감을 받은 Nim: 프로그래밍 언어 버전 1.0 출시
  • Microsoft TypeScript 3.7: 프로그래밍 언어 베타 버전에는 이러한 모든 기능이 포함되어 있습니다.
  • Google: 무료 Kotlin 프로그래밍 언어 강좌를 수강하여 Android 앱 구축
  • Microsoft: 우리는 여러분이 Python 프로그래밍 언어를 무료로 배우기를 원합니다.
  • 오라클: 프로그래밍 언어 Java 13이 출시되어 생산성이 향상됩니다.
  • Google: Dart 2.5 프로그래밍 언어 SDK가 개발자를 '강화'할 것입니다
  • Raspberry Pi는 Raspbian용 MIT의 Scratch 3 프로그래밍 언어를 얻습니다.
  • Julia 프로그래밍 언어: 사용자는 자신이 가장 좋아하는 것과 싫어하는 것을 드러냅니다.
  • 프로그래밍 언어 파이썬의 '실존적 위협'은 앱 배포, 이것이 답인가?
  • Julia는 가장 빠르게 성장하는 새로운 프로그래밍 언어인가요? 2018년 통계 차트 급등
  • 데이터 과학을 위한 Python 대 R: 교수가 프로그래밍 언어 경쟁자로 평가
  • 프로그래밍 언어: Python이 향후 4년 안에 C와 Java를 추월할 것으로 예상됩니다.
  • Python 개발자, 데이터 과학자 또는 DevOps: 어떤 기술 직업이 가장 높은 급여를 받나요?
  • Netflix: 스트리밍하는 모든 영화 뒤에는 Python 프로그래밍 언어가 있습니다.
  • TypeScript가 JavaScript를 대체할 수 있을까요? 프로그래밍 언어 스핀오프 사용 급증
  • Julia가 차세대 프로그래밍 언어인가요? MIT는 버전 1.0이 출시되면서 그렇게 생각합니다. 테크리퍼블릭
  • Mozilla의 급진적인 오픈 소스 움직임은 기술 규칙을 다시 작성하는 데 도움이 되었습니다. 씨넷