Ist Googles Go-Sprache adressiert die Probleme in Paul Grahams Post ‚Warum Arc ist nicht besonders Oriented Objekt‘?
Frage
Ist Google Golang die Probleme adressieren mit Sprachen in Paul Grahams Post adressiert ‚ Warum Arc ist nicht besonders Oriented " -Objekt?
Lösung
Mein anfängliches Gefühl in diese Richtung ist: „Es ist zu früh zu sagen,“
1) Objektorientierte Programmierung ist spannend, wenn Sie eine haben statisch typisierte Sprache ohne lexikalische Verschlüsse oder Makros. Für manchen Grad, bietet es einen Weg, um diese Einschränkungen. (Siehe Greenspun Zehnte Regel.)
Go unterstützt Funktionsliterale (siehe docs ), die, wenn ich das richtig lese erlauben Sie fungiert als params übergeben, ob an anderer Stelle oder erstellt ad-hoc definiert.
2) Objektorientierte Programmierung ist in großen Unternehmen beliebt, weil es passt die Art, wie sie Software schreiben. Beim große Unternehmen, Software neigt zu sein durch große geschrieben (und häufig Ändern) Teams von mittelmäßig Programmierer. Objektorientierter Programmierung erlegt eine Disziplin auf diese Programmierer, die jeder verhindert einer von ihnen von zu viel zu tun Beschädigung. Der Preis ist, dass die Code ergibt, ist mit aufgeblähten Protokolle und voller Vervielfältigung. Dies ist nicht ein zu hoher Preis für große Unternehmen, weil ihre Software sein würde wahrscheinlich aufgebläht und voll Vervielfältigung sowieso.
Dieser Punkt ist noch lange nicht subjektiv zu beantworten.
3) Objektorientierte Programmierung erzeugt eine Menge von dem, was aussieht Arbeit. Zurück in den Tagen von Leporello, es war eine Art von Programmierer, setzen würde nur fünf oder zehn Zeilen Code auf einer Seite, mit vorangestellten zwanzig Linien aufwendig formatiertem Bemerkungen. Objekt orientierte Programmierung es: ist wie Crack für diese Menschen können Sie dies alles integrieren Baugerüst nach rechts in Ihre Quelle Code. Etwas, das ein Lisp-Hacker könnte Griff durch ein Symbol Aufschieben auf eine Liste wird eine ganze Datei von Klassen und Methoden. So ist es ein gutes Werkzeug, wenn Sie wollen sich überzeugen, oder jemand anderes, dass Sie eine Menge tun Arbeit.
Da geht nicht wirklich ist objektorientierte Sprache, können Sie wahrscheinlich das Problem in lösen, was auch immer fashon Sie sind komfortabel mit.
4) Wenn eine Sprache selbst ist ein objektorientiertes Programm, kann es sein, von Nutzern erweitert. Vielleicht. Oder vielleicht können Sie tun, noch besser durch bietet die Unterbegriffe Die objektorientierte Programmierung ein la carte. Überlastung, zum Beispiel, ist nicht untrennbar mit Klassen gebunden. Wir werden sehen.
Gehen Sie scheint einen interessanten Ansatz, um Objekte zu haben, in denen Sie nicht erforderlich sind, um große Objekt Bäume sorgen / entwickeln. Es sieht aus wie die Werkzeuge in der Sprache sind Ihre Daten in einer objektorientierten Art und Weise zu strukturieren, ohne dass Sie in einer reinen objektorientierten Umgebung zu verriegeln.
5) Objektorientierte Abstraktionen Karte ordentlich auf die Domänen bestimmter bestimmte Arten von Programmen, wie Simulationen und CAD-Systeme.
...
Andere Tipps
Paul hat einige interessante Punkte im Allgemeinen ich viele seiner Gedanken gelesen habe. In dieser Angelegenheit nicht einverstanden sind wir. Er ist eine Lisp Mutter und eine beschissenes Programm Mutter. Er scheint schwer zu verpfänden Programme wie die Arbeit der großen Programmierer zu verstehen. Ja, ich weiß, es ist als differenzierteren, aber es läuft wirklich nur, dass nach unten. Am Ende des Tages, entweder Ihr Code ist einfach die Arbeit mit, oder ist es nicht. Und einige Programmierer, Programmierer, die Paul wäre toll zu halten, werden in der Lage sein, als andere mit mehr Mist zu setzen und noch in der Lage sein, zu Kopf oder Zahl zu machen, was der Code beabsichtigt. Es ist eine Fähigkeit, aber ganz gewiss nicht der einzige, der ein guter Programmierer braucht.
Apropos Arc, saugt es und wenn ich nicht irre, auch Menschen in der Lisp-Gemeinschaft bin so denken -. Mein Punkt hier ist, dass auch intelligente Menschen Fehler machen
Auch hier ist Paul ein kluger Kerl, aber seine gesamte Ansatz in diesem Stück ist abwegig scheint es.
Warten Sie auf, aber ist wirklich gehen objektorientiert? Es scheint völlig agnostisch an dieser Front. Sie können OOP oder FP oder Imperative Programmierung innerhalb Go verwenden. Ich meine, Prolog-Stil „Programmierung“ wäre eine Strecke sein, aber ansonsten ...
In der Tat, würde ich argumentieren, dass Go scala ähnelt in dieser Hinsicht. Es gibt einige Objekt Paradigmen herumliegen, und doch gibt es auch lambdas und typecasing rumliegen