Hacker Newsnew | past | comments | ask | show | jobs | submit | antilisp's commentslogin

I only "finished" 2 projects yet.

Before that, i only started them and lost motivation after ~2 weeks. The projects a wanted to do were cyclic though, so i often came back to restart things i had left unfinished.

It took me time to change that, but the main thing i did was starting with extremely limited projects, that i knew i could finish in 2 weeks. I did very basic things at the beginning, like hosting a pure html website (but it was by first website i hosted, with nginx and certbot). Sometimes i would get back to it and improve something, like styling, text, SEO,...

I say "finished" because the bottleneck is finding users, not the code. So i still work on these projects, but not at the same speed.


I don't know how it is in other european countries, but most French people wouldn't even think about it. They are used to the EU laws being dictated one sidedly by people they don't know and haven't voted for, and then parroted by French politicians with no resistance.

Not that I know every French people


Working on a programming language: https://antilisp.com, a Lisp used for code generation in other languages.

The language is heavily inspired by Python for the dev UX, and the interpreter is written in RPython (what Pypy uses). Rewriting to RPython was tedious, but the 80x speedup was worth it.


From the perspective of someone rewriting an interpreter in RPython from CPython, I have no idea what to think of this besides "Yes, RPython is fast. I am aware, and I still haven't recovered from the shock of using Python to write a production-grade interpreter."


(Author of Antilisp, a Lisp for metaprogramming in non-Lisp languages) Not as small a project, but writing a feature-complete implementation of a small language is a very good learning experience that I would recommend to everyone.

There are only so many language implementers, and many opportunities to innovate in language design become obvious when it's your turn to decide what to implement.

For example, I made macros and axioms first-class citizens of the language as special cases of the function type, because using an interpreter allowed me to decide how things should be evaluated at runtime. I accidentally found a trivial way to bootstrap (quote) in my language. I also found a way to make a much more general reader macro system by simply writing a modular value reader that can be extended by adding new elements to a list of parsers. This make non-lisp syntaxes like JSON much easier to implement than with the CL reader macro system where reader macros are bound to some special parameters.

Note for context: In my case, the Lisp interpreter is under 3KLoC, and most of the abstractions are bootstrapped from macros and reflection primitives, or primitive that are shadowed by higher level builtins.


Off topic, but this is the first I've heard of Antilisp and I love the idea - seems aimed at the sort of problems that I've definitely solved with a tangle of unmaintainable elisp before. Now I just need to forget about the whole thing before I talk myself into writing a Helm module for it... or an HCL one... or... NO.


Thanks! Antilisp is still WIP, so I would not recommend spending time writing modules for complex languages yet. I am (slowly) fixing things and writing more/better wrappers so that users don't have to dedicate their own time before deriving value from the language.


I relate to that feeling of having to resist the siren call of Lisp.


  Location: Paris, France
  Remote: Open to Remote/Office/Hybrid
  Willing to relocate: Yes
  Technologies: Python, Django, Flask, FastAPI, PostgreSQL, Linux, Docker, Asterisk,...
  Résumé/CV: https://antilisp.com/static/resume.pdf
  Email: yacine.cheikhrouhou@gmail.com


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: