Schlagwort-Archive: emacs

Älterer Mann, neue Tricks

Sieht so aus, als ob ein alter weißer Mann auch noch neue Tricks lernen kann.

Und das “locker” nach mehr als 20 Jahren Emacs – Nutzung Man gewöhnt sich an E(sp)M(eta)A(lt)C(ontrol)S(hift), aber man liest auch immer wieder, daß bei typischen Editor Aufgaben die vi Nutzer schneller ans Ziel kommen, und man ist versucht, es damit aufzunehmen und voilà Evil -mode was born . Genau das liebe ich so an der Programmierung, es ist ernst, aber man macht sich lustig, entweder über Andere (wie b… kann man sein es so zu schreiben/implementieren) oder sich selber wie b … kann man sein so einen Bock einzubauen.

Ich denke nach so langer Zeit gebe ich DoomEmacs eine Chance, es ist etwas dabei, was ich gleich super fand, und zwar die doc. Wie super man das aufbauen kann, man erkennt es erst, wenn man es sieht, man ist wirklich betriebsblind, das hätte man sicher schon vor langer, langer, sehr langer Zeit selber implementieren können. Aber dafür hätte man …

Ja, ja hätte, hätte …

Was mir daran so gut gefällt?

Einfach

erst mal wird klargestellt um was es geht, aber dann gleich wo man es findet und dorthin wird verlink! Wow!

Dann kommt die signature (also wie man das Ding benutzt)

dann die Dokumentation und die ist bei allen Emacs-Lisp Funktionen mit dabei:

Dann gibt es ein Verlinken in das Handbuch und es wird besser

Es gibt einen Link find All references (also überall im ganzen Editor wo es gesucht wird kann man es sehen … irre)

Und alles mit Links draufklicken oder draufgehen und RET -> man ist da. Das ist so fantastisch. Integriert, das kann man wohl sagen …

Wird sich das umlernen bezahlt machen mal sehen im Zweifel bleibt einem immer noch C-z 😉 Wer auch immer dort draußen den Emacs benutzt, ich denke es lohnt sich einen genaueren Blick auf DoomEmacs zu werfen …

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 😉

Für meine computeraffinen Leser

die dazu noch die wichtigste IT-Frage (vi oder emacs) behandelt sehen wollen: https://cestlaz.github.io/stories/emacs/

Emacs, eine Welt für sich. Wer Lisp mag kommt um den emacs kaum herum. Was mich immer nur wundert. Common Lisp und deren Vorgänger sind schon älter. Warum nur hat Stallman nicht das Lisp benutze was er von den Lisp Maschinen kannte. Warum nur hat er nicht ein Common-  Lisp genommen, gerade die toll Implementierung von Objekten, generischen Methoden etc. hätte für einen Editor top gepat. Ja es gibt Bestrebungen für einen auf Common Lisp basierenden Emacs: Zwar wohl gestorben aber immerhin: https://common-lisp.net/project/climacs/ McClim ist auch so eine Sache es soll ein offenes CLIM werden. Aber hat wohl nie wirklich geklappt. Vielleicht schaut man sich das besser Hemlock an:- https://www.cons.org/cmucl/download.html

Wer heute Lisp programmiert benutzt sicherlich ASDF zusammen mit-  wahrscheinlich SBCL Lisp. Habe damit schon einiges gemacht, und es war angedach eine Software auch auf Common Lisp umzustellen. Nur fand’ ich alle im Webland ziemlich schlecht und fehlerhaft.

Am Besten war noch was von Franz kam die noch ein kommerzielles Lisp anbieten (sonst AFAIKT nur noch LispWorks)

Es ist schon schade, gerade der Emacs wäre ein “show-case” für Leute gewesen die meinen Lisp ist eh nur was für Esoteriker. Ausnahme xkcd: https://xkcd.com/224/ 😉 oder https://xkcd.com/297/
Die Lisp-maschinen waren Ihrer Zeit voraus heute mit den Computern, sähe es mit Lisps wahrscheinlich besser aus. Es kommt halt doch darauf an, wie viele sich so für Sachen erwärmen können. C hat da OS- Rennen klar für sich enschieden. Wer denkt heute noch an Oberon? Wer an Common Lisp Maschinen, wer an Xerox Smalltallk Workstation. Die damaligen Macher haben es versäumt es günstig zu machen. Man war und man muß wohl schreiben ist auch heute noch “Eliite”. Wer sich mit Programmiersprachen befaßt muß erkennen, wie überlegen Common Lisp, Smalltalk etc waren. Heute kommen aber Rust und go in die Position, als C – Ersatz/Ergänzung. Man muß mal sehen wie es laufen wird.

Genügend scheinen sich aber für einen Emacs mit Rust als PS erwärmen zu können: https://github.com/Wilfred/remacs

Tja und dann habe ich noch ein massive Kritik an den Smalltalk Leuten. Leute warum nur habt Ihr Euch nicht einen Editor wie Emacs aber mit Smallalk als Sprache erwärmen können. Eure Editoren sind heute immer noch nicht sonderlich gut. Ja ich weiß, Objekte überall, aber Text ist noch überaller….