Google stellt neue Programmiersprache vor (GO)

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Hier sind noch zwei interessante Blogbeiträge zu Go: 1 und 2.

Stefan
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

So wirklich zusagen tut mir Go nicht. Die Schleifen haben sie ja gründlich versiebt, da wäre ein zusätzliches Python-For + while besser gewesen.

Ein kleines, simples Objektmodell hätte Go wohl auch nicht geschadet. Dazu kommt ich bin ein großer Fan von Operatorüberladung :)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Das "for" in C ist ja nur ein Makro für "while". Ein "for(i=0; i< 10; i++)", bei dem man nur den mittleren Teil braucht entspricht dem while. Kann man also auch umdrehen. Ob man nun "for(;i<10;)" oder wie in Go "for i < 10" schreibt, ist doch egal. Und da sie das fehleranfällige "if (c=getc())" durch "if c=getc(); c != 0" ersetzt haben, was für while dann "while c = getc(); c != 0" wäre was "zufällig" genau dem "for" entspricht, ist es doch konsequent, auf das Schlüsselwort "while" zu verzichten.

Go hat ein kleines simples Objektmodell. Zustand kann man in structs halten, Verhalten mit Methoden implementieren.

Und wo kann man Operatoren überladen (oder sonst welche Funktionen)? Im Gegenteil, das Fehlen der Möglichkeit, eigene Datentypen mit "+", "-", usw. zu bearbeiten ist ein berechtigter der Kritikpunkt der Attitüde "ihr dürft nicht, was wir dürfen", die sich leider durch die Sprache zieht.

Stefan
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

sma hat geschrieben:Das "for" in C ist ja nur ein Makro für "while". Ein "for(i=0; i< 10; i++)", bei dem man nur den mittleren Teil braucht entspricht dem while. Kann man also auch umdrehen. Ob man nun "for(;i<10;)" oder wie in Go "for i < 10" schreibt, ist doch egal. Und da sie das fehleranfällige "if (c=getc())" durch "if c=getc(); c != 0" ersetzt haben, was für while dann "while c = getc(); c != 0" wäre was "zufällig" genau dem "for" entspricht, ist es doch konsequent, auf das Schlüsselwort "while" zu verzichten.
Ich persönlich finde "while condition" einfach eingänglicher als "for condition". Sie hätten statt das c-for irgendwie zu verbessern ein for einbauen können, dass über Iteratoren iteriert wie in Python, statt dieses komische range einzubauen, dass sowieso nur bei eingebauten Datentypen funktioniert. Ich zähle ja for ... in ... und yield mit zu den besten Sprachfeatures in Python. Hier hat sich auch jemand mal die Mühe gemacht, das für C(+Blöcke) nachzubasteln.

Mit den Interfaces hätten sie ja die Möglichkeit ein generisches Iteratorprotokoll zu implementieren(wobei das glaube ich so einfach auch nicht möglich ist, da Go keine Typinferenz bietet).
Go hat ein kleines simples Objektmodell. Zustand kann man in structs halten, Verhalten mit Methoden implementieren.
Hmm ich glaube diese Interfaces könnten etwas sein, was ganz bauchbar ist.
Und wo kann man Operatoren überladen (oder sonst welche Funktionen)? Im Gegenteil, das Fehlen der Möglichkeit, eigene Datentypen mit "+", "-", usw. zu bearbeiten ist ein berechtigter der Kritikpunkt der Attitüde "ihr dürft nicht, was wir dürfen", die sich leider durch die Sprache zieht.
Kann man nicht, das war ja auch mein Kritikpunkt, war bloß etwas in Eile deswegen war das so knapp. Ich finde Go ist nichts ganzen und nichts halbes, es hat einige nette Ansätze aber geht imo nicht weit genug, um eine Alternative zu C/C++ zu sein.
Antworten