제퍼넷 로고

데이터 과학과 Go 프로그래밍 언어 – KDnuggets

시간

스폰서 내용

노스웨스턴 대학교 교수 톰 밀러(Tom Miller)의 논평 MSDS 프로그램)

몇 년 전, 미네소타 대학교에서 응용통계학을 전공하면서 저는 학계에서 프로그래밍에 대한 교훈을 배웠습니다. 강의가 시작되자 교수님께서 이렇게 말씀하셨습니다.

"나는 당신이 자신의 일을 하는 한 과제에 어떤 언어를 사용하든 상관하지 않습니다."

나는 Fortran을 사용해 본 경험이 있었지만 구조화된 프로그래밍 스타일을 채택하려고 스스로 Pascal을 가르치고 있었습니다.

교수님의 말씀에 따라 저는 첫 번째 과제를 Pascal로 프로그래밍했고, 반 친구들은 Fortran을 사용했습니다. 첫 번째 임무가 마감되었습니다. 나는 내 논문(프로그램 목록)을 강의실 앞쪽으로 가져가 교수님께 건네줍니다. 그는 그것을 신기하게 바라보며 “이게 뭐죠?”라고 묻습니다.

나는 “파스칼이에요. 우리가 우리 자신의 일을 하는 한 우리가 좋아하는 어떤 언어로든 프로그래밍할 수 있다고 말씀하셨죠.”

이에 교수는 “파스칼. 나는 파스칼을 읽지 않습니다. 저는 포트란만 읽었습니다.”

교훈: 학자들은 새로운 프로그래밍 언어에 특별히 개방적이지 않습니다.

포트란

Fortran은 IBM의 John Backus에 의해 개발되어 1957년에 소개되었습니다. 이름을 들으면 "공식 번역"을 생각해보세요. Fortran은 과학 및 엔지니어링 응용 프로그램에 필요한 수치 계산에 매우 적합합니다. Fortran은 아마도 대규모 데이터 세트와 슈퍼컴퓨팅의 계산 요구로 인해 최근 다시 부활했습니다.

파스칼

스위스 컴퓨터 과학자인 Nicholas Wirth가 설계하고 1970년에 소개된 Pascal은 ALGOL의 파생물입니다. 파스칼은 1970년대와 80년대에 많은 대학에서 구조화된 프로그래밍을 향한 움직임에 동참했습니다. Pascal의 변형은 Apple과 Microsoft의 시스템 프로그래밍에 사용되었습니다.

 
오늘날 대부분 대학의 데이터 과학 학생들은 Python이나 R이 아닌 Go, Rust 또는 기타 최신 언어로 과제를 제출한다면 비슷한 경험을 하게 될 것입니다.

기계 학습 애플리케이션과 AI를 통해 Python이 세상을 지배합니다. 데이터 과학자는 다음과 같은 구명 장치를 갖춘 Python 보트를 타고 항해하는 콘텐츠를 느낄 수 있습니다. 누피, 판다, 사이 킷 러닝TensorFlow 그들의 옆에.

하지만 조심하세요. 오늘날의 데이터 바다는 고르지 않습니다. 상어가 다가오고 있습니다.

영화에서 브로디 추장이 퀸트에게 한 말을 떠올려 보세요. 죠스: “더 큰 보트가 필요할 거예요.” 나는 Go로 더 크고 빠른 보트를 만들 것을 제안하고 싶습니다.

GO (골랑)

Go는 세 명의 Google 컴퓨터 과학자인 Robert Griesemer, Rob Pike, Ken Thompson이 개발했습니다. C의 성능 이점을 유지하면서 C보다 작업하기가 더 쉽고 안전합니다. Go는 2009년에 도입되었으며 Google의 기본 시스템 프로그래밍 언어였습니다. 많은 조직의 미션 크리티컬 시스템에서 Go는 C/C++, C#, Java 및 Python을 대체하고 있습니다. 바둑은 바둑 보드 게임과 구별하고 검색 엔진에서 보다 신뢰할 수 있는 용어를 제공하기 위해 "고랭(Golang)"이라고도 불립니다.

