Scriptsprache - was muss sie bieten?

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Chrisber.

    Scriptsprache - was muss sie bieten?

    Hallo,
    da ich in nächster Zeit vermutlich ein neues Projekt beginnen werde, möchte ich von euch dazu Ideen und Wünsche sammeln.
    Das ganze läuft auf eine interpretierte Scriptsprache hinaus.

    Doch bevor ich damit anfange, würde ich gerne wissen, was ihr euch von einer Scriptsprache wünscht. Dazu gibt es einige Bereiche:
    • Syntax
    • Typisierung
    • Laufzeitverhalten / Umgang mit Fehlern / Exceptions
    • Spezielle Ideologien
    • Unicode
    • Basistypen


    Ich habe mir schon einige Gedanken dazu gemacht:

    Syntax
    Die Syntax sollte ähnlich der von C++ entsprechen. Altlasten werden jedoch nicht übernommen. Die Sprache soll im Ganzen strukturiert und "modern" aussehen.

    Typisierung
    Hier steht meine Entscheidung eigentlich schon fest; es wird eine strikte Typisierung geben. Das heißt, eine Variable kann nur von einem ganz bestimmten Typ sein. Das hilft nicht nur dabei, das Script weniger Fehleranfällig zu machen, sondern auch effizienter auszuführen.

    Laufzeitverhalten / Umgang mit Fehlern / Exceptions
    Hier bin ich unschlüssig. Was meint ihr dazu? Mit Laufzeitverhalten ist gemeint, was passiert, wenn unerwartete Fehler auftreten.

    Spezielle Ideologien
    Da gibt es viele Möglichkeiten. OOP? Auf jeden Fall! Einfach oder Komplex? Simpel zu erlernen? Erweiterbar? Ordentliche API? Lasst eurer Fantasie freien lauf.

    Unicode
    Unicode ist heutzutage in aller Munde. Meint ihr, dass eine strikte Durchführung dieses Konzepts dazu verhilft, die Sprache auch international brauchbar zu machen?

    Basistypen
    Man kann im Script eigene Typen definieren (Klassen, Strukturen, ...). Doch welche sollten bereits ab Werk implementiert sein? Ich dachte an folgende:

    Quellcode

    1. bool
    2. int, unsigned int, signed int (intern ein long, somit fallen short und long weg)
    3. double (float wird nicht implementiert, wegen zu geringer Prezision und abnehmender CPU Unterstützung)
    4. char
    5. string




    Ich mache diesen Thread hier auf um Eindrücke zu gewinnen. Nicht jeder Vorschlag wird eingearbeitet!

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Laufzeitverhalten / Umgang mit Fehlern / Exceptions
    so wie in vb, dass man selber abfangen muss. so kann man fehler abfangen, wie man es braucht.

    Spezielle Ideologien
    nicht zu schwer.
    :P Mfg Aligator :P
    Hallo Chrisber,

    da hast du Großes vor.
    Schließ dich dochmal mit Kevin89 kurz - der hatte sowas auch mal gemacht.

    Ansonsten - Brotlos.
    Einziger Sinn dahinter scheint der Lerneffekt zu sein.

    Viel Spaß dabei

    Gruss

    mikeb69
    Hi.
    Ich weiß auf was ich mich da einlasse.
    Ich mache das nicht nur, weil ich Lust darauf habe, sondern weil ich eine schnelle Scriptsprache benötige, die meinen Anforderungen entspricht. Und warum sollte man diese nicht auch anderen Benutzern zur Verfügung stellen?

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Syntax
    Da würde ich auch die C++-Syntax verwenden. Die lässt sich sicherlich leichter parsen als geschriebene Wörter.

    Typisierung
    /Sign - damit holt man sicherlich noch etwas Performance raus

    Laufzeitverhalten / Umgang mit Fehlern / Exceptions
    Bei diesem Punkt.. naja. "On Error Resume Next"-Style wäre sicherlich der falsche Weg. Wie wäre es, wenn man eine art Logfile für den Parser hat, in dem die Exception dann mit Fehlercode usw. aufgeführt wird? Das Script wird dann natürlich terminiert. Eine art Try-Catch-Block wäre auch eine Überlegung. Dieser sollte dann aber nicht übermäßig benutzt werden. Wer z.B. einen Logikfehler im Script hat, sollte ebenfalls keinen Catch-Block benutzen. Nur, wenn unerwartete Fehler auftreten, wie z.B. ein 404. Der Block sollte dann auch nur bestimmte Exceptions fangen, um, wie oben schon genannt, Logikfehler zu vermeiden und nur sinnvolle abzufangen.

    Spezielle Ideologien
    Wenn du willst, dass die Leute deine Sprache benutzen, müsste sie einfach und erweiterbar sein. So wie bei Perl, da gibt's auch so gut wie alles.
    Die Kunst liegt darin, die Sprache einfach zu gestalten, ohne, dass die "Power" verloren geht.

    Unicode
    Ja, warum nicht? ;)

    Basistypen
    Dazu habe ich eine Frage. Was ist bei deinen oben genannten Variablen der Unterschied zwischen einem int und einem signed int?


    Insgesamt finde ich es eine gute Idee.
    Außerdem kann ich mir vorstellen, wofür du die Scriptsprache brauchst, denn du hast ja schon mal wegen Scriptsprachen hier angefragt.

    Eine Frage stelle ich mir noch:
    In welcher Sprache wird der Interpreter geschrieben? .net? Nein, ich glaub du wirst C++ benutzen. ;D
    Von meinem iPhone gesendet

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nikeee13“ ()

    Hi.
    Danke!

    Ein Unterschied zwischen signed int und int existiert nicht, da habe ich mich wohl etwas undeutlich ausgedrückt. Ich bin ebenfalls dafür, dass das Script abgebrochen wird. Es hätte keinen Sinn, mit einem unbearbeiteten Block weiterzumachen.

    Zum Interpreter: Ja, der wird vollständig in C++ implementiert, auch die API zur Erweiterung wird in C++ erstellt. Auf C habe ich keine Lust, dass macht das ganze unübersichtlicher und bringt eine ganze Reihe neuer Probleme mit sich.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Bei Abfragen nicht das doppelte Gleichheitszeichen nutzen müssen, sondern nur ein einziges.
    Naja das finde ich ehrlich gesagt nicht so schön... Das ist das, was mich an VB schon immer gestört hat, dass zwischen dem Zuweisungsoperator und Vergleichsoperator nicht unterschieden wird.
    Frage ?
    Warum nutzt du nicht Python : Openbook Python

    Edit: hupps :D
    richtiger Link

    /sign ... kann ich Beep nur zustimmen ... das gibs in Pascal, Alle C-basierenden, aber nicht in Basic ... und das bring manch ma Probleme (im Programm und im Code Lesen)
    /sign ... is ja nich so dass C# ein C-Syntax hat :D

    es ging mir darum, dass man nicht selbst coden muss sondern einfach Python importiert. Ich selbst finde Python auch etwas ungewöhnlich, ist aber auch nur ne Skriptsprache :D
    Python wäre die einzige Sprache die meinen Anforderungen entspricht, außer die Geschwindigkeit und die veraltete C-API. Das ist Müll. Und Python ist LAHM. Und es geht ja wie gesagt auch darum, so etwas einmal selber zu machen.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.

    Mangafreak1995 schrieb:

    /sign ... is ja nich so dass C# ein C-Syntax hat :D

    maximal zu 60%.
    Tsuyo, wohl noch ein bisschen restfett hm?

    @Chrisber: Willst du das alles alleine auf die Beine stellen?
    Außerdem, welche Prinzipien verfolgst du hier? Open Source/Closed Source?

    Außerdem wäre ich für OOP, aber zu stark sollte das nicht merkbar sein. Einige Operatoren wären ja strenggenommen nicht OOP...