HNHacker News
TopNewBestAskShowJobs

vindarel

1,508 karma · joined July 7, 2017

Pythonista turned lisper.

https://lisp-journey.gitlab.io/pythonvslisp/

I run CL apps in production.

CL, batteries included, fast scripting: http://ciel-lang.org/

I create a Common Lisp course in videos. It's a progressive and structured course, where everything that was hard for me (especially hard to find) is made easy for you. Check it out! https://www.udemy.com/course/common-lisp-programming/?referralCode=2F3D698BBC4326F94358

---

@ vindarel mailz.org

submissionscomments
vindarel··on Blacksmithing and Lisp
> first-class IDE

Atom/Pulsar, or Portacle (portable Emacs with SBCL + Quicklisp), or plain-common-lisp (2 clicks install for Windows), ALIVE for VSCode is getting there, also the newer Intellij plugin. And vim. LispWorks. Sublime, Lem, Jupyter notebooks, and more.

https://lispcookbook.github.io/cl-cookbook/editor-support.ht...

vindarel··on Blacksmithing and Lisp
But where is it now? If not mainstream, where? Is it not used at all, or only by hobbyists, or also by successful companies, today? If it isn't mainstream, is it important, if not, what's the cursor?

elements to not judge in the void https://github.com/azzamsa/awesome-lisp-companies/ (some are hiring) (that's just the companies we know, nothing official)

https://github.com/CodyReichert/awesome-cl/

vindarel··on Web Apps in Common Lisp
Super-interactive workflow. You never wait for the webserver to restart -you are "inside" the server/the running image.

Super-fast compile-time errors and warnings (function by function, a shortcut away).

Compiles to machine code.

Djula is nearly a drop-in replacement for Django templates. Or choose JSX syntax or a lispy template engine.

Various DB libraries, Mito has built-in migrations.

Binaries with everything included (templates and all static assets, dozens of dependencies, the compiler and debugger) is ±35MB (compressed). Great to ship and deploy.