데이터 과학 채용: Go를 선택해야 하는 이유

"라는 제목의 프레젠테이션에서바둑의 이유,” Carmen Andoh는 1980년부터 2017년까지 컴퓨터 언어의 발전을 추적했습니다. 그녀는 대규모 프로그래밍 프로젝트에서 Go를 사용하는 것에 대해 설득력 있는 주장을 했습니다. 그녀의 주장은 오늘날에도 사실로 들린다.

  • Go는 기계 효율성이 뛰어납니다. 가상 머신에 의존하는 언어뿐만 아니라 해석되는 언어도 능가합니다.
  • Python은 멀티 코어 프로세서가 널리 보급되기 전인 30여년 전에 컴퓨터 현장에 합류했습니다. Python은 단일 스레드로 해석되는 언어로, 동시 처리가 필요한 시스템에는 적합하지 않습니다.
  • 데이터 과학자는 Python으로 글을 작성할 수 있지만 계산 집약적인 작업의 경우 작업을 수행하는 것은 C 또는 C++입니다. Python은 기계 학습 보트의 조각을 함께 묶어주는 "접착제"일 뿐입니다.
  • 데이터 과학의 선두 언어인 Python과 R에 비해 Go의 장점을 보여주는 벤치마크 사례를 찾는 데는 오랜 시간이 걸리지 않습니다.

때때로 “21세기를 위한 C”로 묘사되는 Go는 기계 코드로 직접 컴파일되는 강력한 형식의 언어입니다. C보다 훨씬 빠르게 컴파일되고 거의 C만큼 빠르게 실행됩니다.

C, C++ 및 C#

C는 Bell Labs의 Dennis Ritchie에 의해 개발되어 1972년에 소개되었습니다. C는 메모리에 대한 낮은 수준의 액세스를 제공하고 기계 명령에 쉽게 매핑되기 때문에 수년 동안 널리 사용되는 시스템 프로그래밍 언어였습니다. C는 대부분의 다른 프로그래밍 언어에 비해 성능 이점이 있습니다. C++ 및 C#은 C의 구조와 성능 이점을 유지하면서 C에 대한 객체 지향 확장을 제공합니다.

동시 처리(결코 쉬운 작업은 아님)는 Go의 고유한 기능입니다.

Go는 오늘날의 멀티코어 디지털 컴퓨터를 활용하기 위한 풍부한 도구 세트를 제공합니다. 데이터 과학에는 오늘날의 데이터 중심, 데이터 집약적 세계의 요구를 처리할 수 있는 언어와 시스템이 필요합니다. 데이터 과학에는 Go가 필요합니다.

Go는 프로그래머에게 효율적입니다. 파이썬은 종종 배우기 쉽다고 선전됩니다. 하지만 저는 Go가 Python보다 배우기 쉽다고 주장하고 싶습니다. Go는 디자인이 단순하며 25개의 키워드만 있는 언어입니다. Go는 읽기 쉽고, 사용하기 쉽고, 시간이 지나도 유지 관리하기 쉽습니다.

Go 커뮤니티의 리더들이 새로운 기능 추가를 꺼린다는 사실을 기쁘게 생각합니다. 도날드 크 누스 올바른 생각을 갖고 있었습니다. 그가 버전 3.14에 도달했을 때 TeX, 그는 언어의 새 버전이나 새로운 기능은 없으며 버그 수정만 있을 것이라고 선언했습니다. 그리고 버그가 수정될 때마다 그는 π(파이)에서 다른 숫자를 빌렸습니다.

Go 프로그래머의 주문: “간단하게 유지하세요. 계속 실행하세요.”

