welche Sprache embedden? Ruby, Falcon, Lisp oder doch Python?
-
guten Abend,
es fällt mir schwer zu entscheiden, welche Sprache ich als Scriptsprache für meine Applikation verwenden will. Die Scripts sollen der Erweiterbarkeit dienen, sprich andere sollen sie schreiben, des weiteren handelt es sich um ein Spiel, also sollte sie eigtl. schnell sein. Eine gute Sprache hätte ich dennoch gerne, am liebsten würde ich ein Lisp verwenden, aber dann gehen mir die unerfahreneren User wahrscheinlich an die Gurgel.. Ruby scheint eine recht nette Sprache zu sein, auch wenn mir einiges fehlt. Wirklich schnell ist sie allerdings nicht und es gibt Probleme mit Multithreading beim einbetten. Falcon wiederum scheint mir eine noch schönere Sprache, aber deutlich unbekannter, ob das so gut erprobt ist stellt sich mir da die Frage.. Python gefällt mir eigtl. überhaupt nicht, wird aber gerne eingebettet. Nunja..
eure Meinung?
-
Sagst Du noch kurz, warum Du LUA ausgeschlossen hast?
-
Aufgrund der Resonanz innerhalb der Zielgruppe(Umfrage).. Dazu muss ich sagen, dass die Scripte unter Umständen ganze Applikationen ausmachen und eine weniger leichtgewichtige Sprache ggf. auch angenehmer wäre.
-
Ich würde Javascript nehmen. Die Sprache ist bekannt und sehr flexibel (wird nicht umsonst als "Lisp ohne die Klammern" bezeichnet) und mit Flusspferd lässt sich das ganze relativ bequem in einer eigenen Anwendung nutzen (und dank Tracemonkey (JIT) ist das ganze auch ziemlich schnell).
-
rüdiger schrieb:
(und dank Tracemonkey (JIT) ist das ganze auch ziemlich schnell).
Javascript wäre sicherlich nicht die schlechteste Wahl, aber ich würder eher zu V8 ( http://code.google.com/intl/de-DE/apis/v8/intro.html ) raten. Ist laut diversen benschmarks mit google chrome schneller (was auch immer das heißen mag). Außerdem ist es BSD Lizenz.
-
auf Javascript bin ich überhaupt noch nicht gekommen und ich muss auch gestehen mich noch nicht so damit beschäftigt zu haben, spätestens seitdem google für das GWT Java->Javascript kompiliert wäre ich auch nicht auf die Idee gekommen in Javascript eine Sprache zu suchen, die mit den genannten konkurrieren kann, aber interessant ist es sicherlich.
Ein Beispiel für die Flexibilität wäre allerdings hilfreich, bzw. was macht Javascript flexibel? Auch frage ich mich ob es sich für die nicht-programmierer genauso schön wirkt, wie Ruby? Im Sinne von syntaktischen Kleinigkeiten, die das Leben leichter machen, meine ich.
-
okay, ich war ein wenig ungeduldig, meine Fragen zu Javascript werd ich auch durch googlen klären können. Vielen Dank soweit, sieht interessant aus, weitere Meinungen?
-
someone_else schrieb:
weitere Meinungen?
Ich denke, Lisp dürfte zu viele Leute abschrecken oder dafür sorgen, daß nichtabgeschreckte Nubes mangels ausreichender Einarbeitung minderwertige Scripts bauen. Falcon, Ruby oder Python? Ruby scheint mir ein wenig "Ideodogie behindert Funktion".
Aber es hängt sehr stark von der Schnittstelle ab, die Du den Scriptern zur Verfügung stellen willst. Tust Du die total objektorientiert machen oder total SQL-datanbankmäßig oder total C-orientiert oder was. Naja, das hängt auch von der eingebetteten Sprache ab, klar. Und von der Modellierung in der Hauptanwendung. Wahrscheinlich ist es sinnvoll, wenn dazwischen kein großer Unterschied ist.
Javascript kenne ich nur in Sachen Webseitengestaltung. Da kann ich nur fremde Klassen benutzen und keine eigenen bauen. Ist das noch so? Falls ja, ist das natürlich ein starker Grund dagegen.
-
http://de.wikipedia.org/wiki/JavaScript schrieb:
Der als ECMAScript (ECMA 262) standardisierte Sprachkern von JavaScript beschreibt eine moderne, schlanke, dynamisch typisierte, objektorientierte, aber klassenlose Skriptsprache, die dennoch allen objektorientierten Programmierparadigmen unter anderem auch – aber eben nicht ausschließlich – auf der Basis von Prototypen gerecht wird. In JavaScript lässt sich objektorientiert und sowohl prozedural als auch rein funktional programmieren.
-
tcl/tk war eigentlich fuer sowas angedacht (also groessere tools zu scripten), ich habe es noch nie benutzt, jedoch kenn ich leute die davon begeistert sind.
visual basic waere auch ne moeglichkeit, das ist fuers toolschreiben gedacht und die bindings ueber die VB-runtime (bzw .NET) sind relativ einfach zu basteln. Mit version 3.0 soll es fast transparent an c++ koppeln.
-
Wenn nur die 3 zur Auswahl stehen wuerd ich zweifellos Python nehmen.
LISP scheidet IMO schonmal aus, weil du dir damit alle unerfahrenen Programmierer verscheuchst. Falcon wuerd ich nicht nehmen, weil es eine zu unbekannte Sprache ist.
Bleiben noch Python und Ruby. Beide sind leicht zu lernen und auch sonst relativ Einsteigerfreundlich. Und zumindest Python ist relativ einfach zu embedden. Wie's mit Ruby auschieht weiss ich da nicht, aber ich vermut mal es hat seinen Grund warum mehrere (auch grosse) Applikationen Python embedden, waehrend mir grad keine einfaellt, die Ruby anbietet. Fuer den Einsatz in Spielen muesste Python ebenfalls schnell genug sein, schliesslich gibts ja auch einige kommerzielle Spiele, die Python zum Scripting einsetzen.
Bleibt nur zu klaeren warum du Python selbst nicht so gern magst
-
Blue-Tiger schrieb:
Wenn nur die 3 zur Auswahl stehen wuerd ich zweifellos Python nehmen.
LISP scheidet IMO schonmal aus, weil du dir damit alle unerfahrenen Programmierer verscheuchst. Falcon wuerd ich nicht nehmen, weil es eine zu unbekannte Sprache ist.
Bleiben noch Python und Ruby. Beide sind leicht zu lernen und auch sonst relativ Einsteigerfreundlich. Und zumindest Python ist relativ einfach zu embedden. Wie's mit Ruby auschieht weiss ich da nicht, aber ich vermut mal es hat seinen Grund warum mehrere (auch grosse) Applikationen Python embedden, waehrend mir grad keine einfaellt, die Ruby anbietet. Fuer den Einsatz in Spielen muesste Python ebenfalls schnell genug sein, schliesslich gibts ja auch einige kommerzielle Spiele, die Python zum Scripting einsetzen.
Bleibt nur zu klaeren warum du Python selbst nicht so gern magstHi, welche spiele wären denn das? Ich schwanke selbst etwas wie der Thread ersteller. Bin auch bissl drüber mich in dieses Thema einzuarbeiten. Fand eig. LUA ganz gut. Wieso das jetzt so schlecht gemacht wird verstehe ich nicht ganz. Bin für jede Info dankbar
-
PRIEST schrieb:
Hi, welche spiele wären denn das? Ich schwanke selbst etwas wie der Thread ersteller. Bin auch bissl drüber mich in dieses Thema einzuarbeiten. Fand eig. LUA ganz gut. Wieso das jetzt so schlecht gemacht wird verstehe ich nicht ganz. Bin für jede Info dankbar
Spontan einfallen tun mir:
Vampire: The Masquerade – Bloodlines, Battlefield 2, Battlefield 2142, Freedom:Force, Severance: Blade of Darknesshttp://wiki.python.org/moin/PythonGames listet unter "Specific Games" auch noch ein paar, die meisten davon kenn ich aber nicht.
-
naja, so ne Liste gibt es auch für Lua: World of Warcraft, FarCry, Spellforce, Homeworld 2 uvm. [1]
Von Ruby würde ich abraten, da der Fragesteller was für Spiele braucht! Und da ist Geschwindigkeit wichtig, und Ruby ist das Gegenteil von Geschwindigkeit.Lua ist mit die schnellste Scriptsprache, und sehr einfach für Nichtprogrammierer zu erlernen, da es keine kryptische Syntax mit irgendwelchen Semikolons und geschweiften Klammern gibt. Lua kann jeder ruck zuck lernen.
JavaScript und Python würde ich nur nehmen, wenn die Anwender eine Affinität zur Programmierung haben, also auch OOP und Syntax erlernen wollen.
-
Python ist das Gegenteil von effizient und leightweight als Embedded-Scripting Sprache, lass die Finger davon, bläht alles auf.
Außerdem verstößt das massiv gegen den Gedanken hinter der Sprache.Ich finde Angelscript ganz gut, an C++ angelehnt, aber eben sicher, dh. ohne Pointer etc
Äußerst einfach C++-Klassen zu der Scripting-Engine zu exportieren...
-
Ich habe schon im Internet danach gesucht, aber kaum was darüber gefunden, kann mir jemand sagen was die Unterschiede zwischen Javascript und Lua sind? wo welche Sprache besser ist? die beiden scheinen mir recht ähnlich
-
Was meiner Meinung nach noch vergessen wurde, aber ein sehr schöner Kandidat für die Einbettung in C++-Programmen ist, ist AngelScript!
Die haben auch namhafte User, wie Warhammer: Mark of Chaos.[1]
-
Icematix schrieb:
Python ist das Gegenteil von effizient und leightweight als Embedded-Scripting Sprache, lass die Finger davon, bläht alles auf.
Außerdem verstößt das massiv gegen den Gedanken hinter der Sprache.Ist denn Python wirklich (noch) eine Scriptsprache? Ich würde doch eher sagen, das Python eine vollwertige, dynamische Programmiersprache ist. Python gehört in gleiche Reihe wie Java und C#... nur halt dynamisch.
-
someone_else schrieb:
Ich habe schon im Internet danach gesucht, aber kaum was darüber gefunden, kann mir jemand sagen was die Unterschiede zwischen Javascript und Lua sind? wo welche Sprache besser ist? die beiden scheinen mir recht ähnlich
Was heißt besser? Lua und JavaScript haben wenig Ähnlichkeiten, bis auf das sie vielleicht dynamische Typen haben.
-
@someone_else
Ist halt immer schwer Sprachen zu vergleichen, da es oft auf Dinge hinausläuft die Geschmackssache sind und viele Leute haben zu Sprachen eine "starke" Meinung und sind dich nicht zu schüchtern, diese laut bekannt zu geben :).Schau dir am besten mal ein paar Beispiele in den genannten Sprachen an und entscheide dann selbst.
rapso schrieb:
tcl/tk war eigentlich fuer sowas angedacht (also groessere tools zu scripten), ich habe es noch nie benutzt, jedoch kenn ich leute die davon begeistert sind.
tcl/tk ist sehr eigen, um es mal so zu formulieren. Außerdem ist es nicht mehr sehr verbreitet. In den 90ern war es wohl recht populär.
rapso schrieb:
visual basic waere auch ne moeglichkeit, das ist fuers toolschreiben gedacht und die bindings ueber die VB-runtime (bzw .NET) sind relativ einfach zu basteln. Mit version 3.0 soll es fast transparent an c++ koppeln.
Basic dürfte viele Leute verschrecken.