4 ms·
I develop everything (typesetting software, compilers, web server, email client, a desktop environment just for me, a sound synthesizer, my invoice generator, I
by mrottenkolber 12y ago
I develop everything (typesetting software, compilers, web server, email client, a desktop environment just for me, a sound synthesizer, my invoice generator, IRC bots, full blown web apps, a wiki engine and tons of general purpose libraries) using Common Lisp. My love for the language comes especially from the fact that its so limitless by design. I have DISASSEMBLE and I have DEFUN. I have ETYPECASE and I have LOOP. Lacking a language feature? Add it with ease and incredible performance.
- pkaye 12y agoAre any of these software tools available as open source so I can see the advantage of using Lisp?
- malisper 12y agoNot the parent, but I recently wanted ssyntax[0] in Common Lisp, so I decided to write an implementation for it[1]. In doing so, I created a DSL for defining ssyntax (made up of defssyntax-test, defssyntax-macro, and defssyntax-sym-mac). Just note that my implementation uses a library of utilities I wrote[2] and is not pure Common Lisp. [0] http://arclanguage.github.io/ref/evaluation.html http://arclanguage.github.io/ref/evaluation.html [1] https://github.com/malisper/Clamp/blob/master/experimental/ssyntax.lisp https://github.com/malisper/Clamp/blob/master/experimental/s... [2] https://github.com/malisper/Clamp https://github.com/malisper/Clamp
- mrottenkolber 12y agoSome: http://mr.gy/ http://mr.gy/
- kourt 12y agoPlease tell us about your stack. Which implementation of Common Lisp do you use?
- mrottenkolber 12y agoSlackware, Clozure Common Lisp, Emacs, Slime. Actually its not very fancy. I basically live in a live CL image, have some emacs key bindings which invoke a simple CL job system (EVAL in a thread). I can shift-right-click things to get a menu of actions for that type of file and plain-right-click to run the VIEW action for that type of file (as a job in CL). http://i.imgur.com/2b47mII.png http://i.imgur.com/2b47mII.png I have a QUERY function which is hooked up to Recoll (full text search). I have the HTML ANSI CL draft under /usr/doc/ansi-common-lisp/ and HTML versions of all manpages under /usr/doc/man so finding documentation is quite nice. E.g. I (query "defun") or (query "gethostname") and get a sane list of results. I have a markdown like language in which I write all my documentation, its media independent and has backends for plaintext, html and LaTeX output. I want to release it soon but well... There is the SH DSL for executing UNIX commands, the PIPE macro for doing things like (pipe (sh hostname) (read)) (just a silly example). My web server is open source (telnet to mr.gy on port 80). Its mostly "cute", not something you'd run on a large site.
- eudox 12y agoI'd love a write up of your setup, and I think other people here would as well. Did you build this all from what you thought you'd rather use, or have you tried Lisp machines like Genera?
- mrottenkolber 12y agoNever used Genera or the likes (am a youngster). I have seen screencasts though. I have been mostly influenced by Acme of Plan 9 and the Oberon UI (also only through secondary sources). I am also stuck on UNIX so I had to deal with that in some way, also I know my way around UNIX so I felt it was easier to integrate UNIX with CL instead of learning a new OS. My time with UNIX also made me fond of text files so a lot of my "stack" is optimized for plain text interfaces (e.g. the email client started because I didn't like the directory structure of maildir). Also I wanted my mail in a git repository. > Did you build this all from what you thought you'd rather use Kind of, its a compromise between what I wanted (a CL OS, optimized for simple text interfaces and CL hacking) and what was in reach. At some point I decided to go the path of least resistance, move my CL stack closer to the UNIX/Slackware stack and reuse and integrate as much open source software as possible. The result is a very thin layer of CL and Elisp code and some CL apps which combine to a UI I feel comfortable with.