Zephyrnet-Logo

Data Science und die Programmiersprache Go – KDnuggets

Datum:

Sponsored Inhalt

Kommentare von Tom Miller, Fakultätsdirektor der Northwestern University MSDS

Vor Jahren, als Student der angewandten Statistik an der University of Minnesota, lernte ich eine Lektion über Programmieren im akademischen Bereich. Zu Beginn des Kurses sagte der Professor:

„Es ist mir egal, welche Sprache Sie für Aufgaben verwenden, solange Sie Ihre eigene Arbeit erledigen.“

Ich hatte Erfahrung mit Fortran, brachte mir aber selbst Pascal bei und versuchte, einen strukturierten Programmierstil anzunehmen.

Ich nahm den Professor beim Wort und programmierte die erste Aufgabe in Pascal, während meine Klassenkameraden Fortran verwendeten. Der erste Auftrag steht an. Ich gehe mit meiner Arbeit (einer Programmliste) nach vorne in den Raum und gebe sie dem Professor. Er betrachtet es fragend und fragt: „Was ist das?“

Ich erkläre: „Es ist Pascal. Sie sagten uns, wir könnten in jeder Sprache programmieren, die wir wollen, solange wir unsere eigene Arbeit machen.“

Darauf sagt der Professor: „Pascal. Ich lese Pascal nicht. Ich habe nur Fortran gelesen.“

Lektion gelernt: Akademiker sind neuen Programmiersprachen gegenüber nicht besonders aufgeschlossen.

FORTRAN

Fortran wurde von John Backus bei IBM entwickelt und 1957 eingeführt. Wenn Sie den Namen hören, denken Sie an „Formelübersetzung“. Fortran eignet sich gut für numerische Berechnungen, wie sie für wissenschaftliche und technische Anwendungen benötigt werden. Fortran erlebte in letzter Zeit einen Aufschwung, möglicherweise aufgrund der Rechenanforderungen großer Datenmengen und Supercomputing.

PASCAL

Pascal wurde von Nicholas Wirth, einem Schweizer Informatiker, entworfen und 1970 eingeführt. Es ist eine Ableitung von ALGOL. Pascal schloss sich in den 1970er und 80er Jahren an vielen Universitäten einer Bewegung hin zur strukturierten Programmierung an. Variationen von Pascal wurden für die Systemprogrammierung bei Apple und Microsoft verwendet.

 
Heutzutage würden Datenwissenschaftsstudenten an den meisten Universitäten eine ähnliche Erfahrung machen, wenn sie ihre Aufgaben in Go, Rust oder einer anderen modernen Sprache statt in Python oder R einreichen würden.

Mit Anwendungen für maschinelles Lernen und KI beherrscht Python den Tag. Datenwissenschaftler könnten sich damit zufrieden geben, in einem Python-Boot mit Rettungswesten wie z. B. mitzusegeln Numpy, Pandas, Scikit-lernen und TensorFlow an ihren Seiten.

Aber achten Sie auf. Die heutigen Datenmeere sind unruhig. Haie nähern sich.

Erinnern Sie sich an die Worte von Chief Brody an Quint im Film Der weiße Hai: „Du wirst ein größeres Boot brauchen.“ Ich würde vorschlagen, mit Go ein größeres, schnelleres Boot zu bauen.

GEHEN (GOLANG)

Go wurde von drei Google-Informatikern entwickelt: Robert Griesemer, Rob Pike und Ken Thompson. Es behält die Leistungsvorteile von C bei, ist jedoch einfacher und sicherer zu verwenden als C. Go wurde 2009 eingeführt und war die primäre Systemprogrammiersprache bei Google. Für geschäftskritische Systeme in vielen Organisationen ersetzt Go C/C++, C#, Java und Python. Go wird manchmal „Golang“ genannt, um es vom Go-Brettspiel zu unterscheiden und um einen zuverlässigeren Begriff in Suchmaschinen bereitzustellen.

Data Science-Karrieren: Das Warum von Go

In einem Vortrag mit dem Titel „Das Warum von Go„Carmen Andoh verfolgte die Entwicklung von Computersprachen von 1980 bis 2017. Sie lieferte ein überzeugendes Argument für den Einsatz von Go in großen Programmierprojekten. Ihr Argument klingt heute wahr.

  • Go ist maschineneffizient. Es übertrifft sowohl Sprachen, die interpretiert werden, als auch Sprachen, die von virtuellen Maschinen abhängen.
  • Python trat vor mehr als dreißig Jahren in die Computerszene ein, bevor Multi-Core-Prozessoren auf dem Vormarsch waren. Python ist eine interpretierte Single-Thread-Sprache, die sich schlecht für Systeme eignet, die eine gleichzeitige Verarbeitung erfordern.
  • Datenwissenschaftler schreiben zwar in Python, aber für rechenintensive Aufgaben übernimmt C oder C++ die Arbeit. Python ist nur der „Klebstoff“, der die Teile des Bootes des maschinellen Lernens zusammenhält.
  • Es dauert nicht lange, Beispiele für Benchmarks zu finden, die die Vorteile von Go gegenüber Python und R, den führenden Sprachen in der Datenwissenschaft, demonstrieren.

