Any language that can be compiled is by design suited for IDE tooling. Think about it, if a compiler can analyze the code then so can an IDE.
An example of a language that can't be analyzed by IDE tooling is the English language. Case in point the English language can't be compiled either.
The parent poster is basically saying that there are languages that are so complex that to even program in these languages you (usually) need IDE tooling to assist you. C++ and Java are good examples of this.
Naturally it can, but it will always be an half baked experience, which is why languages like Python and Ruby are still miles away to replicate Common Lisp and Smalltalk development experience.
I rather prefer C++ and Java than any of those "I don't need IDE" languages.
I have been using IDE based languages since I became a Borland customer around 1991, and while XEmacs allowed me to survive without IDEs to the point that I still remember most of my way around ELisp, I don't miss those days.
If you were designing a programming language with IDE tooling in mind, what are the things that Common Lisp and Smalltalk do to better assist IDEs than Python/Ruby?
Basically ability to see the language AST at all time, do time checking with broken code, incremental compilation, REPL and IDE editing experience is fused together.
IDEs do a good job with dynamic languages too, if you document your types and function definitions it will provide you same features as a static language. You need to avoid abusing eval or similar constructs like p[kind+"_name"].
Yes, just to add the information in case someone is wondering, for example PHP has "magic" functions , I do not use this feature but is used by ORM libraries to make it easy to access table columns. But using PHPDoc I can specify the existence of this columns and then all the warnings are gone and I can get auto-completion help(this helps a lot to improve coding speed and can catch errors if you put a type in a table column name.
This will not work for stuff that is random object from a JSON but so far I never worked with random data.
An example of a language that can't be analyzed by IDE tooling is the English language. Case in point the English language can't be compiled either.
The parent poster is basically saying that there are languages that are so complex that to even program in these languages you (usually) need IDE tooling to assist you. C++ and Java are good examples of this.