I have felt this for quite a long time and after multiple events that have happened in past, I have come to the conclusion that java should not be the first language of anybody who intends to learn programming. Even the regular java programmer should take their time off and code in some other language once in a while.
Almost every year I am asked clarifications related to this statement in many different forms.
Why am I saying this. In last many years, I have run a programming competition for the employees of the companies where I have been working in. These are individuals with significant experience in programming. We generally allow people to code in C/C++ and Java.
Most of the problems that we design for these competitions have a standard statement written in them.
The input is read from standard input till EOF and the output should be written to standard output.
Almost every year I am asked clarifications related to this statement in many different forms.
- My program reads from a file standard-input.txt and writes to standard-output.txt
- My program reads one line at a time and then you have to run it again
- Standard input doesn't have EOF
Almost always these clarifications come from experienced Java programmers. This leads me to believe that people who start programming in languages that have extremely rich set of libraries forget the basic constructs of language, programming and operating system. These are some basic constructs that I would expect everybody would know Even otherwise, it is just a simple google query away. Since most of these people are experienced programmer, their presumption is that the question must have a typo and then don't bother looking it up.
There, it is off my chest now. I can breathe properly.