Wer lernt hier Go? Erwägen andere Unternehmen, es zu nutzen? Wird es wahrscheinlich weit verbreitet sein?
Wer lernt hier Go? Erwägen andere Unternehmen, es zu nutzen? Wird es wahrscheinlich weit verbreitet sein?
Antworten:
Wenn es um Programmiersprachen geht, gilt auf jeden Fall das alte Sprichwort: "Es ist nicht wer du bist, es ist wer du kennst". C und C ++ wurden von AT & T gesponsert, Java wurde von Sun zu uns gebracht, die .NET-Familie kam von Microsoft und alle wurden sehr schnell sehr beliebt. Dann haben wir Objective-C und Python, die eine ganze Weile da waren und so lange im Dunkeln blieben, bis sie von Apple bzw. Google entdeckt und hochgejubelt wurden und dann plötzlich richtig losfuhren. Aber Sprachen ohne einen großen Sponsor neigen dazu, im Dunkeln zu liegen, egal wie gut sie sind.
Go wird von Google gesponsert. Es ist nicht schwer, hier zum richtigen Ergebnis zu kommen. Geben Sie es fünf Jahre und es wird riesig sein.
Ich glaube nicht, dass Go so erfolgreich sein wird. Ein Grund, warum es die große Masse nicht erreichen wird, ist, dass es eine Sprache für die Systemprogrammierung sein soll.
Es besteht ein dringender Bedarf an einer Systemsprache mit moderneren Funktionen. C und C ++ sind hier zu stark an Legacy-Code und Abwärtskompatibilität gebunden, um viel zu verbessern. Trotzdem glaube ich nicht, dass Go diese Rolle in seiner jetzigen Form erfüllt. Das Design ist zu minimalistisch. Das Modell der Parallelität ist zwar aufregend, bringt aber nur wenige andere Funktionen aus höheren Sprachen in die Systemwelt. (Das letzte Mal, als ich nachgesehen habe, was zugegebenermaßen vor einiger Zeit war, hatte es nicht einmal Ausnahmen.) Außerdem ist das Computersprachen-Benchmark-Spiel zumindest in dem Maße eine gute Maßnahme (es ist zugegebenermaßen ein sehr grober Indikator), nicht fast so schnell wie eine "echte" Systemsprache sein muss.
Ich denke , die Sprache mit der besten Chance , die Lücke einer moderneren Systemen Sprache zu füllen D . D ist technisch viel stärker als Go, aber politisch schwächer. Es wird nicht von einem großen Unternehmen unterstützt. Was es wirklich braucht, sind einige Bibliotheken (dies wird schnell angegangen, da die Sprachspezifikation stabil ist) und eine Killer-App.
foo, err := SomeFunc()
allgemein üblich ist. Bei größeren Problemen oder Stellen, an denen Fehler nicht gut funktionieren, können Sie panic()
und verwenden recover()
. Diese werden jedoch absichtlich sehr selten eingesetzt; Wenn der Stapel sehr kurz ist, können Ausnahmen nicht weitergeleitet werden, und kurze Stapel sind an der Tagesordnung, wenn viele Threads gleichzeitig ausgeführt werden.
Ich lerne Go und ja, es wird neben Google und Heroku produktiv eingesetzt.
Go ist definitiv eine schöne Sprache für die Systemprogrammierung. Einfacher Code wie in C, leistungsfähige Strukturen wie in C ++ und Sicherheitsfunktionen wie in Java. Da es eine sehr junge Sprache ist, wurden viele nette Dinge aus anderen Sprachen geerbt:
i := 1
statt int i = 1
, func f(x, y, z int)
statt void f(int x, int y, int z)
, type Foo struct { a, b int }; bar := Foo{1, 2}
stattclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
Angesichts all dieser netten Dinge und der Sicherheit und Leistung, die nur von statisch getippten Sprachen bekannt sind, haben viele Leute aus der Community der dynamischen Sprachen begonnen, Go zu mögen. In den meisten Fällen ist der Go-Code nicht viel länger als der Ruby-Code, aber in jedem Fall sicherer und besser strukturiert.
Aber am Ende denke ich, dass das Killerargument für Go die Parallelität ist. Es ist eine C-ähnliche Sprache, die eine leistungsstarke Parallelitätsunterstützung bietet, die nur von funktionalen Sprachen bekannt ist.
Ich würde sagen, dass dies hauptsächlich von den Bibliotheken / Diensten / Software abhängt, die in / für / mit Go erstellt werden. Menschen benutzen etwas in drei Situationen (Ordnungsfragen): wenn sie praktisch keine andere Wahl haben (Ziel-C), wenn ihre Umgebung es benutzt (FORTRAN), wenn es ihnen das Leben erleichtert (Ruby).
Es ist vielleicht etwas spät dafür, aber Go wird jetzt eine beliebte Sprache und wird wahrscheinlich mit Google in den Mainstream aufgenommen, um es voranzutreiben. Es wird als eine Sprache für Systeme und Produkte innerhalb von Google gepusht und als eine Sprache für die Verwendung mit Google App Engine. Es gibt einige sehr scharfe Leute im Backend von Go, die es bauen und verbessern. Es gibt einige sehr clevere und einfallsreiche Leute, die an Bibliotheken von Drittanbietern für Go arbeiten.
Go füllt eine Lücke, die andere Sprachen nicht ganz gefüllt haben. Für mich habe ich versucht, diese Lücke mit Perl und einer Reihe von Workarounds und Tricks zu füllen. Ich glaube nicht, dass es die perfekte Sprache für alle Situationen und alle Menschen ist, aber es ist sicherlich ein Kandidat für eine ganze Reihe von Situationen. Zum Beispiel funktioniert es hervorragend für Web-Apps, während es auch hervorragend für Desktop-Apps oder serverbasierte Apps funktioniert. Mit HTTP und WebSocket (was bedeutet, dass Sie Apache oder Nginx komplett überspringen können) ist dies ein fantastischer Job, während er auch unter Windows, Linux und OS X sowohl für Daemons als auch für reguläre alte Desktop-Apps sehr gut läuft. Momentan ist die einzige Situation, in der dies für mich fehlschlägt, Android-Apps, von denen ich hoffe, dass sie bald behoben werden. Ich verwende es für Windows-Desktop-Apps, Linux-Desktop-Apps und Linux-basierte Web-Apps.
Ich glaube, es wird einige Jahre dauern, bis es wirklich in den Mainstream kommt, aber es wird dort ankommen. Ich denke, es muss mehr Bibliotheken von Drittanbietern erstellt werden, ähnlich wie die Anzahl und Auswahl, die Perl mit CPAN hat. Es wird dort ankommen.
Was bedeutet "Mainstream" überhaupt? Ohne das zu wissen, ist es so schwer, diese Frage zu beantworten. Schauen wir uns das mal an.
Es gibt viele mögliche Definitionen. Hier sind ein paar:
Management-Ansicht:
Entwicklersicht:
Karrieristischer Standpunkt:
Angesichts all dessen würde ich argumentieren, dass die einzige ehrliche Antwort wahrscheinlich "zu früh zu sagen" ist, aber ich glaube, der beste Indikator für eine echte Langlebigkeit ist die Anzahl der kleinenUnternehmen, die die Sprache verwenden. Große Organisationen sind alle sehr gut - sie sind aufgrund des Umfangs der Investitionen, die sie tätigen können, möglicherweise sogar für das Wachstum einer Sprache oder eines Systems von Tools von entscheidender Bedeutung -, aber sie neigen eher dazu, Moden zu überholen (mit wenigen Ausnahmen). Im Gegensatz dazu möchten kleine Unternehmen, die die Sprache für die Bereitstellung von Produkten und Dienstleistungen einsetzen, mit großer Wahrscheinlichkeit dazu beitragen, dass dies auch in Zukunft möglich ist. Sie bilden auch das Fundament eines starken Arbeitsmarktes in der Region und auch die Nachfrage nach Werkzeugen. Witzigerweise sind dies mehrere Indikatoren für Mainstreaming auf meiner Liste (möglicherweise mehr, abhängig von den Launen des Managements).
Wie viele Personen außerhalb von Google verwenden Go für ihre Arbeit? Ich habe keine Ahnung. (Ich bin nicht. Meine Bedürfnisse werden derzeit durch eine Mischung aus Java, C und Tcl. YMMV gut bedient.)
Es ist bereits populärer als einige Sprachen.
Möglicherweise ist Go die wichtigste Sprache seit über 20 Jahren. Es bietet wirklich einige große Vorteile in Bezug auf massive Datensätze, die von Social Media-Sites, Cloud Computing, Search und Mobile bereitgestellt werden.
Websites wie Facebook, Twitter, Linkedin, YouTube und Ad-Serving-Netzwerke werden für Google Go zumindest in einigen Zusammenhängen viel häufiger verwendet als Ruby On Rails.
Ich habe in Go geschaut, als ich davon hörte. Als Anfänger lerne ich immer noch die Anfängersprachen (in meinem Fall Java, C #, Python und Schema), was eine Menge zu beachten ist, aber wenn ich nicht in so viele verschiedene Sprachen vertieft wäre, hätte ich ernsthaft darüber nachgedacht
Ich denke, auf meinem Niveau kann es nicht schaden, die Grundlagen zu verbessern, bevor man auf Bandwaggons springt. Wenn ich mich recht erinnere, fühlte ich mich aus irgendeinem Grund sehr von Erlang angezogen, als ich nach oben schaute.
Ich habe mich wegen dieser Frage gerade erst mit Go befasst, daher kann ich nicht wirklich beurteilen, ob es sich als Mainstream-Sprache anbietet, aber eines hat mich gerade wirklich aufgeregt:
http://golang.org/doc/go_spec.html#Channel_types
Ich bin zum ersten Mal auf das Konzept der Kanäle in Occam-pi gestoßen und muss sagen, dass es eines der besten Programmierkonzepte überhaupt ist . Dies lässt Parallelität so einfach erscheinen, dass es manchmal mühsam sein kann, dasselbe in einer C-Typ-Sprache zu tun.
Nach dem, was ich gesehen habe (in den 10 Minuten, in denen ich nachgesehen habe), versucht Go, viele verschiedene Programmierkonzepte zu kombinieren, aber das birgt das Risiko, dass es ein Alleskönner ist, ein Meister von nichts.
Ich vermute, dass es davon abhängt, ob Google es als unterstützte Sprache für Appengine und / oder GWT einsetzt.
Ich wünschte, Go wird populär.
Es ist mächtig in der Syntax. (Lernen Sie die Vorteile von Python, C, Java). Es ist gut für Multi-Core-CPU. (Die Kanalfunktion ist viel besser als die Thread-Programmierung). Das Design verhindert die Gefahr vieler Programmierer. (falscher Zeiger, gleicher Codierungsstil durch Tool gofmt, nicht initialisierter Fehler durch Variable verhindern. Zum ersten Mal versuche ich es zum ersten Mal, da es Python + C ist, aber mit einer Geschwindigkeit nahe 1/2 Geschwindigkeit von C.
Aber nachdem ich gründlich gelernt hatte, fand ich es möglicherweise geeignet, Fehlertoleranz und skalierbare Architektur zu entwickeln
after
los?