Re:Thriving in a Crowded and Changing World: C++ 2006–2020 [...
by exdsq on Friday July 16, 2021 @02:35PM
(#27859600)
100000%. 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.
Re:Thriving in a Crowded and Changing World: C++ 2006–2020 [...
by gilch on Monday July 19, 2021 @02:08AM
(#27879726)
I'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_Techniqu...
Re:Thriving in a Crowded and Changing World: C++ 2006–2020 [...
by blub on Tuesday July 20, 2021 @02:28AM
(#27890655)
That 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.
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.