Go는 프로그래머들 사이에 공통된 스타일을 보장하기 위해 서식 지정 유틸리티가 포함된 잘 정의된 구조를 가지고 있습니다. 이 스타일은 때때로 "관용적 Go"라고도 합니다. Go에는 자동화된 메모리 관리(가비지 수집) 기능이 있어 메모리 누수 및 오류로부터 프로그래머를 보호합니다. Go는 C나 C++보다 안전합니다.

Go 핵심 개발자는 이전 버전과의 호환성을 위해 노력하고 있으며 Go의 모듈 시스템은 컴파일 타임에 올바른 패키지가 각 빌드에 통합되도록 보장하여 안전성을 향상합니다. Go는 소프트웨어 스택이 증가함에 따라 소프트웨어 버전을 추적합니다.

소프트웨어 개발을 Jenga 게임으로 생각해보세요. 우리는 전체 스택이 붕괴되지 않도록 하면서 스택의 맨 아래에 있는 블록에 액세스하려고 합니다. 가서 해보자.

Go는 소프트웨어 스택을 단순화합니다. 소프트웨어 스택, 인프라는 어떻습니까?

Python(C 또는 C++로 강화된 경우에도)이 작업에 적합하지 않은 경우 데이터 과학자는 다른 언어와 시스템으로 전환합니다. 다음은 Python의 성능 문제에 대한 소위 해결책입니다.

 
데이터 과학과 Go 프로그래밍 언어

데이터 과학과 Go 프로그래밍 언어
 

고성능 솔루션을 구현하기 위해 데이터 과학자는 Java Virtual Machine에 의존하는 Scala를 기반으로 구축된 Spark를 선택합니다. 그리고 쉬운 액세스를 제공하기 위해 이러한 선의의 데이터 과학자들은 PySpark를 믹스에 추가합니다. 이것이 Python의 성능 문제를 해결하는 가장 좋은 방법입니까? 아니요.

더 간단한 소프트웨어 스택을 고려하십시오. Go입니다. 그냥 Go하세요.

 
데이터 과학과 Go 프로그래밍 언어

데이터 과학과 Go 프로그래밍 언어
 

GopherCon 컨퍼런스의 코드 예제를 통해 20212023, Daniel Whitenack은 Go에서 기계 학습 및 인공 지능 솔루션을 구현하는 방법을 보여줍니다. Go를 사용하여 생성 AI 및 대규모 언어 모델을 호출하는 애플리케이션을 포함하여 통합된 지능형 웹 애플리케이션을 구축할 수 있습니다.

Go는 오늘날의 멀티코어 디지털 컴퓨터를 위한 전형적인 시스템 프로그래밍 언어를 나타냅니다. Go는 클라우드의 언어입니다. Go는 분산 컴퓨팅의 언어입니다. 과거에 Python을 "접착제 언어"로 여겼던 데이터 과학자들은 이제 Go를 "슈퍼 접착제"로 볼 수 있습니다.

Go는 업계에서 널리 사용됩니다. 기업은 Go의 안전성, 단순성 및 성능을 중요하게 생각합니다. 그들은 또한 백엔드 시스템 프로그래밍 환경으로서 Go의 강점을 인식하고 있습니다. Go는 웹 및 데이터베이스 서버, 애플리케이션 프로그래밍 인터페이스, 마이크로서비스 개발에 매우 ​​적합합니다. Go는 확장 가능한 고성능 시스템을 구현하는 데 적합합니다.

Go의 탄생지인 Google을 시작으로 많은 기업이 대규모 미션 크리티컬 시스템에 Go를 사용하고 있습니다. Go가 충분하다면 구글, 넷플릭스, 동네 짱, 드롭 박스, 페이팔, 아메리칸 익스프레스, 자본 하나, 세일즈 포스, Zillow, 그리고 다른 많은 사람들이 Go를 사용하면 나머지 사람들에게는 충분합니다.