An in-coming DB admin dashboard (https://lisp-journey.gitlab.io/blog/towards-a-database-admin...)

Good times.

vindarel··on Briar: Peer to Peer Encrypted Messaging
Anyone tried https://getsession.org/ seriously?

- desktop and mobile clients, cross-platform (with an AppImage that installs on old systems)

- end to end encryption

- onion routing, based on the Oxen Service Nodes [0], which also propels Lokinet that allows to anonymously browse the web

- no phone number or email required

- group chats, voice messages, voice and video calls (webRTC), attachments, emojis

https://docs.oxen.io/oxen-docs/about-the-oxen-blockchain/oxe...

https://lokinet.org/

vindarel··on I stopped everything and started writing C again
I understand, it isn't that bad though: a web app of mine with dozens of dependencies and all templates and static assets is 35MB with SBCL and core compression (that includes the compiler and debugger, useful to connect to a running app and exploring its state (or even hot reloading code)). I suppose that's in the ballpark of a growing Go application. LispWorks has a tree shaker that builds a hello world in 5MB.
vindarel··on Depending in Common Lisp – Using the CLOS dependent maintenance protocol (2022)
see: https://lispcookbook.github.io/cl-cookbook/editor-support.ht... Atom/Pulsar (good to very good support), VSCode, Sublime, Jetbrains, Jupyter notebooks, vim, Geany (experimental), Lem (built in CL)…
vindarel··on Living in your programming environment [pdf]
Everyone can try the Medley Lisp machine in the browser today! https://interlisp.org/project/status/2024medleyannualreport/
vindarel··on Maxima in the browser using Embedded Common Lisp on WASM
I'll add options to run Maxima:

* [Maxima on Android](https://play.google.com/store/apps/details?id=jp.yhonda), built with ECL.

* [Maxima on Jupyter](https://github.com/robert-dodier/maxima-jupyter)

* Maxima can be used via [SageMath](https://www.sagemath.org/) and [KDE Cantor](https://apps.kde.org/cantor/).

* Of course, with Emacs: [maxima-mode](https://gitlab.com/sasanidas/maxima) ([screenshot](https://community.linuxmint.com/img/screenshots/maxima-emacs...))

and [maxima-interface](https://github.com/jmbr/maxima-interface) to ease the interface between Maxima and Common Lisp.

* it can be used [from a Lisp REPL](https://mahmoodsheikh36.github.io/post/20230510181916-maxima...).

(and [wxMaxima](https://wxmaxima-developers.github.io/wxmaxima/): a graphical frontend as mentioned earlier)

(find the links and more scientific libraries for CL on https://github.com/CodyReichert/awesome-cl)

vindarel··on Why I Chose Common Lisp
Portacle ships SBCL so one can build executables when using Portacle.
vindarel··on Why I Chose Common Lisp
food for thought and feel free to chime-in: https://gist.github.com/vindarel/15f4021baad4d22d334cb5ce2be... Common Lisp VS Julia
vindarel··on Nyxt: The Hacker's Browser
Last time I looked there was no AI at all. I guess it's a buzzword the so called manager of the team felt obliged to put in.
vindarel··on Nyxt: The Hacker's Browser
(which can be written in other editors: https://lispcookbook.github.io/cl-cookbook/editor-support.ht... vim, VSCode with LSP support, Jetbrains, Atom/Pulsar, Sublime, Jupyter notebook…) (just saying to not scare people. Emacs is still the best for CL IMO)
vindarel··on Neomacs: Structural Lisp IDE/browser/computing environment
> magit

Since last year we have what's a start of Magit in Lem: https://lem-project.github.io/usage/usage/#version-control-w...

It has a status buffer, it can push/pull/commit, stage files and parts of hunks (no arbitrary region yet), list commits (with a handy pagination), manage stashes, do an interactive rebase (no reword yet). It's fast for big codebases (linux kernel) as it doesn't call the git binary a lot. We watch the performance and we have plans to read git blobs natively. I contributed it (https://lisp-journey.gitlab.io/blog/oh-no-i-started-a-magit-...). Working on it is a pleasure as the Lem codebase is very clean and introspectable (and specially so through Lem).

vindarel··on Hacker Typer
A fork for Lisp code^^ https://vindarel.github.io/Hacker-Typer/ code is from the Mezzano kernel OS.
vindarel··on Hofstadter on Lisp (1983)
Quantum computing and symbolic AI? But also web services, CAD and 3D software, trading, designing programmable chips, big data analytics…

present companies (that we know about): https://github.com/azzamsa/awesome-lisp-companies/

vindarel··on Common Lisp implementation of the Forth 2012 Standard
still, some use it professionally. And pick it as first choice. Like, is CL all the rage in quantum computing?

https://github.com/azzamsa/awesome-lisp-companies/

for some, prototyping goes to production: https://blog.funcall.org/lisp%20psychoacoustics/2024/05/01/w... (this year example)

Thriving as recognized by the general public, no, but do many implementations improve and are libraries released for practical matters? Yes.

vindarel··on Ask HN: If you were rewriting Emacs from scratch, what would you do differently?
Lem is actually useful though! And not a recreation of Emacs in CL, it's its own thing, unlike CEDAR (which wasn't completed).
vindarel··on Common Lisp implementation of the Forth 2012 Standard
Common Lisp is still kicking ;)

(not its standard sure)

vindarel··on Hy 1.0 – Lisp dialect for Python
this 100%. We have some options today to run Python from CL when necessary:

https://github.com/digikar99/py4cl2-cffi

https://github.com/marcoheisig/lang

vindarel··on Porting SBCL to the Nintendo Switch
see this detailed report: https://raw.githubusercontent.com/Shinmera/talks/master/els2...

> Overall we have needed to do surprisingly little actual performance analysis and optimisation work to make Kandria run well.

vindarel··on CIEL Is an Extended Lisp
hey this bug is fixed! thanks
vindarel··on CIEL Is an Extended Lisp
so, that's in the terminal REPL. Thanks for the report.

Meanwhile, you can use CIEL in your editor (as a library or with the core image), where you'll have a normal REPL and this will work.

vindarel··on Lem: Emacs-like editor written in Common Lisp
Did you try vterm (libvterm based)? It is uncomparably faster than M-x shell or M-x term, in case you were using them.
vindarel··on CIEL Is an Extended Lisp
Thanks! Encouraging feedback is my nectar.
vindarel··on CIEL Is an Extended Lisp
Awesome, thanks for the feedback.

Yes I do, of course, and I actually use it nearly exclusively for multi-file projects: I don't write short scripts everyday, but I have bigger projects that need more features. The one I am on: extract data from an existing DB, format it, save it to a csv, send it with SFTP. I build a binary and send it to my servers.

For this I use :ciel as a dependency, I use a typical project structure: a system definition in an .asd file (that :depends-on (:ciel)), and sources. I also start my editor with CIEL's core image. I build a binary the usual way out of this, I don't run this app as a script, specially if I added a couple dependencies. But that's OK, I benefited from CIEL during development.

I recommend to start with a file packages.lisp that defines 1 (one) package for the whole application, to use it across multiple files, until it makes sense to create a second package. Otherwise, one can easily loose oneself into export & import symbols hell, specially when we are new at it. So I don't recommend the "one-package-per-file" approach.

Hopefully the Cookbook gets you covered if you need examples.

Happy real-world lisping!

vindarel··on CIEL Is an Extended Lisp
thank you (both) for the feedback. I added links to the documentation at the end of the landing page.
vindarel··on CIEL Is an Extended Lisp
> Can you easily compile a binary? (I assume you just use standard CL methods?)

ATM you use standard methods, by using CIEL as a library.

I'd like to add a `ciel build` command.

vindarel··on CIEL Is an Extended Lisp
Hi o/ Hopefully the goal of CIEL is well explained. I use it daily (with the core image, in my editor), I ship products with it. It saves me a load of time, when I start a new project, when I need to interact with the outside world, when I want to write a little something and ship it on the server without Python's mess, etc. Speaking of which, Django is of course difficult to replace, but I started an automatic DB dashboard for CRUD operations, something's on the way (unreleased).

I integrated CL step by step for my clients' work, and CIEL is another means to this end. To use CL, for real. None of my projects need CL's superpowers, but I want them for development, deployment and monitoring!

---

Today I fixed a few issues and released a v0.2: https://github.com/ciel-lang/CIEL/releases/tag/v02 The key point is that CIEL should be much easier to install, specially on Mac. We now rely on many less system dependencies.

If you find out that CIEL is still difficult to install on your platform, don't hesitate to send details on an issue. Thanks in advance.

---

TLDR; May CIEL ease and soften your CL journey.

ps: you have no idea how much time it took me to discover certain things! Now you have them here, ready, packaged :-]

vindarel··on CIEL Is an Extended Lisp
How so?? You should have a sidebar with menu entries. Try on http://ciel-lang.org/#/libraries

oh, the sidebar disappears quickly when we scroll and it disappears when we click on "show me"… not great.

vindarel··on CIEL Is an Extended Lisp
Only one is enabled in the terminal repl, but none when we use ciel as a regular Lisp library. We don't want to mess with the readtables by default.

(see below to enable the shell passthrough in your editor's REPL)

← PreviousPage 4 of 20Next →