
Show HN: Dali – A pure-Nim indie assembler for Android dex and apk files - akavel
https://forum.nim-lang.org/t/4840
======
dom96
Fun off-topic fact: the Nim forum that this announcement is hosted on is
written in Nim and completely open source, give it a go:
[https://github.com/nim-lang/nimforum](https://github.com/nim-lang/nimforum)

~~~
the_pwner224
Interestingly the same seems to be true for D, another language in a somewhat
similar space to Nim. [https://forum.dlang.org](https://forum.dlang.org) has
source code hosted at
[https://github.com/CyberShadow/DFeed](https://github.com/CyberShadow/DFeed)

~~~
dom96
Another thing to note: you will not find any JavaScript in Nim's repo. That's
because Nim compiles to JS, I'm actually using an SPA framework written in Nim
for most of the forum.

------
xrd
Looking over Nim, it says it is a statically typed language, compiles to
C/C++/JavaScript.

Is this interesting for Android developers, i.e. would I have a good reason to
consider this over Kotlin or Java?

When I see things like Phoenix/Elixir the language makes me consider
evaluating it for usage instead of React/JavaScript. But, I don't immediately
see the reason I would invest in this language. What am I not seeing?

~~~
captainbland
I think the following kind of sums up its appeal to me:

* Compiled language, sits in a similar kind of language category to Go where it compiles to a native binary but also has a GC, so it sits in that kind of performance ballpark

* But has generics

* A powerful AST based macro system, which gives it a kind of lisp-like meta-programmability. This means you can create DSLs and other tools which compile down to native code.

* Python-like syntax

But yeah, this is like one of the first steps that you really need to do
effective development on Android. It's an impressive project, but it's not
going to bring Android developers flocking from Java/Kotlin. However, it is
quite cool for existing Nim developers who'd like to try targetting Android.

~~~
giancarlostoro
Go has certain things out of the box that I think attributed to it's success:

Built-In libraries out of the box for web and other things which are useful.
The out of the box web server isn't Django, but it works, and it's clear what
it's doing under the hood. Also all the code is documented as well. I think if
Nim could have a usable web server in the std lib (same with Rust and D) it
would be a game changer. It doesn't have to be ultra fast, just good enough to
be production ready (SSL and other secure things, and make setting up a static
directory easy, numerous static directories).

The first thing I test when I try any language is the web frameworks, it tells
me how expressive / powerful the language can be. This is why I always loved
CherryPy from Python, because I can mentally map classes, objects, and methods
to http routes without too much mental overhead. If I need to get crazier I
can pull in a routing library as well.

~~~
dom96
> Go has certain things out of the box that I think attributed to it's
> success:

Yes, Google's backing. :)

> I think if Nim could have a usable web server in the std lib (same with Rust
> and D) it would be a game changer.

Nim does have an HTTP server in its stdlib[1], but I wouldn't go as far as to
say that this is a game changer.

> The first thing I test when I try any language is the web frameworks

You should give my web framework, Jester[2], a try :)

1 - [https://nim-lang.org/docs/asynchttpserver.html](https://nim-
lang.org/docs/asynchttpserver.html)

2 - [https://github.com/dom96/jester](https://github.com/dom96/jester)

~~~
giancarlostoro
I may have to, now that I'm at a new job where I only do Java, I feel like I
can experiment with other languages more since I dont have to keep juggling
between front-end and back-end code. Does it handle sessions and such? Also
not familiar with database driver support for Nim.

------
carapace
(Blank page with JS disabled.)

~~~
dom96
yeah, sorry. On our todo: [https://github.com/nim-
lang/nimforum/issues/141](https://github.com/nim-lang/nimforum/issues/141)

~~~
carapace
Cheers!

(Really, just a <noscript> saying "Hey, turn on JS for us." would be more than
enough to make me happy, FWIW.)

