Schlagwort-Archive: Programmierung

Genugtuung

Für einige Programmierer. Es gibt eine völlig unterschätzte Sprache, Lisp in diversen Varianten. Ein Beispiel was ein Lisp kann, aber nicht viele andere Sprachen:

(defmacro define-advice (symbol args &rest body)
  "Define an advice and add it to function named SYMBOL.
See `advice-add' and `add-function' for explanation on the
arguments.  Note if NAME is nil the advice is anonymous;
otherwise it is named `SYMBOL@NAME'.

\(fn SYMBOL (WHERE LAMBDA-LIST &optional NAME DEPTH) &rest BODY)"
  (declare (indent 2) (doc-string 3) (debug (sexp sexp body)))
  (or (listp args) (signal 'wrong-type-argument (list 'listp args)))
  (or (<= 2 (length args) 4)
      (signal 'wrong-number-of-arguments (list 2 4 (length args))))
  (let* ((where         (nth 0 args))
         (lambda-list   (nth 1 args))
         (name          (nth 2 args))
         (depth         (nth 3 args))
         (props         (and depth `((depth . ,depth))))
         (advice (cond ((null name) `(lambda ,lambda-list ,@body))
                       ((or (stringp name) (symbolp name))
                        (intern (format "%s@%s" symbol name)))
                       (t (error "Unrecognized name spec `%S'" name)))))
    `(prog1 ,@(and (symbolp advice) `((defun ,advice ,lambda-list ,@body)))
       (advice-add ',symbol ,where #',advice ,@(and props `(',props))))))

Man muß dazu schon, was mir AOP anfangen können, um da mitzuziehen. Und das ist Standard in so gut wie jedem Lisp. Im Beispiel ist es Emacs-Lisp eine Programmiersprache so alt wie der Emacs selber, also seit 1984 (und das sind nun 2023 – 1984 = 39 Jahre). Und Lisp ist noch älter, es war immer schon eine programmierbare Programmiersprache. Neue spezielle Schleifen – check. Einseitige Fallunterscheidungen wie when und unless – check.

Viele lachen über Lisp, aber nur noch wenige wissen, was Lisp Machines waren und was die boten.

Lispprogrammierer kann man mit Liberalen in der Politik vergleichen 😉

Aus meinem beruflichen Umfeld

https://www.quora.com/What-did-Alan-Kay-mean-by-Lisp-is-the-greatest-single-programming-language-ever-designed

Habe schon einige mit Lisp gemacht. Mußte aber mehrfach fesstellen. Libraries sind keine der Stärken von Lisp. Ja es gibt schon jede Menge aber ein wirklich nettes Paket für Web-programming fand ich nicht. Auch die Datenbankanbindung ist in anderen Sprachen besser “geregelt” Mag sein, daß man mir Franz Lisp weiter kommt auch Lispworks CLSQL Krams ist “passabel”. Die Qualität der diversen Pakete hat mich selten überzeugt. Nur es ist eben ein Lisp und Alan Kay hat schon “gute” Argumente.