Re: Is Nim better than C?

2016-10-01 Thread leledumbo
Nim can do everything that C can do (it is designed as a system programming 
language, can and has been proven to program a kernel), but will warn you about 
safety more than any C compiler will ever do. Nim has much more advanced 
features, so you can do things that are either inelegant, hard or impossible in 
C. In short, yes it's better and superior than C, as many other languages 
already do.


Flow Based Programming in Nim

2016-10-01 Thread drifter
Hi there, I've been reading up on a programming model referred to as Flow-Based 
Programming (FBP).

[http://www.jpaulmorrison.com/fbp](http://forum.nim-lang.org///www.jpaulmorrison.com/fbp)/
 
[https://en.wikipedia.org/wiki/Flow-based_programming](https://en.wikipedia.org/wiki/Flow-based_programming)

I'm wondering if any of you have implemented something like this in Nim?

Central to FBP is the concept that **data** is to be seen as the primary 
"thing" in an application, This "thing" moves from one process to another, 
undergoing a constant series of transformations.

Processes receive and send packets of information between each other.

The sole purpose of a process is to transform the data it receives into another 
form, before sending it off to another process.

A few other highlights:

  1. A process has IN and OUT channels (kind of like a socket's receive and 
send)
  2. Processes are connected together (ex: connect("ProcessA.OUT", 
"ProcessB.IN") to create a network of interconnected processes
  3. Data (Information Packets) is received by the receiving process(es) in the 
order in which they were sent by the sending process
  4. Once they have finished transforming the data they have received, a 
receiving process sits iddle until new data is sent to it.



I could see model working well for making the jump from process diagrams into 
code implementation, almost having a 1:1 relationship. Well, especially in my 
line of work as a IT Biz Analyst where we do a lot of process diagrams. Mapping 
a process diagram to a process using this approach would seem trivial.

The only thing is I'm not quite sure how to implement this in Nim (well, in any 
langauge in general).

The author of "Flow Based Programming", Paul Morrison, pointed me to a couple 
of implementations of this approach:

[http://www.jpaulmorrison.com/fbp/jsyntax.htm](http://forum.nim-lang.org///www.jpaulmorrison.com/fbp/jsyntax.htm)

This approach has been implemented in Java, in C++, Javascript. He tells me 
implementation of this approach depends on the language being used supporting 
threads (which I know Nim does). But I have to admit I'm not strong enough a 
programmer to figure it out on my own.

So if anyone is interested, and have a few ideas or pointers, I hope you don't 
mind chiming in!

Regards,


Re: Version 0.15 released!

2016-10-01 Thread Atlas
Congratulations!


NimYAML 0.7.0 released

2016-10-01 Thread flyx
Since we have Nim 0.15.0 now, NimYAML 0.7.0 follows. This list is relevant for 
upgrading from a previous version:

  * The API has been split over several modules. Importing the [base 
package](http://forum.nim-lang.org///flyx.github.io/NimYAML/yaml.html) imports 
all subpackages, so this change is backwards-compatible. However, you are 
encouraged to import only those parts of the API you need.
  * It is possible to call all loading procs with a `string` instead of a 
`Stream` input. Loading YAML directly from a string will enable NimYAML to 
include correct line content in its parsing exceptions. This is not always 
possible with using Streams, where it will return an empty string instead if 
the line content is not available.
  * The API for writing custom represent/construct procs has changed. 
[representObject](http://forum.nim-lang.org///flyx.github.io/NimYAML/serialization.html#representobject)
 does not return a `YamlStreamEvent` iterator anymore. Instead, the 
implementation shall put its generated event(s) into the 
`SerializationContext`. You have to update existing code if you use that 
functionality.



Major new features are:

  * The serialization API features better checks and error messages in case of 
invalid input. This makes NimYAML feasible for user-written configuration files.
  * Usage of first-class iterators has been removed to make compiling to JS 
possible. However, finishing this is still blocked by a Nim compiler bug, see 
[here](https://github.com/flyx/NimYAML/issues/24).
  * YAML compliance has been improved.



A complete list of changes is available 
[here](https://github.com/flyx/NimYAML/blob/devel/CHANGELOG.md). NimYAML 0.7.0 
requires Nim 0.15.0.


Re: Version 0.15 released!

2016-10-01 Thread OderWat
@Ar Just want to point out that the "box" in every module does a search 
over all (indexed) modules and therefor not just helpful for big modules.


Re: Is Nim better than C?

2016-10-01 Thread nimboolean
**Language X** can be used as a replacement for C language(used as a better C), 
where **Language X** can be anywhere from C++, Java, D, Python, Go, OCaml, 
Erlang, Javascript etc., depending on what you are trying to do. Being better 
than C at _something_ is not that difficult. Today C is chosen mostly because 
old habits die hard, not because it's the "best language overall".


Is Nim better than C?

2016-10-01 Thread Atlas
In the Nim in Action, it says that Nim can be used as a replacement of C 
language (used as a better C), but does that mean Nim is better and superior on 
C?


Re: Version 0.15 released!

2016-10-01 Thread Arrrrrrrrr
Congratulations on the release. The search box is really helpful, for big 
modules (system for example 
[http://nim-lang.org/docs/system.html](http://forum.nim-lang.org///nim-lang.org/docs/system.html))
 i'd like to have the index following the main content the way crystal does, 
which makes exploring a module more helpful 
[https://crystal-lang.org/api/0.19.3](https://crystal-lang.org/api/0.19.3)/


Re: Version 0.15 released!

2016-10-01 Thread yuutayamada
> the old ways still apply though nimsuggest ...

Okay. Thanks Araq.


Re: Version 0.15 released!

2016-10-01 Thread Araq
> Is the nim e install_tools.nims official recommended way to use nimsuggest 
> from now? (No more supported nimble install nimsuggest?)

`install_tools` is for the `tar.xz` based release. When you build from github, 
the old ways still apply though nimsuggest in particular has a 
`compile_without_nimble` script because nimble doesn't work well with packages 
that depend on the compiler package.


Re: Version 0.15 released!

2016-10-01 Thread Kerp
Very awesome! I will enjoy my continued learning of nimrod


Re: Version 0.15 released!

2016-10-01 Thread yuutayamada
Congrats new release!

I have a little question about the download page. Is the nim e 
install_tools.nims official recommended way to use nimsuggest from now? (No 
more supported nimble install nimsuggest?)


Version 0.15 released!

2016-10-01 Thread Araq
We finally pulled the plug, new release has arrived. See 
[http://nim-lang.org/news/2016_09_30_version_0_15_0_released.html?ref=forum](http://forum.nim-lang.org///nim-lang.org/news/2016_09_30_version_0_15_0_released.html?ref=forum)
 for the details.