Logo Zephyrnet

Analiza danych i język programowania Go – KDnuggets

Data:

Materiały sponsorowane

Komentarze Toma Millera, dyrektora wydziału Northwestern University MSDS program.

Wiele lat temu, jako student statystyki stosowanej na Uniwersytecie w Minnesocie, otrzymałem lekcję o programowaniu w środowisku akademickim. Na początku zajęć profesor powiedział:

„Nie obchodzi mnie, jakiego języka używasz przy zadaniach, ważne, że wykonujesz swoją pracę”.

Miałem doświadczenie z Fortranem, ale sam uczyłem się Pascala, próbując przyjąć ustrukturyzowany styl programowania.

Wierząc profesorowi na słowo, pierwsze zadanie zaprogramowałem w Pascalu, podczas gdy moi koledzy z klasy używali języka Fortran. Pierwsze zadanie przychodzi na czas. Wychodzę z gazetą (listą programów) na przód sali i wręczam ją profesorowi. Patrzy na to pytająco i pyta: „Co to jest?”

Wyjaśniam: „To Pascal. Powiedziałeś nam, że możemy programować w dowolnym języku, który nam się podoba, pod warunkiem, że będziemy wykonywać naszą własną pracę.

Na co profesor mówi: „Pascal. Nie czytam Pascala. Czytam tylko Fortran.

Wyciągnięta lekcja: pracownicy naukowi nie są szczególnie otwarci na nowe języki programowania.

FORTRAN

Fortran został opracowany przez Johna Backusa w IBM i wprowadzony na rynek w 1957 roku. Kiedy usłyszysz jego nazwę, pomyśl „tłumaczenie formuł”. Fortran dobrze nadaje się do obliczeń numerycznych, potrzebnych do zastosowań naukowych i inżynieryjnych. Fortran przeżył ostatnio renesans, być może ze względu na wymagania obliczeniowe dużych zbiorów danych i superkomputerów.

PASCAL

Zaprojektowany przez Nicholasa Wirtha, szwajcarskiego informatyka i wprowadzony na rynek w 1970 roku, Pascal jest pochodną ALGOL. Pascal był powiązany z ruchem w kierunku programowania strukturalnego na wielu uniwersytetach w latach 1970. i 80. XX wieku. Wariacje na temat Pascala były wykorzystywane do programowania systemów w firmach Apple i Microsoft.

 
Studenci nauk o danych na większości dzisiejszych uniwersytetów mieliby podobne doświadczenia, gdyby przesyłali zadania w Go, Rust lub jakimkolwiek innym współczesnym języku, a nie w Pythonie czy R.

Dzięki aplikacjom do uczenia maszynowego i sztucznej inteligencji Python rządzi. Naukowcy zajmujący się danymi mogą czuć, że treść płynie na łodzi Pythona wyposażonej w urządzenia ratujące życie, takie jak Odrętwiały, Pandy, Nauka scikitu, TensorFlow po ich stronach.

Ale uważaj. Dzisiejsze oceany danych są wzburzone. Zbliżają się rekiny.

Przypomnij sobie słowa wodza Brody'ego skierowane do Quinta w filmie Szczęki: „Będziesz potrzebował większej łodzi.” Sugerowałbym zbudowanie większej i szybszej łodzi przy użyciu Go.

Idź (GOLANG)

Go zostało opracowane przez trzech informatyków Google: Roberta Griesemera, Roba Pike'a i Kena Thompsona. Zachowuje zalety wydajnościowe języka C, a jednocześnie jest łatwiejszy i bezpieczniejszy w obsłudze niż C. Go został wprowadzony w 2009 roku i jest głównym językiem programowania systemów w Google. W przypadku systemów o znaczeniu krytycznym w wielu organizacjach Go zastępuje C/C++, C#, Java i Python. Go jest czasami nazywane „Golang”, aby odróżnić go od gry planszowej Go i zapewnić bardziej wiarygodne hasło w wyszukiwarkach.

Kariera w dziedzinie analityki danych: dlaczego warto iść

W prezentacji zatytułowanej „Dlaczego warto iść”, Carmen Andoh prześledziła rozwój języków komputerowych od 1980 do 2017 roku. Przedstawiła przekonujący argument za używaniem Go w dużych projektach programistycznych. Jej argumentacja jest dziś aktualna.

  • Go jest wydajny maszynowo. Pokonuje języki, które są interpretowane, a także języki zależne od maszyn wirtualnych.
  • Python pojawił się na scenie komputerowej ponad trzydzieści lat temu, zanim rozpowszechniły się procesory wielordzeniowe. Python jest jednowątkowym, interpretowanym językiem, słabo dostosowanym do systemów wymagających współbieżnego przetwarzania.
  • Analitycy danych mogą pisać w Pythonie, ale w przypadku zadań wymagających dużej mocy obliczeniowej najlepiej sprawdzi się C lub C++. Python to po prostu „klej”, który spaja elementy łodzi uczenia maszynowego.
  • Znalezienie przykładów testów porównawczych pokazujących przewagę Go nad Pythonem i R, wiodącymi językami w nauce danych, nie zajmuje dużo czasu.

