Verfasst: Dienstag 29. Dezember 2009, 13:28
Zwei Anmerkungen von mir:
Das Patent-Argument ist keines. Patente drohen immer und überall und sind sprachunabhängig. Wenn du das selbe in Python schreibst, was in der C#-Bibliothek steht und patentiert ist, dann hast du das Patent auch verletzt. Und wenn du dich entschließt, die ganze Patentscheiße zu ignorieren, dann kannst du das auch in C# machen. Tatsächlich ist dort die Situation noch etwas besser, denn Microsoft hat öffentlich erklärt, dass sie Lizenzen für ihre Patente gewähren und hoffentlich so viele Patente halten, dass niemand wagt, sie anzugreifen. Außer natürlich Patenttrolle, die nichts haben, was sie verlieren könnten. Aber diese werden sich an Microsoft wenden, denn da ist mehr zu holen, als bei einem Entwickler. So hat Sun vor einigen Jahren ja mal die Java-Community vor einem (IMHO lächerlichen) RPC-Patent für die gar nicht lächerliche Summe von $90 Mio freigekauft. Wetten, dass das Patent auf auch Python-Programme zutrifft, die RPC machen?
Wo ich gerade XML-RPC las: http://www.patentstorm.us/patents/7028312.html - bis 2019 also bitte kein XML-RPC oder Merrick, Allen oder Lapp könnten rechtliche Schritte einreichen. Patentdrohungen sind überall!
Wenn man den SecondLife-Client benutzen will (ist das eigentlich gestattet, diesen für andere Server zu benutzen, theoretisch könnten die das ja untersagt haben - oder er ist patentiert ;), muss der eigene Server ja das selbe Protokoll wie der andere offene Server da (und die SecondLife-Server selbst) sprechen. Im wesentlichen würde man also eine Implementierungssprache durch eine andere austauschen. Ich sehe da noch keinen großen Vorteil. Zudem, wenn du eine weniger großzügige Lizenz einsetzen willst, als die aktuelle "mach was du willst" BSD-Lizenz.
Ich meine mal aufgeschnappt zu haben, dass Lindenlabs selbst Mono einsetzt und extra um Continuations erweitert hat, damit Prozesse angehalten und von einem Server auf einen anderen transportiert werden können und dort weiterlaufen können. So könnte es bei OpenSim dank Mono doch durchaus Vorteile im Codeaustausch mit Lindenlabs geben, sollten die noch mehr Server-Code freigeben. Zudem verstehe ich das so, dass man doch in SecondLife überall so kleine Programme schreibt, die dann auf dem Server laufen. Diese in einer beliebigen .NET-Sprache zu verfassen statt auf diese selbst gemachte Scriptsprache von Lindenlabs (die der Autor im selben Vortrag, in dem sie die etwas über Mono erzählt haben als nicht wirklich gelungen bezeichnet hat) angewiesen zu sein und dafür (in Python) einen eigenen Interpreter schreiben zu müssen.
Der Artikel auf Wikipedia freut sich zwar, dass OpenSim der Defacto-Standard werden könnte, doch ich vermute doch, dass er die selbe Architektur wie SecondLife hat und diese war AFAIK entscheidend dafür verantwortlich, dass das ganze Ding nicht skaliert.
Gibt es eigentlich mehr Informationen darüber, wie Eve Online serverseitig funktioniert? Die haben es doch wohl als eine der ganz wenigen geschafft, mehr als ein paar hundert (im Falls von SecondLife) oder paar Tausend (im Falle der meisten MMORPGs wie WoW) User auf einem Server(-Grid) zu versammeln. Oder sind Raumschiffe im Weltall einfacher zu verwalten (weil man ja quasi nur einen Vektor im Raum (6 Zahlen) braucht) als eine Welt am Boden?
Ich bin kein Experte auf dem Gebiet, aber obwohl ich Python mag, würde ich's nicht für so ein Projekt einsetzen. Meine Annahme wäre, dass man nebenläufige Prozesse in großer Zahl braucht. Da fällt mir natürlich sofort Erlang ein. Allerdings ist mir diese Programmiersprache zu archaisch, sodass ich vielleicht über Clojure nachdenken würde (Lisp-Syntax mag ich im Gegensatz zu Prolog-Syntax nämlich). Allerdings erfordert das (wie übrigens auch Twisted) eine reactive Programmierung und das Actor-Modell von Erlang ist IMHO einfacher zu benutzen. Wenn es ein Forschungsprojekt wäre und ich genügend Zeit hätte, würde ich vielleicht darüber nachdenken, die Semantik von Clojure oder Erlang und die Syntax von Python zu verschmelzen. Man müsste Python möglichst die Dictionaries austreiben, um es schnell zu bekommen. Oder man nimmt gleich JavaScript.
Es gibt übrigens auch von Sun so ein Virtuelle-Welten-Projekt. Darkstar und Deamland sind zwei Stichworte. Mehr weiß ich darüber auch nicht, musste aber bei Clojure als auf der JVM laufenden Sprache daran denken, dass man hier vielleicht Gigantenschultern hat, auf die man aufsteigen kann.
Stefan
Das Patent-Argument ist keines. Patente drohen immer und überall und sind sprachunabhängig. Wenn du das selbe in Python schreibst, was in der C#-Bibliothek steht und patentiert ist, dann hast du das Patent auch verletzt. Und wenn du dich entschließt, die ganze Patentscheiße zu ignorieren, dann kannst du das auch in C# machen. Tatsächlich ist dort die Situation noch etwas besser, denn Microsoft hat öffentlich erklärt, dass sie Lizenzen für ihre Patente gewähren und hoffentlich so viele Patente halten, dass niemand wagt, sie anzugreifen. Außer natürlich Patenttrolle, die nichts haben, was sie verlieren könnten. Aber diese werden sich an Microsoft wenden, denn da ist mehr zu holen, als bei einem Entwickler. So hat Sun vor einigen Jahren ja mal die Java-Community vor einem (IMHO lächerlichen) RPC-Patent für die gar nicht lächerliche Summe von $90 Mio freigekauft. Wetten, dass das Patent auf auch Python-Programme zutrifft, die RPC machen?
Wo ich gerade XML-RPC las: http://www.patentstorm.us/patents/7028312.html - bis 2019 also bitte kein XML-RPC oder Merrick, Allen oder Lapp könnten rechtliche Schritte einreichen. Patentdrohungen sind überall!
Wenn man den SecondLife-Client benutzen will (ist das eigentlich gestattet, diesen für andere Server zu benutzen, theoretisch könnten die das ja untersagt haben - oder er ist patentiert ;), muss der eigene Server ja das selbe Protokoll wie der andere offene Server da (und die SecondLife-Server selbst) sprechen. Im wesentlichen würde man also eine Implementierungssprache durch eine andere austauschen. Ich sehe da noch keinen großen Vorteil. Zudem, wenn du eine weniger großzügige Lizenz einsetzen willst, als die aktuelle "mach was du willst" BSD-Lizenz.
Ich meine mal aufgeschnappt zu haben, dass Lindenlabs selbst Mono einsetzt und extra um Continuations erweitert hat, damit Prozesse angehalten und von einem Server auf einen anderen transportiert werden können und dort weiterlaufen können. So könnte es bei OpenSim dank Mono doch durchaus Vorteile im Codeaustausch mit Lindenlabs geben, sollten die noch mehr Server-Code freigeben. Zudem verstehe ich das so, dass man doch in SecondLife überall so kleine Programme schreibt, die dann auf dem Server laufen. Diese in einer beliebigen .NET-Sprache zu verfassen statt auf diese selbst gemachte Scriptsprache von Lindenlabs (die der Autor im selben Vortrag, in dem sie die etwas über Mono erzählt haben als nicht wirklich gelungen bezeichnet hat) angewiesen zu sein und dafür (in Python) einen eigenen Interpreter schreiben zu müssen.
Der Artikel auf Wikipedia freut sich zwar, dass OpenSim der Defacto-Standard werden könnte, doch ich vermute doch, dass er die selbe Architektur wie SecondLife hat und diese war AFAIK entscheidend dafür verantwortlich, dass das ganze Ding nicht skaliert.
Gibt es eigentlich mehr Informationen darüber, wie Eve Online serverseitig funktioniert? Die haben es doch wohl als eine der ganz wenigen geschafft, mehr als ein paar hundert (im Falls von SecondLife) oder paar Tausend (im Falle der meisten MMORPGs wie WoW) User auf einem Server(-Grid) zu versammeln. Oder sind Raumschiffe im Weltall einfacher zu verwalten (weil man ja quasi nur einen Vektor im Raum (6 Zahlen) braucht) als eine Welt am Boden?
Ich bin kein Experte auf dem Gebiet, aber obwohl ich Python mag, würde ich's nicht für so ein Projekt einsetzen. Meine Annahme wäre, dass man nebenläufige Prozesse in großer Zahl braucht. Da fällt mir natürlich sofort Erlang ein. Allerdings ist mir diese Programmiersprache zu archaisch, sodass ich vielleicht über Clojure nachdenken würde (Lisp-Syntax mag ich im Gegensatz zu Prolog-Syntax nämlich). Allerdings erfordert das (wie übrigens auch Twisted) eine reactive Programmierung und das Actor-Modell von Erlang ist IMHO einfacher zu benutzen. Wenn es ein Forschungsprojekt wäre und ich genügend Zeit hätte, würde ich vielleicht darüber nachdenken, die Semantik von Clojure oder Erlang und die Syntax von Python zu verschmelzen. Man müsste Python möglichst die Dictionaries austreiben, um es schnell zu bekommen. Oder man nimmt gleich JavaScript.
Es gibt übrigens auch von Sun so ein Virtuelle-Welten-Projekt. Darkstar und Deamland sind zwei Stichworte. Mehr weiß ich darüber auch nicht, musste aber bei Clojure als auf der JVM laufenden Sprache daran denken, dass man hier vielleicht Gigantenschultern hat, auf die man aufsteigen kann.
Stefan