Ist Erlang Objekt-Orientiert?
Message-passing ist ein wesentlicher Bestandteil der Erlang. Alan Kay hat argumentiert, dass die message-passing ist ein Konzept wichtiger als die Objekte, die in seiner Sicht der Objekt-orientierten Programmierung (und er "erfand" den Begriff!).
Können Erlang als eine Objekt-orientierte Programmier-Sprache (à la Smalltalk)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Joe Armstrong hat auf Aufzeichnung gegangen, sagen, dass er denkt, dass Erlang ist "die möglicherweise nur Objekt-orientierte Sprache" (der Kontext fügt hinzu: "OO in der Alan Kay die Bedeutung des Wortes"). Johnson, im selben interview, Punkte out die gleichen Dinge, die Sean Copenhaver, sagt in seiner Antwort: in der kleinen, Erlang ist eine rein funktionale Sprache; in dem großen, mit Prozessen, es sieht genauso aus wie Kay-Stil der Objektorientierung.
Zitiere aus Wikipedia, die Zitate aus hier:
Aber mit Blick auf Ihre eigenen vergeblichen Versuch:
Also, ja - mit etwas Rauch und Blitze, die Sie könnten versuchen, zu fordern, dass Erlang ist Objekt-Orientiert. Aber ich könnte mit den gleichen tricks zu präsentieren C eine OO-Sprache, weil Sie verwenden können, OO-Stil in es und zu implementieren vtables manuell.
Antwort jeder vernünftige Mensch schaut bei Erlang würde wahrscheinlich "Nein" Erlang ist eine funktionale /message-passing-orientierte Sprache.
Andere Antwort könnte sein: "warum die Mühe "klassifizieren" /"wer braucht zu wissen"?
Ich denke, dass auf der höheren Ebene Erlang ist eine Objekt-orientierte gegeben, dass Sie glauben, in der ursprünglichen Konzepte diskutiert, um den Begriff. Damit meine ich die Isolierung, message passing, Polymorphismus.
Erlang die Prozesse halten, kann auf Bundesland, durchführen von Aktionen, die Staat, und Sie sind isoliert von anderen Prozessen, da Sie nicht unmittelbar aufeinander. Da jeder Prozess kann, erhalten Sie eine Nachricht (und eine Nachricht kann genauso gut delegiert werden, um einen anderen Prozess, die könnte senden Sie eine Antwort an den ursprünglichen Absender) ich glaube, es erfüllt auch Polymorphismus.
Sicherlich Erlang, die auf einer niedrigeren Ebene zeigt sich von seiner funktionalen Aspekte, aber wieder, ich denke, dass auf der höheren Ebene (wo Sie auf der Durchreise sind und die Koordination von Nachrichten zwischen Prozessen) Erlang verhält sich in einer Objekt-orientierten Art und Weise. Sie können einfach nicht verfangen denken Objekt-Orientierung ist alles über Klassen, Vererbung und Methode aufrufen (das ist Verschieden von message passing). Das ist nur, wie das Paradigma wurde für uns in den meisten mainstream-Sprachen.
Joe Armstrong veröffentlichte einen Beitrag in seinem blog über OO und beantwortet diese Frage.
Übrigens, der Artikel ist eine sehr interessante Kritik zu OO: http://harmful.cat-v.org/software/OO_programming/why_oo_sucks
Standardmäßig ist es nicht. Aber es kann.
Es gibt ein tolles Zitat von Joe Armstrong, der Schöpfer von Erlang:
Das problem mit Objekt-orientierten Sprachen ist, Sie haben alle diese implizite Umgebung, die Sie mit sich herumtragen. Sie wollte eine Banane, aber was Sie bekam, war ein gorilla hält die Banane und den ganzen Dschungel.
Würden Sie rufen diesen code "Objekt-orientiert" ?
Diese die Umsetzung dieser "Erlang-Klasse" Uhr.