You'll look back at these comments you're making in 10 years and be embarrassed. Hopefully by then you will have learnt a bit more about being a productive programmer.
The language doesn't matter. Repeat after me...
A good programmer can make good stuff in ANY language. A bad programmer can only make good stuff in their favorite language.
You should stand up, be confident, and realize that it is the programmer that creates awesome software. Not the language.
That's great that you've discovered you're less productive in Java than Scala. Hopefully you can improve that deficiency in your programming at some point.
If you're held back by boilerplate, you're simply not a very good programmer. You need to learn to read and write code just like you read and write english. Yes there's boilerplate, but it's not a big deal. It's not something you need to worry about. Take the sentence I just wrote:
"It's not something you need to worry about".
That is 8 words, 5 of which are boilerplate. The only important words are "NOT" "SOMETHING" "WORRY". Who cares? It didn't slow me down typing out the other ones.
If you're really spending that much time writing code, you haven't yet worked out that programming is 90% thinking about things and 10% writing it.
> To paraphrase a minor celebrity of programming, life is too long to be good at reading every variation of boilerplate.
Learning to read code is just like learning to read English. You can guess most of the words meaning once you know some of them. Personally, I think being able to read code is the best skill you can have as a programmer. Just as a good musician is able to listen to music properly. (I mean 'listen' as in analyze, understand, notate and copy).
The other point IMHO is that scattering your code with anonymous functions points to bad design and is as bad as scattering "GOTO" everywhere in BASIC code. It leads to spaghetti code which is an unmaintainable mess.
> I have been writing Java since I was 13. I am 23 now. I have been paid for code written in C#, Java, JavaScript, PHP, F#, and Python.
Woah! You're 23? I bow down to your knowledge and wisdom ;) (I started programming before you were born).
> I am quite certain that I would be vastly more productive if the language wasn't consistently getting in my way
Again, then you're doing something seriously wrong. If you're spending more than 25% of your time typing out code, you're doing something very very wrong.
If your bottleneck is the language, there's something seriously fucked up with the way you program. As a programmer you should be primarily using your brain, to solve problems. Then you take a few minutes to splurge that all out by pressing some keys on a computer.
> and a bigger problem is that more than any other language I'm familiar with Java suffers from the problem of not being able to see enough ideas in a given amount of source code.
This is not an issue with Java. It's an issue with the programmer. How are you going to cope with assembly language listings? Blame assembly language?
I think it is. If people haven't learnt yet that the single most important skill you need as a programmer is being able to read any code, in any language, and take a good guess at what it does, be able to hold abstract programming concepts in your head, and match them up to random code listings you have never seen before....
Before you can write code, you need to know how to read it.
The language doesn't matter. Repeat after me...
A good programmer can make good stuff in ANY language. A bad programmer can only make good stuff in their favorite language.
You should stand up, be confident, and realize that it is the programmer that creates awesome software. Not the language.