Post by iseahound » 10 Nov 2018, 13:05
I agree Scala has some very nice syntax, and compiles to the Java Virtual Machine, so you're essentially writing Java.
I'll throw out Haskell for a good taste of what mathematicians prefer, Coq if you are interested in proofs, Common LISP for its homoiconicity, and maybe get familiar with ML type languages just because lots of textbooks reference them.
I'll disagree with Ruby and Python being Functional in the truest sense of the term - they don't support pattern matching natively, and rely on "hacks" to get the desired result.
For most people, a bit of C, lots of Python, some Javascript exposure, Haskell (something functional) and a choice of bash/cmd/PowerShell seems to be fine. But a programmer should always choose the right language for the job. Python programmers are beginning to feel trite, more than once I've stumbled upon the statement "if you can do it in Python, then why not do it in Python?".
Finally at some point a programmer might ask, why choose a language at all? It's all computation, and there should be theories of computation, independent of whichever language is chosen. In other words, the language chosen should express the concepts a programmer wishes to express with ease. When one starts to feel they're fighting against the language, the syntax, and its constructions, it's time to use a different language. At this point, they brush off their mathematics, and learn some type/category theory.
I agree Scala has some very nice syntax, and compiles to the Java Virtual Machine, so you're essentially writing Java.
I'll throw out Haskell for a good taste of what mathematicians prefer, Coq if you are interested in proofs, Common LISP for its homoiconicity, and maybe get familiar with ML type languages just because lots of textbooks reference them.
I'll disagree with Ruby and Python being Functional in the truest sense of the term - they don't support pattern matching natively, and rely on "hacks" to get the desired result.
For most people, a bit of C, lots of Python, some Javascript exposure, Haskell (something functional) and a choice of bash/cmd/PowerShell seems to be fine. But a programmer should always choose the right language for the job. Python programmers are beginning to feel trite, more than once I've stumbled upon the statement "if you can do it in Python, then why not do it in Python?".
Finally at some point a programmer might ask, why choose a language at all? It's all computation, and there should be theories of computation, independent of whichever language is chosen. In other words, the language chosen should express the concepts a programmer wishes to express with ease. When one starts to feel they're fighting against the language, the syntax, and its constructions, it's time to use a different language. At this point, they brush off their mathematics, and learn some type/category theory.