Scala Native would win over Rust and Go, which are too low-level. Scala Native would win over python/ruby because of the ease of deployment (e.g. compile to target CPU) and static typing.
However, Crystal probably wins over Scala Native...
Scala Native would win over Rust and Go, which are too low-level. Scala Native would win over python/ruby because of the ease of deployment (e.g. compile to target CPU) and static typing.
However, Crystal probably wins over Scala Native...
Other native languages should be able to do the same in the near future (I hope).
https://ocaml.github.io/ocamlunix/
And it has an eco-system that goes all the way back to 1996.
Can we compile code into a single binary and run it on a user's machine without any extra installation? Does it work with Windows?
OCaml can also compile to bytecode, usually used on the REPL or just to speed up the development cycle.
Your single binary might depend on glibc by default. If you want a pure static library then you need to customize the toolchain to use another C library like musl.
And yes, it does work on Windows.
For example:
1. Rust is on a lower level of abstraction than Go is. Because, in Rust, when we use strings we have to think whether we should use `String` or `&str`. In many types of applications, we just want a string. We don't care which type of a string we need. It's too much detail.
2. Golang is on a lower level of abstraction than, say, Ruby on the aspect of error handling. Maybe, for a command line tool, I don't want to explicitly handle exception on every statement. I just want it to exit if an error occur. It's too much detail.
3. Python can be thought of as being on a lower level of abstraction than Ruby. For example, in Python, there are 3 ways of getting the first element of an array or null (https://stackoverflow.com/questions/363944/python-idiom-to-r..., well, which one is better?) In Ruby, the function is already encapsulated in main library (e.g. `.first`), and people don't have to care of this kind of detail.