4 ms·
Show HN: Liz – Collaborative Lisp coding on Discord
This is a Discord bot I made, which lets you write and evaluate Lisp code in collaborative sessions on Discord.
I wrote it in a short amount of time, partly for learning purposes, but also because I found the idea exciting and it was fun to hack around.
I'd be happy to get your feedback, especially on how to improve the deletion mechanism (maybe make deletion sexpr-based?). I've tried to make the README detailed enough so that it's easy to make some changes and run your own version.
- svapnil 3y agoCool build! Quick question - why did you decide to create this bot in Rust, instead of the more popular libraries Discord.js or discord.py? Is there a real performance reason, or did you just want to do it in Rust?
- D4ckard 3y agoYeah, I just love Rust and I like Shuttle (which is used to deploy this Rust project), too! I don't think there are great performance implications here. They type-safety is nice though, and it was easy to embed a Lisp.
- MayeulC 3y agoLooks like a fun project, is it abstracted from the Discord API? How easy would it be to port it to other chat services like Matrix, Telegram, etc?
- D4ckard 3y agoNo, not really. Discord user IDs are even used stored in the DB to manage session ownership. The amount of features is not that big though. I think porting this to another chat service would be doable in a weekend.
- svapnil 3y agoI've been deep in the Discord-bot rabbit hole recently. TBH, I think it's the dominant platform to create bots, since it's the messaging app that has the most actives on it, and the event subscriptions are robust. I'd rather keep building on Discord then port it to different apps and get more, less attractive platforms to support. What do you think?
- _aaed 3y agoI'd love it if it was also accepting Common Lisp
- freilanzer 3y agoOh man, I thought it was. This makes it less exciting.
- Zambyte 3y agoNice! I tried doing something similar a few years ago using Scala as both the host language and the language that would be dynamically executed. I ran into issues trying to build a structure that represents executable Scala code, and eventually I moved on to other projects. This was before I was really familiar with Lisp, and looking back I think I would have been way more successful if I was trying to use that instead :D