>>25780 (OP)
> necroing the shit out of this, because languages are my fetish
TL;DR
> go erlang or julia
As other anons have said. What you want to do sounds a lot like declarative programming.
I'm kind of suprized nobody said prolog. But then again not, because wrapping ones head around it can be a major pain in the ass.
> haskell
Has been mentioned numerus times. It enforces correct static types and has the most complex type system that is actually useful. in contrast to c++ and scala which can be just as labourious to use, but that's due to them being badly designed - less due to their power
Fully understanding what haskells inferencer does at compile time is as much work as learning two other programming languages and needs decent a decent foundation in theoretical comp-sci and a very math-oriented mind.
> std ML and ocaml
Also statically typed but less complex in design.
Haven't used them myself, so i can't say much on them.
Ocaml has been used sucessfully for games.
All languages below are dynamically typed and probably better recommendations to anyone without a boner for theoretical comp-sci :
> common lisp, scheme/racket, clojure
The functional languages, all others are measured at.
Medium learning curve, insanely powerful.
Maros - the feature that makes beginners heads hurt - can be ignored until you want to use them.
This is not true for the static type systems above which need to be understood to get your shit compiled at all.
My fav languages for everything that doesn't have tight correctness criteria. pros mitigate by implementing ad hoc static types
Due to OP probably not needing the power lisps provide, there are more convenient alternatives.
> erlang
Very easy to learn.
Very cleanly designed.
Does not need a lot of experience to produce code that is easy to read and easy to reason about.
AFAIK it was used to build the server side backends for MMOs, library support for gamey things ( graphics/sound/input ) is abysmal though. On the other hand SDL bindings are available for everything down to wrist watches.
> julia
Is a lisp dialect that hides those nasty parenthesis behind a python like syntax.
Was developed by statistics/data mining guys who were sick of R.
The community is likely to be similarly minded to OP.
What makes it interesting for games is that it is :
- fast
- can very easily integrate C libraries ( experimental support for C++ )
- has bindings and tight integration for LAPACK out of the box ( think AI, physics engines)
once they get their concurrency shit stable it could easily be a good option for commerical grade games.
/autism