Lisp



  • Clojure mal angeschaut?



  • Das hatte ich erstmal ausgeblendet, weils wohl doch etwas weiter von klassischen Lisps entfernt ist (eckige und geschweifte Klammern? Blasphemie! 😡 😉 ). Ich hatte auch irgendwo einen Artikel über Clojure gelesen, wo ein paar Sachen drin standen, die mir gar nicht gefallen hatten - leider weiss ich nicht mehr, was mir nicht gefallen hatte und ich finde den Link auch nicht mehr...
    Aber womöglich sollte ich dem ganzen noch einen Versuch geben.



  • maximAL schrieb:

    Gibts eigentlich ein Lisp (Common Lisp oder Scheme), welches eine vernünftige GUI Bibliothek bietet?

    Was für einen Compiler hast du? Die meisten guten Lisp-Compiler haben ein foreign function interface, und weil viele der Compiler C als Zielsprache verwenden, ist die Benutzung oft ein Kinderspiel.

    ZB ein GTK-Programm mit Gambit-C ( www.iro.umontreal.ca/~gambit/ ):

    ;; gambit-gtk.scm
    
    (c-declare #<<END
    
    #include <gtk/gtk.h>
    
    void show_window(void)
    {
        GtkWidget *window;
    
        gtk_init (0, NULL);
    
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        gtk_widget_show  (window);
    
        gtk_main ();
    }
    
    END
    )
    
    (define show-window
      (c-lambda ()
                void
        "show_window"))
    
    (show-window)
    

    Das kann man übersetzen mit

    gsc -c gambit-gtk.scm
    gsc -link gambit-gtk.c
    gcc gambit-gtk.c gambit-gtk_.c -o gambit-gtk -O2 -lm -ldl -lutil \
    -L/usr/local/Gambit-C/lib/ -lgambc `pkg-config --libs gtk+-2.0` \
    -I/usr/local/Gambit-C/include/ `pkg-config --cflags gtk+-2.0`
    

    Das ist schonmal recht nett.
    🙂



  • Warum will man denn GUIs mit Lisp bauen? Verstehe ich nicht. Da programmiert man doch auch nur wie in C. Mit den Grundprinzipien von Lisp wie Funktionen hoeherer Ordnung kann man da nur selten nutzen.



  • knivil schrieb:

    Warum will man denn GUIs mit Lisp bauen? Verstehe ich nicht. Da programmiert man doch auch nur wie in C. Mit den Grundprinzipien von Lisp wie Funktionen hoeherer Ordnung kann man da nur selten nutzen.

    Obwohl GUI's eigentlich voll sind von Callbacks, da wäre eine funktionale Sprache doch nett. Und Spaghetticode, den GUI's so gerne haben, könnte man dann auch einfacher generieren lassen.
    🙂



  • knivil schrieb:

    Warum will man denn GUIs mit Lisp bauen? Verstehe ich nicht. Da programmiert man doch auch nur wie in C. Mit den Grundprinzipien von Lisp wie Funktionen hoeherer Ordnung kann man da nur selten nutzen.

    Nicht alle Programme mit nem GUI bestehen nur aus banalen Eingabemasken.
    Zudem interessiert mich Lisp primär für DSLs und das kann auch für komplexe GUIs sehr nützlich sein.



  • Nicht alle Programme mit nem GUI bestehen nur aus banalen Eingabemasken.

    Ich wuerde das "banal" weglassen. Aber fuer mich sind es nur Eingabe/Darstellungsmasken. Alles andere wuerde dem Model-View-Controller-Prinzip zuwiderlaufen.



  • knivil schrieb:

    Nicht alle Programme mit nem GUI bestehen nur aus banalen Eingabemasken.

    Ich wuerde das "banal" weglassen. Aber fuer mich sind es nur Eingabe/Darstellungsmasken. Alles andere wuerde dem Model-View-Controller-Prinzip zuwiderlaufen.

    Wenn du nicht gleich eine Client-Server Anwendung bauen willst, bleibt dir aber nicht viel übrig, als entweder alles in einer 08/15 Sprache zu schreiben oder alles in Lisp etc.
    Und da bei meinen Projekten die meisste Arbeitszeit nicht in die GUI an sich sondern in den ganzen Unterbau geflossen ist, wäre ein mächtigere Sprache schon eine feine Sache.



  • maximAL schrieb:

    Wenn du nicht gleich eine Client-Server Anwendung bauen willst, bleibt dir aber nicht viel übrig, als entweder alles in einer 08/15 Sprache zu schreiben oder alles in Lisp etc.

    Gar nicht wahr. Was hast du gegen die Scheme->C-Compiler?
    🙂



  • mngbd schrieb:

    maximAL schrieb:

    Wenn du nicht gleich eine Client-Server Anwendung bauen willst, bleibt dir aber nicht viel übrig, als entweder alles in einer 08/15 Sprache zu schreiben oder alles in Lisp etc.

    Gar nicht wahr. Was hast du gegen die Scheme->C-Compiler?
    🙂

    Was hast du gegen die Scheme->Java Compiler?
    Genau darum gehts hier doch.
    Und ich such(t)e ein Lösung, wo das ohne hässliches Binding-Gefrickel geht, sondern sich möglichst natürlich einbinden lässt.


Anmelden zum Antworten