Go wird manchmal als „C für das 21. Jahrhundert“ bezeichnet und ist eine stark typisierte Sprache, die direkt in Maschinencode kompiliert wird. Es lässt sich viel schneller kompilieren als C und führt fast so schnell aus wie C.

C, C++ UND C#

C wurde von Dennis Ritchie in den Bell Labs entwickelt und 1972 eingeführt. Da es Low-Level-Zugriff auf den Speicher ermöglicht und sich leicht auf Maschinenanweisungen abbilden lässt, ist C seit vielen Jahren eine beliebte Systemprogrammiersprache. C hat gegenüber den meisten anderen Programmiersprachen Leistungsvorteile. C++ und C# stellen objektorientierte Erweiterungen von C bereit und behalten gleichzeitig die Struktur- und Leistungsvorteile von C bei.

Die gleichzeitige Verarbeitung (nie eine einfache Aufgabe) ist eine wesentliche Funktion von Go

Go bietet umfangreiche Tools, mit denen Sie die Vorteile heutiger digitaler Multicore-Computer nutzen können. Die Datenwissenschaft benötigt Sprachen und Systeme, die den Anforderungen der heutigen datengesteuerten, datenintensiven Welt gerecht werden. Datenwissenschaft braucht Go.

Go ist programmierereffizient. Python wird oft als leicht zu erlernen angepriesen. Aber ich würde behaupten, dass Go einfacher zu erlernen ist als Python. Go ist von Natur aus einfach, eine Sprache mit nur 25 Schlüsselwörtern. Go ist leicht zu lesen, einfach zu verwenden und im Laufe der Zeit leicht zu warten.

Seien wir froh, dass die Leiter der Go-Community zurückhaltend sind, neue Funktionen hinzuzufügen. Donald Knut hatte die richtige Idee. Als er Version 3.14 von erreichte TeXerklärte er, dass es keine neuen Versionen der Sprache, keine neuen Funktionen, nur Fehlerbehebungen geben werde. Und mit jeder Fehlerbehebung entlehnte er eine weitere Ziffer von π (pi).

Ein Mantra der Go-Programmierer: „Keep it simple.“ Halten Sie es am Laufen.“

Go verfügt über eine klar definierte Struktur mit Formatierungsdienstprogrammen, um einen gemeinsamen Stil für alle Programmierer sicherzustellen, ein Stil, der manchmal als „idiomatisches Go“ bezeichnet wird. Go verfügt über eine automatisierte Speicherverwaltung (Garbage Collection), die Programmierer vor Speicherlecks und Fehlern schützt. Go ist sicherer als C und C++.

Go-Kernentwickler sind der Abwärtskompatibilität verpflichtet, und das Modulsystem von Go fördert die Sicherheit, indem es sicherstellt, dass zur Kompilierungszeit die richtigen Pakete in jeden Build integriert werden. Go verfolgt die Softwareversionen, wenn der Software-Stack wächst.

Stellen Sie sich Softwareentwicklung als ein Jenga-Spiel vor. Wir möchten auf die Blöcke unten im Stapel zugreifen und gleichzeitig sicherstellen, dass der gesamte Stapel nicht zusammenbricht. Los, lass uns das machen.

Go vereinfacht den Software-Stack. Was ist mit dem Software-Stack, der Infrastruktur?

Wenn Python (sogar unterstützt durch C oder C++) der Aufgabe nicht gewachsen ist, greifen Datenwissenschaftler auf andere Sprachen und Systeme zurück. Hier ist eine sogenannte Lösung für die Leistungsprobleme von Python:

 
Data Science und die Programmiersprache Go

Data Science und die Programmiersprache Go
 

Um leistungsstarke Lösungen zu implementieren, wenden sich Datenwissenschaftler an Spark, das auf Scala aufbaut, das auf der Java Virtual Machine basiert. Und um einen einfachen Zugriff zu ermöglichen, fügen diese wohlmeinenden Datenwissenschaftler PySpark hinzu. Ist dies der beste Weg, die Leistungsprobleme von Python zu beheben? NEIN.

Betrachten Sie einen einfacheren Software-Stack. Es heißt „Geh, geh einfach“:

 
Data Science und die Programmiersprache Go

Data Science und die Programmiersprache Go
 

Mit Codebeispielen von GopherCon-Konferenzen in 2021 und 2023Daniel Whitenack zeigt, wie man Lösungen für maschinelles Lernen und künstliche Intelligenz in Go implementiert. Mit Go können wir integrierte, intelligente Webanwendungen erstellen, einschließlich solcher, die generative KI und große Sprachmodelle nutzen.

