welche Sprache embedden? Ruby, Falcon, Lisp oder doch Python?



  • Artchi schrieb:

    naja, so ne Liste gibt es auch für Lua

    Lua hatte der Threadersteller ja ausgeschlossen. Sonst waer das natuerlich klar auch eine populaere Option 🙂



  • rein aus Interesse würde ich mittlerweile gerne Javascript mit Lua vergleichen und da gehören Infos zu Lua dazu. Ein Vergleich von Lua zu Python, Ruby oder sonst welchen Sprachen bringt mir allerdings nicht allzuviel.



  • JavaScript kann ich dir nur rudimentär was sagen, da ich es selber nicht benutze. Lua benutze ich dagegen schon.

    Also, JavaScript ist Objekt Orientiert, was Lua (nicht LUA!) nicht ist. Lua ist rein procedural, und nicht funktional (wie von dir gesagt). Du kannst in Lua durch die Brust durchs Auge zwar irgendwie OOP betreiben, aber das kann man auch mit Assembler, wenn man devot veranlagt ist.

    Was die Basis-Bibliothek angeht, kann ich sagen, das Lua da sehr minimalistisch ist. Es ist halt eine Scriptsprache. Ich vermute mal das JavaScript da ganz andere Geschütze auffahren kann.

    Lua hat aber den Vorteil ggü. JavaScript, das es so kompakt ist, das es Lua für so ziemlich jede exotische Plattform gibt, also auch für RISC OS, Amiga u.ä. Ist halt nicht viel zu potieren und man kann diese kleine Lib wirklich überall einbetten. 😃 Vorallen da Lua "nur" procedural ist, lässt es eine sehr einfache Integration zu.

    Wie es da mit JavaScript aussieht, kann ich nicht beurteilen. Ich weiß nur, das JavaScript auf exotischen Plattformen wie RISC OS, Amiga u.ä. durch Abwesenheit glänzt. Wenn dir das egal ist, vergiss diesen Absatz.

    Was noch? Ja, also Lua ist von der Syntax was ganz anderes. Lua ist eher Richtung Pascal-Syntax, JavaScript ist eher C-Syntax. Was ist denn deine Zielgruppe, die die Erweiterungen schreiben sollen?

    Ich finde, man kann hier nicht sagen, das sich die beiden Sprachen Konkurrenz machen! JavaScript ist doch ein ganz anderes Lager bestimmt. Damit kann man sicherlich komplexere Themen behandeln, schon alleine durch die OOP.

    Lua ist dagegen eine Scriptsprache, die mehr zum Konfigurieren und Workflow erstellen gedacht ist. Also, man kann damit z.B. Bildschirmmasken definieren. In Spielen kann man sagen "Wenn Spieler 1 an Tonne 5 lang läuft, explodiert die Tonne 5.". Aber ich würde mit Lua keine komplexen Programmerweiterungen entwickeln. Dafür ist Lua zu simple, was aber nicht abwertend ist.

    Die beiden Sprachen sind meiner Meinung nach für unterschiedliche Anwender konzipiert. Ich kann an Lua auch einen Nicht-Programmierer ransetzen. An JavaScript kann ein Programmierer dagegen Spaß haben.

    Was willst du denn erreichen? Ich finde, du hast hier zu wenig Infos gegeben.



  • Lua ist rein procedural, und nicht funktional (wie von dir gesagt). Du kannst in Lua durch die Brust durchs Auge zwar irgendwie OOP betreiben, aber das kann man auch mit Assembler, wenn man devot veranlagt ist.

    Mit Lua ist es sehr einfach, objektorientiert zu programmieren. Der eingebaute Table- und Metatable-Mechanismus (wird auch fuer alles andere benutzt) ist sehr flexibel. Der Vergleich mit Assembler hinkt sehr.

    ... Bildschirmmasken definieren. Aber ich würde mit Lua keine komplexen Programmerweiterungen entwickeln.

    Manche Userinterfaces in WoW gehen weit ueber einfache Bildschirmmasken hinaus. Das sind komplexe Programmerweiterungen.



  • knivil schrieb:

    ... Bildschirmmasken definieren. Aber ich würde mit Lua keine komplexen Programmerweiterungen entwickeln.

    Manche Userinterfaces in WoW gehen weit ueber einfache Bildschirmmasken hinaus. Das sind komplexe Programmerweiterungen.

    Ich habe die Erfahrung gemacht, dass Leute die für Spiele moden sehr hart in hinnehmen von schmerzen sind. zB wurden für Warcraft 3 1000e mods erstellst, obwohl die scriptsprache saumässig ist. Keine structs, kein oop, assozitive arrays nur durch bugusing, kein dynamisches aufrufen vom Funktionen mit parametern, langsam, keine forward deklarationen, nur globale arrays mit immer genau 8192 Plätzen, keine namespaces. Vor jedem funktionsaufruf muss man call und vor jeder zuweisung muss man set schreiben usw.

    Dort wurden mods gebaut die das Spiel komplett umdrehen. Shooter wie Elemination Tournament oder komplett neue Genres wie Dota. Das sind mehrere 10000 Zeilen code.



  • und nicht funktional (wie von dir gesagt)

    Hatte ich vl falsch ausgedrückt, aber wenn ich mich richtig entsinne gibt es Funktionen höherer Ordnung und sogar TCO, oder?

    Ich dachte eigtl., dass Lua vollständig Prototypen OOP unterstützen würde, wo liegen denn die Defizite der Tables im Vergleich zu Javascripts Prototypen OOP?

    Ich vermute mal das JavaScript da ganz andere Geschütze auffahren kann.

    nicht, dass ich wüsste

    Was noch? Ja, also Lua ist von der Syntax was ganz anderes. Lua ist eher Richtung Pascal-Syntax, JavaScript ist eher C-Syntax. Was ist denn deine Zielgruppe, die die Erweiterungen schreiben sollen?

    Programmieranfänger, aber keine Designer o.ä.. Es ist schon notwendig sich ein wenig damit zu beschäftigen, aber es wird vermutlich viele geben, die vorher noch nicht programmiert haben. Ich denke, das ist da relativ egal, auch wenn Pascalsyntax vl einige schöner finden werden, ist es vermutlich wenig relevant.



  • rüdiger schrieb:

    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.

    Wenn du schon ein VB.NET-Binding hast, kannst du es natürlich auch via C# ansteuern.



  • Mit welcher Programmiersprache ist denn deine Applikation entwickelt?

    C++ und Lua passen mittels luabind http://sourceforge.net/projects/luabind/ ganz gut zusammen, insbsondere wenn du auch objektorientierten Datenaustausch haben willst.
    Bei reiner C basierten Lua-Schnittstelle ist der Aufwand auf C (bzw. C++)-Seite schon recht hoch, insbesondere wenn du eine große Schnittstelle anbieten willst.

    Die eigentliche Programmierung in Lua ist sicherlich dann (auch für Anfänger) recht einfach - auch wenn ich persönlich die Syntax nicht mag.

    Sollst du jedoch schon ein .NET-Binding haben, dann kann ich auch (wie audacia) nur C# empfehlen.



  • Die Applikation wird in C++ entwickelt.



  • Lizenztechnisch passt mir googles v8 am besten in den Kram, allerdings finde ich kaum eine Dokumentation, die den Javascriptteil betrifft? Teile von Ecmascript 5 scheinen enthalten, andere nicht. Kann mir da jemand weiterhelfen?


Anmelden zum Antworten