-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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 overview of features to readme #5256
Conversation
I have pieced together some initial ideas based on the website and the wiki. If nim is indeed targeting the game industry compile speeds could be something worth talking about. Are compiler speeds being benchmarked and checked for regressions? |
The bootstrapping process reports timings and memory usage for this reason and I keep track of these numbers. So the answer is "yes" but it could be automated more. |
Nice work!
|
Whats the main target area of nim? If we have that defined we can filter features to present. |
What is the main target area of C++? It's only been used for high performance computing, OSes, browers, game engines, Google's core algorithms, web crawlers, business applications ... "It's good for everything" is bad for marketing though, so let's say it tries to excel/excels at async IO and C++ interop. |
I've never written c++, will this c example also work for c++? |
Yes pretty much, but you have to use |
Targetting a single area will also alow tooling and libraries to grow in one area meaning instead of doing 30% of what everyone wants we can do 110% of what 5% of people wants. This polish in one area means industry is more liable to start using nim. Gamedev is a nice target specially if we can utilize all those c++ libraries. @Araq mentioned another ui library a few days ago. Could be a viable market as there are alot of apps being made with webkit and electron(web technologies) producing binaries of 80mb. Kivy for python is the only alternative I found for developing apps quickly but it is implemented in python (sdl2) so it is not usable by other languages. A kivy clone in nim would be cool... |
Agreed. |
- [Hygenic Macros](http://nim-lang.org/docs/macros.html) | ||
- [Low level memory allocation](https://rosettacode.org/wiki/Memory_allocation#Nim) | ||
- [Type inference](https://nim-by-example.github.io/variables/type_casting_inference/) - Strongly typed | ||
- Link to more features with examples such as https://haxe.org/documentation/introduction/language-features.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haxe? :-?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's a todo item. :)
@@ -1,9 +1,63 @@ | |||
# <img src="https://raw.githubusercontent.com/nim-lang/assets/master/Art/logo-crown.png" width="36"> Nim [![Build Status](https://travis-ci.org/nim-lang/Nim.svg?branch=devel)](https://travis-ci.org/nim-lang/Nim) | |||
Efficient like C, expressive like Python and flexible like Lisp. | |||
|
|||
```python |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/python/nim
@@ -1,9 +1,63 @@ | |||
# <img src="https://raw.githubusercontent.com/nim-lang/assets/master/Art/logo-crown.png" width="36"> Nim [![Build Status](https://travis-ci.org/nim-lang/Nim.svg?branch=devel)](https://travis-ci.org/nim-lang/Nim) | |||
Efficient like C, expressive like Python and flexible like Lisp. | |||
|
|||
```python |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think code examples belong in the Github readme.
|
||
## Overview | ||
|
||
Nim is a modern general purpose programming language excelling in Async IO and C++ interop. These features make nim very suitable for: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Async IO and C++ interop.
I know @Araq said this but I find this lame.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So say something better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for taking the time and initiative to do this but overall I don't think it belongs in the readme. Best thing is to move this discussion into the website repo.
- [Technical Roadmap](https://github.com/nim-lang/Nim/wiki/Roadmap) | ||
|
||
## Limitations | ||
- Tail call optimization |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO this is not worth mentioning. Even though Nim itself doesn't do tail call optimization, it still can be done by underlying C compiler.
This pr aims to open up dialogue about how best to market nim, the Why.
Ideally the overview and features presented should be chosen to match that story, The How