Czasami określany jako „C na miarę XXI wieku”, Go jest językiem o silnie typowanym typie, który kompiluje się bezpośrednio do kodu maszynowego. Kompiluje się znacznie szybciej niż C i wykonuje prawie tak szybko jak C.

C, C++ i C#

Język C został opracowany przez Dennisa Ritchiego w Bell Labs i wprowadzony na rynek w 1972 roku. Ponieważ zapewnia niskopoziomowy dostęp do pamięci i łatwe mapowanie do instrukcji maszynowych, C jest od wielu lat popularnym językiem programowania systemów. C ma przewagę wydajnościową nad większością innych języków programowania. C++ i C# zapewniają zorientowane obiektowo rozszerzenia języka C, zachowując jednocześnie zalety struktury i wydajności języka C.

Przetwarzanie współbieżne (nigdy nie jest łatwym zadaniem) jest nieodłączną cechą Go

Go oferuje bogaty zestaw narzędzi umożliwiających wykorzystanie współczesnych wielordzeniowych komputerów cyfrowych. Nauka o danych potrzebuje języków i systemów, które poradzą sobie z wymaganiami dzisiejszego, opartego na danych, intensywnego świata. Analiza danych wymaga Go.

Idź, czy programista jest wydajny. Python jest często reklamowany jako łatwy do nauczenia. Twierdzę jednak, że Go jest łatwiejszy do nauczenia niż Python. Go to prostota z założenia, język zawierający tylko dwadzieścia pięć słów kluczowych. Go jest czytelny, łatwy w użyciu i łatwy w utrzymaniu w miarę upływu czasu.

Cieszymy się, że liderzy społeczności Go niechętnie dodają nowe funkcje. Donald knuth miał dobry pomysł. Kiedy dotarł do wersji 3.14 TeXoświadczył, że nie będzie żadnych nowych wersji języka, żadnych nowych funkcji, a jedynie poprawki błędów. I przy każdej naprawie błędu pożyczał kolejną cyfrę od π (pi).

Mantra programistów Go: „Trzymaj się prostoty. Kontynuuj pracę.”

Go ma dobrze zdefiniowaną strukturę z narzędziami do formatowania, które zapewniają programistom wspólny styl, styl czasami nazywany „idiomatycznym Go”. Go posiada automatyczne zarządzanie pamięcią (odśmiecanie), chroniąc programistów przed wyciekami pamięci i błędami. Go jest bezpieczniejszy niż C i C++.

Deweloperzy Go są zobowiązani do zapewnienia kompatybilności wstecznej, a system modułów Go promuje bezpieczeństwo, zapewniając, że odpowiednie pakiety zostaną włączone do każdej kompilacji w czasie kompilacji. Go śledzi wersje oprogramowania w miarę powiększania się stosu oprogramowania.

Pomyśl o tworzeniu oprogramowania jak o grze Jenga. Chcemy uzyskać dostęp do bloków na dole stosu, jednocześnie upewniając się, że cały stos się nie zawali. Idź, pozwól nam to zrobić.

Go upraszcza stos oprogramowania. A co ze stosem oprogramowania i infrastrukturą?

Kiedy Python (nawet wzmocniony przez C lub C++) nie jest w stanie sprostać temu zadaniu, badacze danych zwracają się ku innym językom i systemom. Oto tak zwane rozwiązanie problemów z wydajnością Pythona:

 
Nauka o danych i język programowania Go

Nauka o danych i język programowania Go
 

Aby wdrożyć rozwiązania o wysokiej wydajności, badacze danych zwracają się do Sparka, który jest zbudowany na Scali, która jest zależna od wirtualnej maszyny Java. Aby zapewnić łatwy dostęp, ci mający dobre intencje badacze danych dodają do tego PySpark. Czy to najlepszy sposób na rozwiązanie problemów z wydajnością Pythona? NIE.

Rozważ prostszy stos oprogramowania. To Go, po prostu Go:

 
Nauka o danych i język programowania Go

Nauka o danych i język programowania Go
 

Z przykładami kodu z konferencji GopherCon w 2021 i 2023, Daniel Whitenack pokazuje, jak wdrożyć rozwiązania z zakresu uczenia maszynowego i sztucznej inteligencji w Go. Za pomocą Go możemy budować zintegrowane, inteligentne aplikacje internetowe, w tym te, które odwołują się do generatywnej sztucznej inteligencji i dużych modeli językowych.

