Re: I think we can really do better...

2020-04-17 Thread miran
@other_mods: Guys, didn't you notice that @brianwil2727 has put one link to 
some Bitcoin stuff to his post? It is a well-masked spam.


Re: I think we can really do better...

2020-04-17 Thread Pixeye
It's not about claiming to be something revolutionary. It's about the message. 
The fact that I don't know about Modula and Ada says nothing. We live in the 
world of internet. I can read the wiki page of those lang. It doesn't make me 
"knowing Ada/Modula"

Of course, all languages built on each other and if I would like to know who 
influenced Nim I'll read the wiki. This is not the information that can be 
valuable for me as a user in the first place. This is my point :) With all 
respect to Ada, Modula, and other great languages.


Re: I think we can really do better...

2020-04-17 Thread Stefan_Salewski
Note, my initial suggestion was

"Nim combines successful concepts from mature language like Python, Ada and 
Modula with a few sounding features of latest research."

Unfortunately they discarded the last part, I think to fit it all to one page.

But I have copied all my advertisings to my book:

[http://ssalewski.de/nimprogramming.html](http://ssalewski.de/nimprogramming.html)

Section

[http://ssalewski.de/nimprogramming.html#_nim_has_a_encouraging_future](http://ssalewski.de/nimprogramming.html#_nim_has_a_encouraging_future)

is maybe too much advertising, maybe I will remove that.

The fact that you do not know Modula and Ada is not that great, Modula was an 
important milestone in development of languages, it was the successor of Pascal 
and introduced the module concept around 1980 which current C++ is still 
missing. And Ada, designed by a committee it may be a bit ugly, but it has been 
improved and is still used in critical areas like aircraft.

All languages built on each other in a way, each new languages has learned from 
previous ones and tries to avoid their mistakes.

I guess even V-Lang will not claim to be something revolutionary new?

And Rust -- it is indeed a better C++, and has a large company behind it and 
much hype. 


Re: I think we can really do better...

2020-04-17 Thread Pixeye
just my 5 cents about the theme itself. I think it would be great to understand 
the audience of Nim. I think the topic is not about languages. It's about 
people who stand behind. People are valued. Fresh blood and young programmers 
who are trying to make new stuff. Why?

Because It's hard to convince people that already earn money and have robust 
working toolsets on other langs to drop it in favor of other lang. So the 
audience is not about programmers that came from Python, Ada, Modula, Whatever. 
The audience is people who are

  1. new to programming
  2. have money/will to shift to new tech ( a much smaller group )
  3. hobbyist and who program for fun in a spare time



I want to point on Rust and Nim sites:

  * Rust



A language empowering everyone to build reliable and efficient software.

Obviously I find Rust description sexy, elegant and I understand the mission of 
the language. And I understand why game dev fellas like this description.

  * Nim



Nim is a statically typed compiled systems programming language. It combines 
successful concepts from mature languages like Python, Ada and Modula.

The first part about typed compiled lang is ok and this is why I came here :)

But I know nothing about Ada or Modula. I even never heard of those languages. 
And I think I don't want to. ( Not because I think they are bad of course )

>From my mentality "we take a,b,c,d from there and do better mixing stuff" is 
>not cool. It's like "drink my custom Pepsi, it took best of Cola". Those who 
>are fine with Cola won't look at custom Pepsi, and those who never tasted Cola 
>can't make a decision on drinking custom Pepsi that advertises flavors they 
>never tried.

The Nim language is cool. Period. It doesn't need to compare itself with other 
languages. It's not a selling point. I want a language that helps me solve real 
problems, not a language that solves the problems of other languages.

What problems I have as a game developer?

The first problem is that system languages are great for writing core but often 
too hard for scripting and writing the game itself. Many reasons from syntax to 
more strict rules of how to write code. Maybe core developers fill confident 
but your teammate might have less experience and just want to script.

That's why we have Lua and so on. That's why Unity is on the C++ side and 
scripting is on C# side and they're a lot of silly "optimizations" about 
caching variables and stuff not to make an extra call on the C++ side. That's 
why Unity makes "subsets of C#" to put everything in one scope. A lot of hard, 
dirty work I think.

The second problem is portability. Pc, Mac, Linux, Consoles, Ios, Androids. It 
would be super nice if you can port your game to every device without rewriting 
the game to another language. As Nim compiles to C/C++/JS I can at least hope 
that I will be able to get on every possible platform.

just few examples of what I find like selling points:

  * Write code once, deploy everywhere - selling point
  * You will do more typing less - selling point
  * The language is expressive and versatile, you can write efficiently core 
stuff and game scripts in the same language and scope ( I don't need to mention 
here C++/Lua, it's obvious ) - my personal game dev selling point.



PS, I 'm 30 years old and came to programming accidentally. I developed games 
in C# with Unity for a decade and never identified myself as a programmer. With 
experience, I realized that I don't need an aircraft carrier to make 2d games. 
The safe options are C/C++. The other 3 options were D, Rust, and Nim. And I've 
started looking at Rust. Why? Everyone said that IT'S THE THING for game dev. 
From every corner. No one said to me to use Rust because it's like C++ but 
better. No. I was advertised that I can write safe code and Rust will solve my 
problems. It took me some time to realize that I don't like Rust language ( 
simple as that ). But it hooked me more than Nim at first. 


Re: I think we can really do better...

2020-04-16 Thread brianwil2727
Nim is a state of the art programming language well suited for systems and 
application programming

Its clean Python like syntax makes programming easy and fun for beginners, 
without applying any restrictions to experienced systems programmers.

Nim combines successful concepts from mature language like Python, Ada and 
Modula with a few sounding features of latest research. It offers high 
performance with type- and memory safety while keeping the source code short 
and readable.

The Compiler itself and the generated executables support all mayor platforms 
including Windows, Linux, BSD and Mac OS X. The custom package manager makes 
use and redistribution of programs and libraries easy and secure.

Nim supports various backends -- the C and LLVM based backends allow easy OS 
library calls without additional glue code, while the Javascript backends 
generates high quality code for web applications. The integrated 
"Read–eval–print loop" (REPL), "Hot code reloading", and support of various 
development environments including debugging and language server protocol makes 
working with Nim productive and enjoyable.

Nim is Efficient:

The statically typed language compiles to highly optimized dependency free 
executables. Modern concepts like zero-overhead iterators, compile time 
evaluation of user-defined functions and cross-module inlining in combination 
with the preference of value-based, stack located datatypes leads to extremely 
efficient code. Multithreading, async IO, parallel processing including GPU 
execution are supported. Various memory management strategies exists: 
Selectable and tunable high performance Garbage Collectors are supported by 
manually and semi manually memory management. This makes Nim a good choice for 
Application development and close to the hardware system programming at the 
same time. The unrestricted hardware access, small executables and optional GC 
will make Nim a perfect solution for embedded systems, hardware driver and 
Operating Systems development

Nim is Expressive and Elegant

Nim offers a modern type system with templates, generics and type inference. 
Built in advanced data types like dynamic containers, sets and strings with 
full UTF support are completed by a large collection of library types like hash 
tables and regular expressions. The Powerful AST-based hygienic macro system 
offers nearly unlimited possibilities for the advanced programmer. While the 
traditional Object-Oriented Programming style with inheritance is supported, 
Nim does not enforce this programming paradigm and offers modern concepts like 
procedural and functional programming. Nim is Open and Free

The Nim compiler and all of the standard library are implemented in Nim. All 
source codes are available under less restricted MIT license. Nim has a 
friendly and helpful growing community

Forum (coded in Nim), Gitter, IRC Nim has a encouraging future

Started 10 years ago as a small community project of some bright CS students 
leaded by Mr A. Rumpf, it is now considered as one of the most promising 
programming languages supported by uncounted individuals and companies of 
leading computer industry, ie. from the area of game-, web- and cryptocurrency 
development. --

More details: 
[https://www.delta.exchange/futures-guide-bitcoin](https://www.delta.exchange/futures-guide-bitcoin)/

Try it: 
[https://play.nim-lang.org/index.html](https://play.nim-lang.org/index.html)


Re: I think we can really do better...

2019-10-15 Thread Libman
[Kostya's benchmarks](https://github.com/kostya/benchmarks) have become updated 
again [after a long absence](https://github.com/kostya/benchmarks/issues/179), 
featuring Nim v1.0.0, Rust stable, the current versions of the D compiler trio, 
etc.

Nim's BF2 results have improved compared to [the 
past](https://archive.fo/8WJUb#selection-2157.0-2160.0): both Nim backends now 
beat Rust, and Nim-Clang now beats LDC.

There's still room for improvement in other tests. There's a new maintainer. 
Hope the Nim community will submit improved implementations.


Re: I think we can really do better...

2019-05-29 Thread mratsim
I actually think it's easier to optimize Nim for scientific computing like I 
did for the Julia challenge: 
[https://nextjournal.com/sdanisch/the-julia-challenge](https://nextjournal.com/sdanisch/the-julia-challenge)

For example my [matmul 
implementation](https://github.com/numforge/laser/blob/bf751f4bbec3d178cd3a80da73e446658d0f8dff/benchmarks/gemm/gemm_bench_float32.nim#L418-L465)
 would be as fast as Julia Native Threads in [Kostya's matmul 
benchmark](https://github.com/kostya/benchmarks#matmul) (Julia Native Threads 
uses the OpenBLAS library written in assembly in backend).


Re: I think we can really do better...

2019-05-29 Thread Stefan_Salewski
> But I would say that your suggested text is also too long.

Yes, I was indeed struggling with the text length, but I was not able to make 
it shorter without leaving important topics out.

The text does not fit on a single page unfortunately, but it can be read very 
fast. For my personal task I would like to see a text in such a form on the 
first page, because it gives a complete overview. But I have noticed that most 
programming language pages have nearly no informative text on the first page, 
but a link called something like "What is Nim". Maybe that is indeed the better 
solution, and it may work better for mobile.


Re: I think we can really do better...

2019-05-28 Thread juancarlospaco
I think both are true, but is good opportunity for ``.


Re: I think we can really do better...

2019-05-28 Thread dom96
> Topmost page should not contain too much text and too much details. And no 
> unknown terms.

Agree with you here. In fact, I made a similar remark in the PR: 
[https://github.com/nim-lang/website/pull/150#issuecomment-496166378](https://github.com/nim-lang/website/pull/150#issuecomment-496166378)

But I would say that your suggested text is also too long.


Re: I think we can really do better...

2019-05-28 Thread Libman
Saying you "can swim fast" doesn't impress people. Saying you swim X meters in 
Y seconds doesn't impress people much because most don't have an immediate 
frame of reference. Saying that you've won 
[23](https://en.wikipedia.org/wiki/List_of_multiple_Olympic_medalists) Olympic 
gold medalists - now that's a knockout blow!

What Nim needs most is to win benchmarks and other systematized programming 
language comparisons. I think [Web Framework 
benchmarks](https://forum.nim-lang.org/t/1152) are the most important point Nim 
can make about its performance. It's already doing great, but needs more 
implementations and optimization. 


Re: I think we can really do better...

2019-05-28 Thread Stefan_Salewski
Nim is a state of the art programming language well suited for systems and 
application programming

Its clean Python like syntax makes programming easy and fun for beginners, 
without applying any restrictions to experienced systems programmers.

Nim combines successful concepts from mature language like Python, Ada and 
Modula with a few sounding features of latest research. It offers high 
performance with type- and memory safety while keeping the source code short 
and readable.

The Compiler itself and the generated executables support all mayor platforms 
including Windows, Linux, BSD and Mac OS X. The custom package manager makes 
use and redistribution of programs and libraries easy and secure.

Nim supports various backends -- the C and LLVM based backends allow easy OS 
library calls without additional glue code, while the Javascript backends 
generates high quality code for web applications. The integrated 
"Read–eval–print loop" (REPL), "Hot code reloading", and support of various 
development environments including debugging and language server protocol makes 
working with Nim productive and enjoyable.

Nim is Efficient:

  * The statically typed language compiles to highly optimized dependency free 
executables.
  * Modern concepts like zero-overhead iterators, compile time evaluation of 
user-defined functions and cross-module inlining in combination with the 
preference of value-based, stack located datatypes leads to extremely efficient 
code.
  * Multithreading, async IO, parallel processing including GPU execution are 
supported.
  * Various memory management strategies exists: Selectable and tunable high 
performance Garbage Collectors are supported by manually and semi manually 
memory management. This makes Nim a good choice for Application development and 
close to the hardware system programming at the same time.



The unrestricted hardware access, small executables and optional GC will make 
Nim a perfect solution for embedded systems, hardware driver and Operating 
Systems development

Nim is Expressive and Elegant

  * Nim offers a modern type system with templates, generics and type inference.
  * Built in advanced data types like dynamic containers, sets and strings with 
full UTF support are completed by a large collection of library types like hash 
tables and regular expressions.
  * The Powerful AST-based hygienic macro system offers nearly unlimited 
possibilities for the advanced programmer.
  * While the traditional Object-Oriented Programming style with inheritance is 
supported, Nim does not enforce this programming paradigm and offers modern 
concepts like procedural and functional programming.



Nim is Open and Free

  * The Nim compiler and all of the standard library are implemented in Nim. 
All source codes are available under less restricted MIT license.



Nim has a friendly and helpful growing community

  * Forum (coded in Nim), Gitter, IRC



Nim has a encouraging future

  * Started 10 years ago as a small community project of some bright CS 
students leaded by Mr A. Rumpf, it is now considered as one of the most 
promising programming languages supported by uncounted individuals and 
companies of leading computer industry, ie. from the area of game-, web- and 
cryptocurrency development.



\--

More details: 
[https://nim-lang.org/features.html](https://nim-lang.org/features.html)

Try it: 
[https://play.nim-lang.org/index.html](https://play.nim-lang.org/index.html)


Re: I think we can really do better...

2019-05-28 Thread Stefan_Salewski
Note, we have already a second page which I really like:

[https://nim-lang.org/features.html](https://nim-lang.org/features.html)

There we can explain all that in more details with examples.

Topmost page should not contain too much text and too much details. And no 
unknown terms.

And we have to be careful with too unstable/experimental stuff. Hot Code Reload 
and REPL is great, but is it working stable already, and do we have docs? 
People we asks for docs. Compile-Time FFI, yes we should mention that. Also 
that different, optional and tunable GCs exists. No idea what MultiSync is...

Maybe we should directly link to the Playground -- I am not sure if it 
currently exists.

And mention packedmanager.


Re: I think we can really do better...

2019-05-28 Thread juancarlospaco
I would mention Compile-Time FFI, Hot Code Reload, the GC options, REPL and 
MultiSync, you can not do that on other languages... 


I think we can really do better...

2019-05-28 Thread Stefan_Salewski
I may feel a bit guilty as I critisized the former Nim Homepage content...

But sorry, the new draft is really not nice.

Page look is unfriendly, content is not great also.

So here is my first content suggestion -- I just hacked it together in a few 
minutes. It would be easy to improve the text further, I guess I forgot some 
points, and we can steal some wording from pages of other languages. Of course 
I am not a native English speaker, and do not know well all Nim details. But it 
is so easy to make a better text, so I could not resists, of course knowing 
that my draft will newer make it to the Nim homepage. So I have not fixed 
spelling errors and I have not tuned the wording in any way. But you may get 
the feeling. I would maybe group the statements in boxes as it is done for 
Julia -- Julia in a nutshell.

* * *

Nim is a modern universal programming language suited for systems and 
application programming

Nim combines successful concepts from mature language like Python, Ada and 
Modula with a few sounding concepts of latest research. It offers high 
performance while keeping the source code short and readable.

Its clean Python like syntax makes programming easy and fun for beginners, 
without applying any restrictions to experienced systems programmers.

Nim is efficient:

  * The generated native, dependency free executables are small and allow easy 
redistribution.
  * Nim supports various backends -- the C and LLVM based backends allow easy 
OS library calls without additional glue code, while the Javascript backends 
generates high quality code for web applications. More backends already exists 
or can be easily added.
  * The Compiler itself and the generated executables support all mayor 
plattforms like Windows, Linux, BSD and Mac OS X. Porting to other platforms is 
easy.
  * Modern concepts like Zero-overhead iterators, compile time evaluation of 
user-defined functions and Cross-module inlining in combination with the 
preference of value-based, stack located datatypes leads to extremly performant 
code.
  * Various memory management strategies exists: Selectable and tunable high 
performance Garbage Collectors are supported by manually and semi manually 
memory managent. This makes Nim a good choice for Application development and 
close to the hardware system programming at the same time.
  * The unrestricted hardware access, small executables and optional GC will 
make Nim a perfect solution for embedded systems, hardware driver and Operating 
Systems development



Nim is Expressive

  * Nim supports the well know concepts like operator and function overloading 
and ...
  * While the traditional Object-Oriented Programming styles is supported, Nim 
does not enforce this programming paradigma and offers modern concepts like ...
  * The Powerful AST-based hygienic macro system offers nearly unlimited ... 
for the advanced programmer.



Nim is Elegant

  * Modern type system with local type inference, tuples, variants, generics, 
etc.



Nim is Open and Free.

  * The Nim compiler and all of the standard library are implemented in Nim. 
All source codes are available under the unrestricted MIT license.



Nim has a friendly growing community

  * IRC
  * Forum (coded in Nim)
  * ...



Nim has a bright future

  * Started 10 years ago as a small project of some bright CS students leaded 
by Mr A. Rumpf, it is now considered as one of the most promising programming 
languages supported by uncounted individuals and companies of leading computer 
industry, ie. from the area of game development, cryptology and bitcoin stuff.