Go ist die Quintessenz der Systemprogrammiersprache für die heutigen digitalen Multicore-Computer. Go ist die Sprache der Cloud. Go ist die Sprache des verteilten Rechnens. Datenwissenschaftler, die Python früher als die „Klebstoffsprache“ betrachteten, können jetzt auf Go als „Superkleber“ blicken.

Go ist in der Industrie weit verbreitet. Unternehmen schätzen die Sicherheit, Einfachheit und Leistung von Go. Sie erkennen auch die Stärken von Go als Programmierumgebung für Backend-Systeme an. Go eignet sich gut für die Entwicklung von Web- und Datenbankservern, Anwendungsprogrammierschnittstellen und Microservices. Go eignet sich gut für die Implementierung skalierbarer, leistungsstarker Systeme.

Beginnend mit Google, dem Geburtsort von Go, verlassen sich viele Unternehmen für große, geschäftskritische Systeme auf Go. Wenn Go gut genug ist für Google, Netflix, Uber, Dropbox, PayPal, American Express, Capital One, Salesforce, Zillow, und viele andere, dann ist Go für den Rest von uns gut genug.

Wenn Go eine effektive Plattform zum Bauen bieten kann Docker, Kubernetes, Prometheus, Grafana, Dickhäuter, Terraform, Menschenmenge, usw, CockroachDB, Weben, Milvus, Aerospike, und ein vielfältiges Spektrum an verteilten Systemen und Cloud-nativen Microservices, dann kann Go eine effektive Plattform für die Entwicklung von Data-Science-Anwendungen sein.

Informatik- und Datenwissenschaftspädagogen sollten von der Industrie lernen. Sie sollten Go zu ihren Kursen hinzufügen. Das ist es, was wir bei Northwestern tun.

Drei Sprachen für Data Science an der Northwestern

Die Verwendung von Go für die Datenwissenschaft bedeutet nicht, dass wir auf die guten Dinge verzichten müssen, die R und Python bieten. Wir können mehrsprachig sein.

Es ist nicht schwer, sich Projekte vorzustellen, für die ein Datenwissenschaftler Daten mit R untersuchen, Modelle mit Python entwickeln und Systeme in Go implementieren könnte. Unter den drei Sprachen für Data Science ist Go die neueste. Go ist im Aufwärtstrend und bietet erhebliche Beschäftigungsmöglichkeiten.

Northwesterns Data-Science-Programm schätzt die Stärken der drei Sprachen für Data Science in allen Spezialisierungen des Programms.

  • R genießt mit zahlreichen Paketen für Analyse und Modellierung großes Ansehen bei angewandten Statistikern. Es ist eine ausgezeichnete Wahl für wissenschaftliche Programmierung und angewandte Forschung. R eignet sich besonders gut zum Erkunden und Visualisieren von Daten. R ist die Hauptsprache in den meisten Kursen der Spezialisierung Analytik und Modellierung von Northwestern.
  • Python ist derzeit die beliebteste Computersprache in der Datenwissenschaft. Es ist besonders stark in der Verarbeitung natürlicher Sprache und dient als Hauptclient für Deep-Learning-Plattformen. Python bietet eine funktionsreiche Umgebung für die Entwicklung von Modellen und Python ist die Hauptsprache in den meisten Kursen der Spezialisierung auf künstliche Intelligenz von Northwestern.
  • Go ist eine Systemprogrammiersprache, die für heutige Multiprozessorcomputer entwickelt wurde. Es eignet sich gut für die Implementierung skalierbarer, leistungsstarker Systeme für die Datenwissenschaft, einschließlich Webanwendungen und Datenbankservern. Go ist die Hauptsprache in der Data Engineering-Spezialisierung von Northwestern, wie im gezeigt Lernen Sie Go for Data Science Webseite.

Die Schüler in Online-MS in Data Science der Northwestern University Das Programm vermittelt die wesentlichen Analyse- und Führungsfähigkeiten, die zum Analysieren und Interpretieren von Daten erforderlich sind, um fundierte, wirkungsvolle Entscheidungen in einem breiten Spektrum von Bereichen zu treffen. Der Unterricht wird von einer erfahrenen Fakultät aus Branchenexperten geleitet. Die Studierenden entwickeln Fachwissen in ihren Interessengebieten, indem sie einen allgemeinen datenwissenschaftlichen Studiengang oder eine von fünf Spezialisierungen wählen: Analyse und Modellierung, Analysemanagement, künstliche Intelligenz, Datentechnik und Technologieunternehmertum. Die Studierenden lernen berufsbegleitend, in ihrem eigenen Tempo, vollständig online. Bewerbungen werden vierteljährlich angenommen.

 
Data Science und die Programmiersprache Go

Data Science und die Programmiersprache Go
 
 

spot_img

Neueste Intelligenz

spot_img