Go가 구축을 위한 효과적인 플랫폼을 제공할 수 있다면 도커, Kubernetes, 프로 메테우스, 그라 파나, 후피 동물, 테라 폼, CrowdStrike, , 바퀴벌레 DB, 위비하다, 밀 버스, 에어로 스파이크, 다양한 분산 시스템 및 클라우드 기반 마이크로서비스를 갖춘 Go는 데이터 과학 애플리케이션을 구축하기 위한 효과적인 플랫폼이 될 수 있습니다.

컴퓨터 과학 및 데이터 과학 교육자는 업계로부터 배워야 합니다. 강좌에 Go를 추가해야 합니다. 이것이 우리가 노스웨스턴에서 하고 있는 일입니다.

Northwestern의 데이터 과학을 위한 세 가지 언어

데이터 과학을 위해 Go를 사용한다고 해서 R과 Python이 제공하는 좋은 기능을 포기해야 한다는 의미는 아닙니다. 우리는 다국어를 구사할 수 있습니다.

데이터 과학자가 R로 데이터를 탐색하고, Python으로 모델을 개발하고, Go로 시스템을 구현하는 프로젝트를 상상하는 것은 어렵지 않습니다. 데이터 과학을 위한 세 가지 언어 중 Go가 최신입니다. Go는 상승세를 보이고 있으며 상당한 취업 기회를 제공합니다.

노스웨스턴의 데이터 과학 프로그램 프로그램 전문 분야 전반에 걸쳐 데이터 과학을 위한 세 가지 언어의 강점을 높이 평가합니다.

  • 분석 및 모델링을 위한 수많은 패키지가 포함된 R은 응용 통계학자로부터 좋은 평가를 받고 있습니다. 과학 프로그래밍 및 응용 연구를 위한 탁월한 선택입니다. R은 특히 데이터를 탐색하고 시각화하는 데 좋습니다. R은 노스웨스턴 분석 및 모델링 전문 분야의 대부분 과정에서 기본 언어입니다.
  • Python은 현재 데이터 과학 분야에서 가장 널리 사용되는 컴퓨터 언어입니다. 특히 자연어 처리에 강력하며 딥러닝 플랫폼의 기본 클라이언트 역할을 합니다. Python은 모델 개발을 위한 풍부한 기능을 갖춘 환경을 제공하며 Python은 Northwestern의 인공 지능 전문 분야 대부분의 과정에서 기본 언어입니다.
  • Go는 오늘날의 다중 프로세서 컴퓨터용으로 설계된 시스템 프로그래밍 언어입니다. 웹 애플리케이션 및 데이터베이스 서버를 포함하여 데이터 과학을 위한 확장 가능한 고성능 시스템을 구현하는 데 매우 적합합니다. Go는 다음과 같이 Northwestern의 데이터 엔지니어링 전문 분야의 기본 언어입니다. 데이터 과학을 위한 Go 학습 웹 사이트를 방문 하십시오.

에있는 학생들 Northwestern University의 데이터 과학 온라인 석사 프로그램은 데이터를 분석하고 해석하여 다양한 분야에서 정보에 입각하고 영향력 있는 결정을 내리는 데 필요한 필수 분석 및 리더십 기술을 구축합니다. 수업은 업계 전문가로 구성된 뛰어난 교수진이 진행합니다. 학생들은 일반 데이터 과학 트랙을 선택하거나 분석 및 모델링, 분석 관리, 인공 지능, 데이터 엔지니어링, 기술 기업가 정신 등 5가지 전문 분야 중 하나를 선택하여 관심 분야의 전문 지식을 개발합니다. 학생들은 전적으로 온라인에서 자신의 속도에 맞춰 파트타임으로 학습합니다. 신청은 분기별로 접수됩니다.

 
데이터 과학과 Go 프로그래밍 언어

데이터 과학과 Go 프로그래밍 언어
 
 

spot_img

최신 인텔리전스

spot_img