An IDE as an-almost compulsory requirement is not a desirable language trait.
I use PyCharm and Sublime Text all the time as my primary coding IDEs. But I like that I don’t need them, or any IDE, to write complex code in Python.
Hence why I find Java unattractive:
The consensus seems to be that Java was designed to be used with an IDE. Many design choices made the language overly verbose under the assumption that the IDE will generate code for you.
A few concrete examples:
You are expected to make all fields private and use them via accessors (yea, I know, in OOP you should externalize as least as possible - but in Java even structish classes are expected to use the property convention), but there is no nice property syntax. The assumption is that the IDE will generate getters and setters for you, and automatically fold them to hide the clutter.
Want to iterate over a loop? You’ll need to create a for loop with the full type of the iterator object and all that other verbose glue. Again - the IDE will do that for you.
Ridiculously long package names. (unconfirmed - I think I read somewhere that the original idea was to make them look like reversed domain names so that javac can reverse them and grab packages from the internet). Doesn’t matter - just use the classes, and the IDE will add the imports for you (asking you to choose between several options if it can’t decide by itself). …