I've historically always tried to stick to one or two big languages, because as soon as I start deviating even for a week, I go back to my primaries and find that I, humiliatingly, have forgotten things that anyone else would be completely incapable of forgetting. Now, I'm going to be learning assembly, since that kind of thing falls in line with my interests, and I'm concerned about forgetting big chunks of C while I learn. I already often have the standard open in a tab constantly despite using C since 2012, so my question is, how do you guys who are fluent in multiple languages manage to remember them? Have you been using both for almost forever? Are you all just mediocre in multiple languages rather than pro in one or two?
(Score: 2, Informative) by zsau on Monday April 07 2014, @11:51PM
By day I program in PHP, SQL and Javascript; by night I program in Haskell and (at times) TeX. I can assure you that a function definition or an if condition is nothing alike in the PHP and Haskell (although it's possible to do functional style repetition --- that is, map and fold).
But even if this kind of stuff was the same, there's the fact that in PHP you want iteration for best performance; in many functional languages, you want tail recursion; but in Haskell iteration is bizarre and tail recursion will exceed your stack space unless you use a non-lazy operator so you use foldl (fold left: a non-tail recursive function).
So I think you do need to know what language you're programming in. This will generally only come with experience though (for me). If you read up on a new language, they might tell you the gotchas (like some of the implications of laziness in Haskell), but I never remember them at that point. It takes time to consolidate the knowledge.