Ask HN: Is there any lanuage which satisfies my need?

2 points by mangatmodi ↗ HN
I have the following requirements 1. I need to work with complex data, so I need easy data transformation constructs (map, filter, lambdas etc.) 2. I need strongly statically typed language, as in my experience they are easier to debug, read and maintain 3. Binary compilation

I have worked with Go, Python, Scala and Kotlin, and seems now all of them fail somewhere.

Scala and Kotlin don't compile to Binary and my team doesn't want to maintain JVM dependency

Python is dynamically typed

Is C++ or any other language viable?

8 comments

[ 2.8 ms ] story [ 30.9 ms ] thread
Try Rust
Rust looks promising. I will try to see how good is tooling and dependency management
There's oodles of languages like that. I recommend Nim.
How is tooling and STL maturity of Nim?
Swift has all the same shit as Kotlin but without the JVM.

By the way, Kotlin does have support for compiling to binaries now though there are probably some caveats.

Have you tried Typed Racket https://docs.racket-lang.org/ts-guide/quick.html ?

It's JIT-compiled, but it's doesn't use the JVM. And you can create an executable of your program if you wish.

It's generally faster than Python but not as fast as C. YMMV. https://benchmarksgame-team.pages.debian.net/benchmarksgame/... The comparison use the (Untyped) Racket instead of Typed Racket. Typed Racket usually has a longer compilation time but a faster run time, because it has more optimizations. YMMV.

If the reason for static typing is debugging, then what matter is ease of debugging, not static typing. If the reason for binary compilation is speed and/or easy deployment, then what you need is speed and/or easy deployment not binary compilation. They smell like XY problems. [1] To the degree they are XY Problems, Erlang is worth looking into. Pattern matching against variable input is what it does with decades of real world business critical deployment at vast scale. It doesn't look like other languages because it isn't. Good luck.

[1]: https://en.wikipedia.org/wiki/XY_problem

I am aware with XY Problem. You are right about binary compilation for easy deployment (Though I believe Java is faster than Go, so the speed is not reason).

But static typed provide a plethora of other advantages. Erlang is one of the languages I had always in my checklist but never got into.