nimtraits
macro-lisp
nimtraits | macro-lisp | |
---|---|---|
2 | 10 | |
14 | 416 | |
- | - | |
5.9 | 3.9 | |
over 2 years ago | 10 months ago | |
Nim | Rust | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nimtraits
- What would be your “perfect” programming language?
-
Nim Community Survey 2021 Results
Thanks for your reply.
It's interesting to know what the perceived weaknesses are. Nim does have pattern matching but it's rarely used, whereas it seems to be used a lot in Rust (probably because of the prominence of enums). Nim has static lifetime management, but it's mainly used for eliding and thread safety (for now). Traits are an interesting feature, and make a good example of why I'm so bullish on Nim: someone has already replicated them with a macro: https://github.com/haxscramper/nimtraits
The popularity critical mass thing is mainly getting eyes on the language, but I think Nim has a slight advantage in that it's incredibly cooperative with its compile targets and FFI. Like Python, it's great for good glue code and 'scripting' without the performance penalty, and I hope that helps it meld into people's toolboxes over time.
macro-lisp
-
Bare minimum atw-style K interpreter for learning purposes
Rust’s macro system is safe and hygienic, people have implemented lisps in it. I just did a google search to find an example, so I have no idea how well supported this is, https://github.com/JunSuzukiJapan/macro-lisp
-
Lust 🦞
You can already have both: https://github.com/JunSuzukiJapan/macro-lisp
- What would be your “perfect” programming language?
-
"RIIR"
Via a lisp macro?
-
In theory, is it possible to bundle a rust-to-rust transpiler with rustc in order to make "breaking" language changes, without actually breaking anything? And how would you prove the accuracy of such a system?
Rust macros can make the language look like anything, even lisp: https://github.com/JunSuzukiJapan/macro-lisp
-
Lisp as an Alternative to Java
Why not get the best (?) of both worlds with the macro-lisp crate: https://github.com/JunSuzukiJapan/macro-lisp
A small snippet from the project's examples shows minimal boilerplate between Rust and a native-looking Lisp experience:
-
Sharing Saturday #353
After that, I'm going to go back to working on adding some scripting. My attempts at making a Lisp in Rust failed spectacularly, but when trying to find a ready made replacement that's not too big (so not RustPython and not Rhai or Dyon) I found mentions of DSL, which are usually Rust macros, which led me to https://github.com/JunSuzukiJapan/macro-lisp (single file, circa 400 lines, that does basically the whole job I want, i.e. being able to call Rust functions when I need them, e.g. from an in-game console)
What are some alternatives?
awesome-nim - A curated list of awesome Nim frameworks, libraries, software and resources.
Carp - A statically typed lisp, without a GC, for real-time applications.
Kind2 - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind]
patty - A pattern matching library for Nim
innit - A roguelike game where you play a micro organism inside a larger organism!
union - Anonymous unions in Nim
aplus - A+ Programming Language
paren-face - A face dedicated to lisp parentheses
ksimple - k/simple is a bare minimum k interpreter for learning purposes by arthur whitney
honu