Gibts eine Sprache deren Programme man "zur Laufzeit" ändern kann?
-
Java bietet mehrere Möglichkeiten, sowas zu realisieren, z.B. mit Hilfe von Eclipse Equinox (OSGi) oder indem man die Funktionen mit einer Scriptsprache bereit stellt (z.B. Ruby) und dieses dynamisch einbettet.
-
Bashar schrieb:
Wenn ich manche Ansätze hier lese wird mir schlecht. Greenspun's 10th rule of programming lässt grüßen.
Ist doch toll - gute Dinge weiß man oft erst zu würdigen, wenn man die schlechten Alternativen sieht. Abgesehen davon weißt du genauso gut wie jeder andere, dass es nicht die Lösung gibt und die Auswahl der Sprache und Technik von dutzenden Faktoren abhängen kann, die wir nicht kennen. Von daher besser zuviele und z.T. evtl. auch unsinnige Vorschläge als zu wenige.
-
kleine Historie zu dem Ganzen:
vor Jahren bin ich mal ein wenig in die Browsergame-Szene eingetaucht und vom User über den Supporter und Forenadmin zum Mitentwickler avanciert. Am Ende stand mit einer Handvoll Freunde die Idee im Raum, ein eigenes BG aufzubauen. Zu der Zeit bestand ein typisches Amateur-BG aus einer mySQL-Datenbank und einer Handvoll PhP-Scripte. Der typische Entwicklungslauf bestand aus PhP-Gefrickel, offline-nehmen des laufenden Systems, händischem Ändern der Datenbanken und einspielen der neuen Scripte und anschließendem onlinestellen des geänderten Systems, häufig ohne ausgiebige Tests (in der Anfangsphase bestand die Community aus einer Handvoll Leute die gleichzeitig Testteam waren und jede Neuerung so schnell wie möglich sehen wollten und entsprechend tolerant gegen Bugs waren).
Gerade die teils recht langen offline-Zeiten waren uns ein Dorn im Auge und wir haben an ein System für automatische Änderungen der Datenbanken etc. gedacht um das Ganze eben nicht so amateurhaft umzusetzen. Die Idee hat sich nach und nach verselbstständigt und wird seitdem immer ein wenig fortgesponnen, während das eigentliche Browsergame-Projekt aus Zeit- und anderen Gründen längst vom Tisch ist.Ein Browsergame (dafür wars ja vorgesehen) würde daher etwa wie folgt aufgebaut werden: eine PhP-GUI, dahinter (z.B. auf einem anderen Rechner) ein Server, der die Spielelogik in der gesuchten Sprache implementiert (und dadurch möglichst ohne Offlinezeiten zu ändern ist), und wiederum dahinter die Datenbank, die aber von dem Server automatisch verwaltet wird.
Da das ganze für Amateure schnell handhabbar sein soll haben wir an eine Sprache mit Java/C++-ähnlicher Syntax gedacht (irgendeine Programmiererfahrung muss man ja voraussetzen und Java/C++ sind ja doch recht weit verbreitet)
Zur Zeit bin ich allerdings der Einzige der sich noch ab und an mit dem Thema beschäftigt, was einen gewissen Ideen-Wildwuchs impliziert den ich in nächster Zeit Stück für Stück zu Papier bringen will um evtl. irgendwann erste kleine Tests in der Richtung zu starten.
-
Bashar schrieb:
.filmor schrieb:
Aber Erlang ist wohl die einzige Sprache, in der sowas vorgesehen ist
Common Lisp hatte ich schon erwähnt ...
Joah, Lisp steht aber eh über allem (und ist trotzdem vermutlich weniger für Server geeignet als Erlang, denn dafür ist diese gemacht).
pumuckl schrieb:
Hm, auf der anderen Seite ist Erlang leider nicht objektorientiert und auch nicht typsicher.
Wie meinen? Objektorientiert wird überbewertet, typsicher ist die Sprache meines Wissens schon (es gibt ja auch nicht so wahnsinnig viele Typen ;)).
pumuckl schrieb:
Vielleicht lässt sich ein System wie ichs mir vorstelle mit Erlang als Backend realisieren, mal schauen.
pumuckl schrieb:
Debugging wird natürlich ein schwieriges Thema, allerdings sollten viele Fehlerquellen durch die Konsistenzchecks ausgeschlossen werden - wobei die auch nicht gerade einfach umzusetzen sein werden.
Auch das ist in Erlang vorgesehen.
Eine mögliche Alternative wäre in der Tat Python, bei Servern würde ich mir da an deiner Stelle Stackless ansehen. Das programmiert sich ganz ähnlich wie Erlang (und ist auch objektorientiert, wenn das denn sein muss).
Wieso ist der Server nicht auch direkt für die GUI da? PHP würde ich meiden
-
Die GUI sollte vorerst von der restlichen Logik getrennt sein, denke ich. Evtl kann man dann bei der Installation je nach wunsch gucken, ob man eine GUI in PhP, Java, Flash oder was sonst so geht anbaut.
-
pumuckl schrieb:
Hm, auf der anderen Seite ist Erlang leider nicht objektorientiert und auch nicht typsicher.
Nicht dass ich persönlich Erlang für allzu objektorientiert halte, aber das kann durchaus Ansichtssache sein, ganz abgesehen davon dass objektorientiertheit nicht unbedingt dass Nonplusultra sein muss. Und Typsicherheit--insbesondere wenn C++ und Java deine Weltanschauung begründen, dann ist Typsicherheit durchaus overrated.
-
.filmor schrieb:
Joah, Lisp steht aber eh über allem (und ist trotzdem vermutlich weniger für Server geeignet als Erlang, denn dafür ist diese gemacht).
Habe jahrelang immer wieder von furchtbar vielen Leuten gehört, dass Lisp zwar ganz ganz toll, jedoch für echte Anwendungen nicht zu gebrauchen und auf Servern ohnehin pfui sei. Nur Gründe konnte mir irgendwie nie jemand nennen.
Habe darum jetzt seit etwa einem Jahr hier auf zwei Servern SBCL installiert und ein paar Lisp-Anwendungen laufen um herauszufinden, was dagegen spricht. Habe die Hoffnung zwar noch nicht aufgegeben, irgendwas zu finden, bis jetzt bin ich aber äußerst zufrieden.
-
Ich habe da keine Erfahrung mit, meine Lisp-Kenntnisse rühren quasi alleine von der Implementierung eines möglichst kurzen (100 Zeilen Pythoncode) Lisp-Interpreters her ;). Ich habe nur vermutet, dass Erlang sich in Serverumgebungen besser eignet, alleine schon wegen der wunderbaren und wahnsinnig schnellen Nebenläufigkeit.
-
Wenn ich eure Vorschläge hier schon höre kommts mir hoch, das wird ein einziges gefrickel!
Eure Idee ist ja schön und gut, aber was hier vorgeschlagen wird, da kann ich nur die Hände über dem Kopf zusammenschlagen.
Für C++ schau dir das mal an.
-
.filmor schrieb:
Ich habe nur vermutet, dass Erlang sich in Serverumgebungen besser eignet, alleine schon wegen der wunderbaren und wahnsinnig schnellen Nebenläufigkeit.
Siehe auch hier: http://www.foldr.org/~michaelw/log/programming/lisp/erlang-common-lisp
-
Habt ihr sie noch alle?? schrieb:
Wenn ich eure Vorschläge hier schon höre kommts mir hoch, das wird ein einziges gefrickel!
Eure Idee ist ja schön und gut, aber was hier vorgeschlagen wird, da kann ich nur die Hände über dem Kopf zusammenschlagen.
Für C++ schau dir das mal an.
Sieht gut aus, werd ich mir mal anschauen, danke!