Go stanowi kwintesencję języka programowania systemów dla współczesnych wielordzeniowych komputerów cyfrowych. Go to język chmury. Go to język przetwarzania rozproszonego. Analitycy danych, którzy w przeszłości uważali Pythona za „język klejący”, teraz mogą postrzegać Go jako „super klej”.

Go jest szeroko stosowany w przemyśle. Firmy cenią bezpieczeństwo, prostotę i wydajność Go. Uznają także mocne strony Go jako środowiska programowania systemów zaplecza. Go doskonale nadaje się do tworzenia serwerów internetowych i baz danych, interfejsów programowania aplikacji i mikrousług. Go doskonale nadaje się do wdrażania skalowalnych systemów o wysokiej wydajności.

Począwszy od Google, miejsca narodzin Go, wiele firm korzysta z Go w przypadku dużych systemów o znaczeniu krytycznym. Jeśli Go jest wystarczająco dobry Google, Netflix, Uber, Dropbox, PayPal, American Express, Capital One, Salesforce, Zillowi wiele innych, to Go będzie wystarczająco dobre dla reszty z nas.

If Go może zapewnić skuteczną platformę do budowania Doker, Kubernetes, Prometheus, grafana, Zwierzę gruboskóre, Terraform, CrowdStrike, itd, KaraluchDB, Tkać, milvus, Aerospikeoraz różnorodną gamę systemów rozproszonych i mikrousług natywnych w chmurze, Go może być skuteczną platformą do tworzenia aplikacji do analizy danych.

Nauczyciele informatyki i nauki o danych powinni uczyć się od przemysłu. Powinni dodać Go do swoich kursów. To właśnie robimy w Northwestern.

Trzy języki w nauce danych w Northwestern

Używanie Go do nauki o danych nie oznacza, że ​​musimy zrezygnować z dobrych rzeczy, które zapewniają R i Python. Możemy być wielojęzyczni.

Nietrudno wyobrazić sobie projekty, w których analityk danych mógłby eksplorować dane za pomocą R, opracowywać modele w Pythonie i wdrażać systemy w Go. Spośród trzech języków stosowanych w analizie danych najnowszym jest Go. Go cieszy się trendem wzrostowym i oferuje znaczne możliwości zatrudnienia.

Program nauki o danych Northwestern docenia mocne strony trzech języków do nauki o danych w różnych specjalizacjach w programie.

  • R, z licznymi pakietami do analityki i modelowania, jest dobrze oceniany przez statystyków stosowanych. Jest to doskonały wybór do programowania naukowego i badań stosowanych. R jest szczególnie dobry do eksploracji i wizualizacji danych. R jest głównym językiem na większości kursów w specjalizacji Northwestern Analityka i Modelowanie.
  • Python jest obecnie najpopularniejszym językiem komputerowym w nauce danych. Jest szczególnie silny w przetwarzaniu języka naturalnego i służy jako główny klient platform głębokiego uczenia się. Python zapewnia bogate w funkcje środowisko do tworzenia modeli, a Python jest podstawowym językiem większości kursów w ramach specjalizacji Sztuczna Inteligencja firmy Northwestern.
  • Go to systemowy język programowania przeznaczony dla współczesnych komputerów wieloprocesorowych. Doskonale nadaje się do wdrażania skalowalnych, wysokowydajnych systemów do analityki danych, w tym aplikacji internetowych i serwerów baz danych. Go jest głównym językiem w specjalizacji Inżynieria danych firmy Northwestern, jak pokazano w Nauka Wybierz naukę danych stronie internetowej.

Studenci w Internetowe magisterium z nauki o danych Northwestern University program zbuduje niezbędne umiejętności analityczne i przywódcze potrzebne do analizowania i interpretowania danych w celu podejmowania świadomych, wpływowych decyzji w szerokim zakresie dziedzin. Zajęcia prowadzone są przez wykwalifikowaną kadrę ekspertów branżowych. Studenci rozwijają wiedzę w swoich obszarach zainteresowań, wybierając ogólną ścieżkę nauki o danych lub jedną z pięciu specjalizacji: analityka i modelowanie, zarządzanie analityczne, sztuczna inteligencja, inżynieria danych i przedsiębiorczość technologiczna. Studenci uczą się w niepełnym wymiarze godzin, we własnym tempie, całkowicie online. Zgłoszenia przyjmowane są kwartalnie.

 
Nauka o danych i język programowania Go

Nauka o danych i język programowania Go
 
 

spot_img

Najnowsza inteligencja

spot_img