I use Perl and CoffeeScript. I like theirs expressiveness. For Perl I don't like lack of function signature and syntax overall. In case of CoffeeScript, which syntax is perfect, the JavaScript is limitation. Its just web language, not general purpose, even that some tries that (and I use atom). I want to learn general purpose language to stick with.
Thanks to scripting languages (Ruby, Python, Javascript) the need for better syntax and features impacted to new languages such as Scala, Clojure, Go. I didn't like time spent in Java, C++ or similar.
So the requirements on new language to learn are:
rich available information (so I can learn from its community, ...)
existing libraries (so I don’t have to DIY)
kind of conservative (so I dont switch in a week)
statically typed and compiled (no thoughts on speed vs code maintainability, less stupid errors, sane refactoring)
First I tried Go. Its language build in Google for Google (software engineering). Even it says its like scripting languages, its not the priority. The build time and simplicity usually both for programmers and compiler is.
Basically Go is C/C++ for Google purposes. As its similar to C, I must say it has the best C-like syntax. Its modern and more less consistent.
fucking explicitness everywhere
multiple returns and function syntax
declare and assign shortcut, variable := 'string' (explicit and concise)
best C-like syntax (no unnecessary semicolons, nice switch, parentheses in if, for)
2 main testing fw are BDD, which is such a buzzword for me, and it doesn't fit into Go's conservative world
has not functional features (like JavaScript)
Don't know what to think about:
explicit error handling vs "index out of bound"
Note: If you want to try it, learn how to use packages on docs, its not intuitive at first.
object oriented (mutable strings, ...)