I'm learning Python in emacs after learning Matlab with its default editor and environment. I miss the visual file trees and the easy visual debugging, though I haven't completely gotten used to the emacs way of doing things yet. It does strike me that learning the emacs way is harder.
Doesn't emacs really make more sense for a low-level language, though? A programmable editor seems like it would be more helpful with more code and more code repetition. Maybe it's because I'm starting with Matlab/Ruby/Python, but I really don't get why emacs and vim are so awesome.
I'm following the advice of the sages and learning emacs anyways. But mostly it's because I figure the sages are smarter than I am than actually seeing the need for it.
Also, debuggers are REALLY useful when you're learning a language for the first time. I shudder to think what my last machine learning project would have been like without a debugger. Maybe when I'm an ace, I can "just write good code and tests". But I'm not an ace, I'm a newb. I like seeing what my variables are doing and trying out commands that I think might do what I want them to do.
I relied on a visual debugger (in Visual Studio) for much of my undergrad. In grad school (including now), I rely on gdb and printf/cout statements to debug my code.
I find printing the value of variables, and saving the record to a file, a valuable means of debugging. Instead of only knowing the current state, I can construct a picture of the entire execution of my program. Gdb also lets me do most of the things I did in Visual Studio. Most importantly, it tells me the line where the program crashed, and if I need to, it can tell me the state of variables.
Notice this has nothing to do with the editor I use (although I use vi). Visual Studio is an Integrated Development Environment - IDE. Once you learn enough Unix tools, Unix itself becomes your IDE.