I have code, for work, in: FoxPro, Delphi, Python, VB, VB.NET, C#, F#, Obj-C, Swift, Rust, Sql, Js.
I rewrite apps and codebases, and move them. I rewrite the same stuff many times, and make my own pseudo-ORM is my main thing when learn new languages.
Absolutely I'm more productive in some Langs than others:
Amazing at:
- Fox, Delphi, Python (#1), F#, Swift
Average, low:
- VB, C#, Obj-C, Js
Barely move:
- Rust (this is my last lang, and also doing a programming language that I have sketch in python, swift, f#. The task hit against the hardest and weakest parts of rust).
I look at C, C++ and my instinct tell me I will suck forever at them. Same Haskell. Ocalm? I will fly. Lisp? Nope, that crazy stuff never click. Kdb+? I don't know, maybe.
I don't buy the meme "the language not matter, is the people" because languages are made FOR the people. And some stuff click on you or not.
That is the reason APL is a thing for some.
I briefly studied French in college, and to say it "didn't click" would be an understatement. It was the worst grade I got in any class ever, by far. And yet, even the dumbest French person is fluent from when they were just a kid. It's probably not the case that French is simply impossible for some people to learn. Something else is going on.
Couldn't it be that we simply haven't figured out a good way to teach programming languages yet? Software is still generally "go read the reference manual online and you're good", but most other mature fields have moved beyond that. Boeing is in hot water this month in part because they essentially used that as pilot training for the 737 MAX, and it's clear to everyone that this is not an adequate way to learn a complex new technical tool.
Unlike you, I don't find Swift particularly productive (and I've written tens of thousands of lines in it!) -- but maybe with the right training, I would.
I also add that you need to explore that languages to become talented.
I'm pretty certain to be an average developer, at most. Not because low self-esteem, but after 20+ years I have know people above and below.
BUT, the use of many paradigms have help me to look like much better than if I have been stuck on a single lang (or paradigm).
I credit, by intuition, to FoxPro in how I tend to be better on RDBMS work. Delphi, for how build UIs and have certain understanding of low level. And so on.
Every new lang/paradigm make you better, and that lessons carry over.
One of my favorite anecdotes was someday I was stuck with C# solving a task, that even with libraries can't get.
I think to myself "let do that on python". I solve it in no time. I port it to C#, and almost get the same line count!
I consider "talent" as the amount skills you have at your disposal. I think a average idiot will be more productive the more broad is their horizons ;)
A good example to strengthen this argument is Petr Mitrichev who has won numerous competitive programming competitions and his language of choice is... Pascal https://en.m.wikipedia.org/wiki/Petr_Mitrichev
Then why is it that so many good developers who have learned these more esoteric languages cannot stand going back to Java etc?
Like, it wouldn't even matter to me if PHP is a good language if I have to sift through thousands of comments of "I did this and it worked" without any description of why it worked, why it is better than other ideas, or what problem it is even meant to solve.
They write a mini-lisp in Java and obfuscate it. I've been on project where this had happened.