I would love to know your strategy. But I dont think the problem is paralysis by analysis. Each language listed by me gives something unique other than Python. My challenge is more about evaluating a language without understanding deeply what it offers. It would ideally be nice to learn something interesting which also has job opportunities. But jm willing to learn more than one for personal growth and for job opportunities.
For personal growth, each of the following will 'expand your mind'. In no particular order:
* Common Lisp, Clojure, or Scheme / Racket (macros[0], functional programming, and unique and minimal syntax)
* Assembly (about as low-level as you can get, so you will really understand what's going on when programs run)
* Prolog (logical programming)
* Forth (stack-based language)
* APL or J (array-based languages and wild syntax)
* C (very similar to other languages but you'd learn pointers and manual memory management, and more open-source projects use C than any of the other languages I've listed, so you'd be able to contribute to projects you find interesting)
And probably Haskell and maybe Erlang but I don't know enough about them.
Other languages have wisely added macros, but I don't know enough about them to suggest any.
The other languages in your list won't expand your mind much after being familiar with those.
[0] The sort of macros I'm referring to aren't simple text-substitution macros as in C and C++. I'm referring to "syntactic macros", which kind of let you add new features to the language. https://en.wikipedia.org/wiki/Macro_(computer_science)#Synta... is very much not the best intro, but I don't have better links handy.)
Comments
I wonder if it would be wise to work on those questions rather than add to the considerable pile.
(If you want an idea of an oblique meta-strategy contact me)
I would love to know your strategy. But I dont think the problem is paralysis by analysis. Each language listed by me gives something unique other than Python. My challenge is more about evaluating a language without understanding deeply what it offers. It would ideally be nice to learn something interesting which also has job opportunities. But jm willing to learn more than one for personal growth and for job opportunities.
For personal growth, each of the following will 'expand your mind'. In no particular order:
* Common Lisp, Clojure, or Scheme / Racket (macros[0], functional programming, and unique and minimal syntax)
* Assembly (about as low-level as you can get, so you will really understand what's going on when programs run)
* Prolog (logical programming)
* Forth (stack-based language)
* APL or J (array-based languages and wild syntax)
* C (very similar to other languages but you'd learn pointers and manual memory management, and more open-source projects use C than any of the other languages I've listed, so you'd be able to contribute to projects you find interesting)
And probably Haskell and maybe Erlang but I don't know enough about them.
Other languages have wisely added macros, but I don't know enough about them to suggest any.
The other languages in your list won't expand your mind much after being familiar with those.
[0] The sort of macros I'm referring to aren't simple text-substitution macros as in C and C++. I'm referring to "syntactic macros", which kind of let you add new features to the language. https://en.wikipedia.org/wiki/Macro_(computer_science)#Synta... is very much not the best intro, but I don't have better links handy.)