As a web dev, I use PHPStorm extensively. It is an incredible timesaver not just in terms of basic syntax coloring, but its ability to really understand and diagnose my code. At a basic level, it highlights obvious errors (typos, missing functions, unescaped strings, unclosed brackets) but also actually understands the languages enough to point out less obvious things (hey, in your case statement, it looks like these two cases are doing the exact same thing… did you screw up?). I can ctrl-click on any variable or function and it’ll take me to its definition, no matter which file it was set in. If I need to do a complex find/replace across my entire project, it natively understands regular expressions and does a live preview and mass undo if I fuck up. It has local file versioning, even without Git integration, so that I can easily roll back to a version from an hour ago.
Also, as a proper IDE, it has incredibly extensive support for my entire workflow, not just the code editing part. Need to spin up a containerized web server to test some code? It can do that. Version control? Yup, with a built-in visual merge tool so I can compare my attempted code with my partners’. Need to see what’s different with my local config versus the staging server’s? It can SFTP directly into the server and edit the remote file (none of that vi/emacs nonsense).
With debugging set up, it’s even more powerful, letting me see the state of all the variables at any given time. If I’m writing a new function, I set breakpoints where needed so when the code hits that stage, I can step through it line by line and see how my variables are breaking or how else I’m fucking up. So much better than trying to hardcode error messages into every possible failure mode, or echoing variables onto the screen, etc. Especially in your example, I’d just be able to take someone else’s code and follow the actual interpreter along, one line at a time, to see how it jumps between different functions and classes and the such.
It’d just be stupid (and expensive) NOT to use an IDE. I get it, there’s a certain allure of purity in sticking to basic text editors… I grew up writing my first programs as convoluted batch files using EDIT.COM and COPY CON, and often still do remote login into a server and run a text editor from the shell, but that’s only for quick & dirty fixes (changing a setting somewhere). But it’s just stupid doing that for entire projects.
I don’t think of coding as some sort of challenge where I must write perfect code in pen on lined notebook paper on the first try. It’s just a job like any other, so why wouldn’t I use the tools designed for that job…? IMHO “which minimalist text editor do you use” is the weird programmer equivalent of a macho dick measuring contest, the dev version of “REAL men hunt their own food… naked… and karate chop down trees to make the spears first.”
As for interviews, it goes both ways. Why would I want to work for a company that doesn’t value real-world productivity? You want me to code something for you? Give me an hour with my own laptop, the environment of my choice, Stack Overflow right there, and tell me what results you want. If I can deliver the results, why the hell do you care how I do it? The ability to memorize obscure function names and syntax without recalling documentation, and the obsession with re-inventing the wheel where best practices already exist, are not at all representative of devs who can work well together with other collaborators, write easily understandable/maintainable code, be able to work with diverse client demands and idiosyncrasies, etc.
I’m sure there are amazing purist coders out there like Linus Torvalds or John Carmack, able to optimize the hell out of everything they touch and who can probably write entire operating systems, blindfolded, in assembly, in morse code. For the rest of us, yes please to any tools that make the job easier, more efficient, and more manageable.
And lastly, the increased ease of coding (and the exponential increases in performance, and decreases in price) means that the profession is opening up to a much larger audience. Tech is one of the very few career paths that can still pay a living wage for people without much formal schooling, and part of the reason for that is that we’ve come a long way in ease of use since Java and C++ and Perl and such. IMO this is a good thing, and has profound implications for the relationships between labor, capital, politics, and the environment. It’s a form of power available to anyone willing to sit down and learn for a few weeks/months. Improvements in the toolset are a part of that (Android Studio enabling millions of people to make apps), or even something like Squarespace allowing grandmas to make websites for their pet causes. I wonder what the world will make once a billion Indians and the Chinese get their younger generations up to speed with this stuff.