There are things you can not realize instantly but you need time for your brain and body to realize.
What do I realized?
Let me explain a little bit.
By mental stack I mean all the things you have to load in your brain (code, exception, configs, etc) so that you can be productive.
Wow, that is fine...except for the case you have a large program. In Java you have strict types and it's medium difficul when you start a program but it keeps to be that way no matter how big the application grows.
Wow, that cool....but what if you need to write some test units? Or if you need to make other automated tasks?
You need tests and testing. You can not have a big application with a decent quality without some tests.
But wait! How can you simulate a real browser enviroment in console? Well...you can not :(
Here is what Cliff said about mental stack.