19 karma · joined August 14, 2014
Kotlin has a really nice and simple syntax compared to Scala, which has way to many features.
I personally think that Ocaml is really good at this, because I started converting the Scheme examples from the PLAI book to Ocaml and it's just felt right(maybe because I'm not fan of the scheme syntax).
You could also use mypy(https://mypy.readthedocs.io/en/latest/index.html) which is a static type checker for Python.
You are right, you can use tests to prove a function if - the function has very limited arguments and - the function is pure or does very limited amount of state change(side effect)
Generally speaking tests are not the right tool for proving program correctness.
I think random testing is a good way to get almost exhaustively tests.
For example proof assistants(like Coq, Agda, Idris, hol) are capable of proving correctness of a program.
For example: int addOne(int input) function would need test cases for every number in the int type, which would be 2,147,483,647 * 2 + 1 test case.
2) You can't prove correctness with tests. You can only state that it ran correctly for that test case(s).
For me the bad part of "red" functions is that testing is harder for it or I just suck at it.
Actually Eloquent Javascript and sometimes Programming -- Principles and Practice Using C++. I found the C++ book a little bit boring and maybe i wont read it trough.
I started doing this, because I always liked Dart better than any other programming language and because at that time Dart didn't have any HTML5 game engines.
I also developing it, because I really like doing it and because I want to make a living out of this.