4 ms·
> One aspect of this culture which bothers me in particular is the idea that learning programming languages is unconditionally good. Stated exactly like that,
by fouric 5y ago
> One aspect of this culture which bothers me in particular is the idea that learning programming languages is unconditionally good.
Stated exactly like that, yes, that's probably not a good idea.
Stated like "learning new programming languages that are significantly different than the ones you already know is unconditionally good" - that's very close to truth.
The languages you named are Objective-C, C++, Java, C#, and Python. From my perspective, those languages are so similar as to be almost the same.
Learning Red, Io, (a) Lisp, Prolog, Smalltalk, Curry, TLA+, Coq/Lean (or any other theorem prover, actually), Erlang, or (a) FORTH will actually give you an experience that's significantly different than anything else you've used before, with accompanying new ways of thinking that you can apply to your other languages and projects.
- exdsq 5y ago100000%. As I mentioned in another thread on this post I was going to take a look at C++ again and since then started playing about on a little game. Almost immediately I approached the problem like Haskell and started passing data as GameState{} structs between pure functions. Using other languages for enough time has made me avoid global/mutable data like the plague and I _think_ I'm a better person for it.
- gilch 5y agoI'd add an array language like APL or J to that list. Idris is worth mentioning, but maybe Curry+Coq cover that space. Maybe Icon too. Concepts, Techniques, and Models of Computer Programming [1] with Mozart/Oz covers a lot of ground by itself. [1] https://www.goodreads.com/book/show/772585.Concepts_Techniques_and_Models_of_Computer_Programming https://www.goodreads.com/book/show/772585.Concepts_Techniqu...
- blub 5y agoThat may be, however I'm not looking for experiences when learning software engineering topics. Instead I want something that fits together with my existing knowledge framework and delivers significant benefits. Programming languages are table stakes and they compete for attention with the things which do matter in a project, like the social aspects and project management, team skills, development ecosystem and domain knowledge among others. Having for example deep knowledge the kernel would be more useful to me than all of the languages in your list combined.