
Nim partners with Status.im - dom96
https://nim-lang.org/blog/2018/08/07/nim-partners-with-status.html?ref=hn
======
ilaksh
Nim is still the best language I know of in terms of clean code, speed,
metaprogramming, FFI, etc.

And I think a sharded and/or light client/browser for Ethereum could actually
replace banking and potentially a ton of other applications if it becomes
popular. The trick will be all of the competition in terms of clients.

Rather than Dapp browsers I would like to see a lightweight mobile client
library and server combo that would allow me to just build a freestanding app.
Maybe just a lightweight client rather than an actual node. Or maybe have a
way to install the ethereum node server only if it's not already there.

But with when sharding actually comes online I am very hopeful that Ethereum
will blow up. So I may buy some more Ether tonight.

~~~
k__
I'd wish there was a Rust with Nim syntax, haha.

~~~
creatornator
I suppose something close might be OCAML or Haskell, since they have similar
type safety to Rust (whose syntax is loosely based on OCAML from what I
understand) but have some nice features that Python and Nim use like list
comprehensions and generators, lazy evaluating, etc. But also with Rust macros
you can sort of make your own sub-DSL's which add some of those features.

~~~
k__
Yes, I know about the ML syntax languages, they are pretty cool, but Rusts
unique selling point is the borrow-checker. Getting GC style code without
runtime overhead.

------
partisan
This is great news. Nim (and the team working on it) deserves much support and
praise.

It is a language that enables C/C++ programmers to be more productive and
makes performant programming approachable for beginners as well.

------
sdegutis
This is great news Dominik. I remember speaking to you guys in your IRC
channel a few years ago about Nim, and you all answered my questions and
criticisms very professionally, and I really liked the direction you have all
taken with Nim. This post is a good reminder to write something fun in it
tonight. :)

------
gooseus
Way to go team Nim!

I was dabbling in this community almost a year ago before being distracted by
work/life, very fun and supportive.

Still enjoy wearing my Nim t-shirt and look forward to returning to some
dabbling in the (hopefully near) future.

------
prideout
I've played with Nim, I think it's great and deserves more attention.
Especially in the scientific computing and gamedev communities.

It has Python-like terseness, static typing, and simple C interop.

------
ankitbgupta3
Amazing. Interesting to see programming language teams getting together with
web3.0 teams.

------
CharlesW
Nim is new to me and I'm missing the "why" of it. From the website, I'm
getting "we like Python but wanted to compile to native code and JavaScript".
Is that fair?

~~~
dom96
That's why I started using it.

But Nim is much more than just this, it's more like "We like Python, but we
also like static typing, efficient and dependency-free programs, super easy
C/C++ FFI and metaprogramming. We also like to write all our software in the
same programming language so we compile to JavaScript" :)

~~~
ilovecaching
This is literally Go, save the fact that it compiles to WA instead of JS.

~~~
kevin_thibedeau
> This is literally Go, save the fact that it compiles to WA instead of JS.

Except Nim compiles to C and JS, no official WASM yet (though you can
Emscriptenize the C output). Nim has macros, generics, inheritance,
exceptions, deterministic GC, and more. Otherwise, yeah, exactly the same.

~~~
ilovecaching
I was responding to the comment... the things they mentioned are available in
Go. You're taking my comment out of context.

------
mlevental
very cool. hopefully you guys take off. i love python for being productive but
static typing and easier distribution (compiling down to binary) are killer
features for a language with similar semantics/expressiveness.

------
gregn610
Is there a transpiling / migration story for a python code base into Nim? I
briefly looked at Nuitka to get to a dependency free binary from python but
this could be another approach.

~~~
dom96
There is some experimental stuff, py2nim for example:
[https://github.com/metacraft-labs/py2nim](https://github.com/metacraft-
labs/py2nim)

------
FridgeSeal
That’s awesome, congratulations Nim team!

------
Nimitz14
Awesome!

------
gammateam
So nobody is going to comment on why Status.im even exists? 100m dollars for
an "open source mobile dApp browser" and messaging system, when dApp browsers
are dime a dozen, open source, and pretty good!

Trust Wallet any one? Toshi?

Hopefully all those bucks can be used to propel development of other things,
like with Nim and a real sharding ecosystem.

~~~
yenda
The two wallets you mention are not running an ethereum like client on the
phone and are therefore depending on third parties to get access to the
ethereum network.

~~~
d357r0y3r
Running a node on a phone sounds like a horrible idea. Why would this be
desirable?

This is a solved problem and I never understand why people keep going back to
it. Host a node or use a public node. Use a local wallet to do signing and
depend on the public node for RPC calls. The vast majority of users and
clients do not need to be dealing with Ethereum nodes on their own devices,
they just need good key management systems.

~~~
noman-land
It's desirable for a couple reasons. Firstly, the node enables whisper, which
is a p2p messaging protocol. You can't do p2p messaging with a public node,
and nearly zero users will host their own nodes.

Also, public nodes can be DOSed or otherwise taken down. They can invisibly
filter the requests they receive. Some jurisdictions could have the nodes
completely blocked.

The point here is to build a fully p2p system, so running an on-device node is
an attempt to do that. That doesn't mean that public nodes can't also still
exist.

~~~
gammateam
Care to elaborate on how they intend to accomplish this?

This seems to have predictable limitations, and the last people I talked to a
month ago said it killed their batteries. Surpriseeeeeeeee or not really?

~~~
michaelsbradley
That's part of the motivation for developing a new Ethereum client, in Nim.
The theory is that the executables produced can be more readily tuned
according to various device profiles, e.g. desktop clients, mobile clients,
beefy server clients, and so on.

