4 ms·
Ask HN: Is there any lanuage which satisfies my need?
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?
- fiedzia 7y agoTry Rust
- mangatmodi 7y agoRust looks promising. I will try to see how good is tooling and dependency management
- _0ffh 7y agoThere's oodles of languages like that. I recommend Nim.
- mangatmodi 7y agoHow is tooling and STL maturity of Nim?
- rowathray 7y agoSwift 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.
- gus_massa 7y agoHave you tried Typed Racket https://docs.racket-lang.org/ts-guide/quick.html 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/fastest/racket.html 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.
- brudgers 7y agoIf 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 https://en.wikipedia.org/wiki/XY_problem
- mangatmodi 7y agoI 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.