Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Nim #361

Merged
merged 2 commits into from
Oct 28, 2022
Merged

Add Nim #361

merged 2 commits into from
Oct 28, 2022

Conversation

othrbot
Copy link

@othrbot othrbot commented Oct 28, 2022

Pull request from @ringabout.

[Insert URL to the list here]

https://github.com/xflywind/awesome-nim

[Explain what this list is about and why it should be included here]

Nim is a statically typed compiled systems programming language.

Good for everything from shell scripting to web front & backend, to ML, HPC, and embedded.
Productivity: human readable and expressive like Python, with few sigils
Type system: strong static typing, nice generics, concepts, and type classes
Performance: matches C and C++, always gives control to the programmer
Portability: compiles to C, C++, and Javascript
Native use of all libraries in target languages (no ABI issues) + really nice FFI
Single (tiny) executable with no deps
Write server/client in the same language and share code between front/back end
Linux, Windows, and Mac
Iterating: Very fast compile speed
Top tier metaprogramming:
Hygienic AST Macros a core part of the language, very flexible syntax
Runs a VM of Nim at compile time giving you most of the language (bar pointers) to generate code or run procedures and store them as const
Eg; async implemented just with macros, doesn't need special language support
Eg; can automate building types and code from file data at compile time

Ref https://old.reddit.com/r/programming/comments/jc91xp/nim_14/g90ysdl/?context=2

[ boilerplate snipped ]

[Nim](https://nim-lang.org/) is a statically typed compiled systems programming language.

> Good for everything from shell scripting to web front & backend, to ML, HPC, and embedded.
Productivity: human readable and expressive like Python, with few sigils
Type system: strong static typing, nice generics, concepts, and type classes
Performance: matches C and C++, always gives control to the programmer
Portability: compiles to C, C++, and Javascript
Native use of all libraries in target languages (no ABI issues) + really nice FFI
Single (tiny) executable with no deps
Write server/client in the same language and share code between front/back end
Linux, Windows, and Mac
Iterating: Very fast compile speed
Top tier metaprogramming:
Hygienic AST Macros a core part of the language, very flexible syntax
Runs a VM of Nim at compile time giving you most of the language (bar pointers) to generate code or run procedures and store them as const
Eg; async implemented just with macros, doesn't need special language support
Eg; can automate building types and code from file data at compile time

Ref https://old.reddit.com/r/programming/comments/jc91xp/nim_14/g90ysdl/?context=2
@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-ringabout on 2021-04-26 06:19 says: The PRs I reviewed
sindresorhus/awesome#-1983
sindresorhus/awesome#-1974

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-sindresorhus on 2021-04-26 12:03 says: Thanks for making an Awesome list! 🙌

It looks like you didn't read the guidelines closely enough. I noticed multiple things that are not followed. Try going through the list point for point to ensure you follow it. I spent a lot of time creating the guidelines so I wouldn't have to comment on common mistakes, and rather spend my time improving Awesome.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-fiddleHeads on 2021-05-02 22:09 says: Hi. This all looks pretty good to me. The only thing I can think of, which I can't tell whether you've done yet, is to run awesome-lint.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-ringabout on 2021-05-03 10:39 says: Which do you mean? I have an awesome-lint CI for it in my repo.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-fiddleHeads on 2021-05-05 19:56 says: I was just trying to see what you didn't complete yet under the awesome list instructions to warrant the comment above about not following the guidelines and didn't see that you'd run awesome-lint and reported any issues anywhere, as it's one of the prerequisites. Apologies if I missed that you'd already done it.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-drushadrusha on 2021-05-06 05:43 says: Your list description should end in a dot according to PR requirements.
Looks good to me, except that you forgot one thing mentioned in the list of requirements.
Please read it carefully.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-pluja on 2021-05-22 06:37 says: I checked your repo with the awesome-lint and it has no errors. Also I could find some awesome projects on the list, which is the aim of it all! One thing I don't understand is why Nitter is under the Web API title.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-sindresorhus on 2021-07-06 10:24 says:

Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

For example, nim and Nim and nim-lang.


Includes a project logo/illustration whenever possible.


High level => High-level

lib = library


Text editor to get started with Nim easily (not maintained anymore).

Unmaintained stuff are not awesome.


The Nim Telegram on Spanish => The Nim Telegram in Spanish

And it's moot to prefix all these links with The Nim.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-ringabout on 2021-08-05 14:41 says: @-sindresorhus
Thanks for your advice! The issues mentioned have been fixed.

@othrbot
Copy link
Author

othrbot commented Oct 28, 2022

@-sindresorhus on 2021-08-05 17:06 says: Descriptions should not be title-case. For example, A Very Simple X11 Window Manager.. (but more places)


The description should not contain the project name.

c2nim - c2nim is a tool to translate Ansi C code to Nim.


parsetoml - A Nim library to parse TOML files.

Nim is implied here. It's a list for Nim stuff. Same in many other places.


ormin - Prepared SQL statement generator , A lightweight ORM.

Formatting typo.


The header is ugly and illegible. If you want to keep it, you should:

  1. Use same yellow color as official Nim logo.
  2. Drop the dash.
  3. Use the same font as the Nim logo.
  4. Don't have both the image header and the text header.

@akvadrako akvadrako merged commit 8ca095e into main Oct 28, 2022
@akvadrako akvadrako deleted the pull/1997 branch October 28, 2022 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants