But sublime, emacs and vim all support autocompletion (through ensime) so it is not really an advantage of intellij or netbeans.
I was a vim purist for a long time, but even in Python, where IDE functionality is much more limited, I can't honestly compare the two experiences and say I'm not much more productive in PyCharm w/vim plugin. I can't fathom how anyone writes Java/Scala in plain vim, and Ensime is a cumbersome mess.
IDEA also sorts imports alphabetically, separates system modules from non-system modules and removes the names that are no longer used if configured properly. How much time does someone spend doing this by hand (e.g. just simply reading through the list of them)?
IDEA also allows to automatically make the code PIP8-ready by using Ctrl+Shift+L.
I can refactor the name of the function with a basic shortcut, and I am 100% sure, even if it touches >5 projects at the same time - IDEA will replace them correctly. That could be done by a simple find-and-replace, but then I would need to keep my attention on whether that was a correct replacement. How many minutes a day do you spend trying to keep yourself aware of that?
There are literally so many details in working with moderately-complex Python code (e.g. type hints or lack of them; function arguments; unresolved names) that IDEA basically equals to a constant number of hours I save every day.
I am not going to argue - most of what I mention could be solved by automated cli-based tools; and that's exactly what IDEA does under the hood. By it keeps it all together in one place on my screen right now; here, rather than in a set of disjoint interfaces.
I literally do not get why people still use vim/sublime/notepad++. That's like cooking with a blunt knife. You may and will cook as good. But is it not justifying your laziness to go out and buy a proper knife?
Too many discussions on this subject are just based on intuitions and gut feelings, really amazing if you consider how much of an exact science IT is otherwise. I hope there will be more of this kind of fact based research in the future. I can think of a few more subjects, e.g. productivity gains by switching from an imperative to a functional language.
Yes you do. That's the point of the article - we should apply basic scientific method to programming (that's what distinguishes us from magicians).
> There is also no real hint into why getting this error...
This part of the story is better explained here https://blog.buildo.io/http-routes-at-buildo-1424250c41d3
"Spray-routing uses a cool and crazy DSL to write routes in Scala, based on the magnet pattern. Despite it being all nice and flexible, it’s also extremely frustrating to debug."
From, "What's Wrong With Routes?" https://blog.buildo.io/http-routes-at-buildo-1424250c41d3
There is also no real hint into why getting this error: "Too many arguments for method parameters" is inherently bad. I assume that it is not informative enough and that you'd prefer getting a type error instead ? In that case it is not the quantity of error but the quality of error that is an issue.