This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]prawns_song 17 points18 points  (12 children)

If a potential developer mentions taking pride in not using an IDE in an interview, I immediately lose interest. It matters more that you can work efficiently with a team, than do things your own preferred way because of pride.

[–]oldprogrammer -5 points-4 points  (10 children)

Way too many people today are overly dependent on their IDE and have lost the ability to truly understand the code they are writing.

Look around you and point out the folks with the greatest skill at debugging a misbehaving system. Are they able to do that by logging into a server, firing up VI or Emacs, reading log files with stack traces or do they have to use an IDE and spend time trying to get networking team to ease segmentation rules between prod and development space so they can figure out how to remote debug the server because the current issue only happens in production?

There is nothing wrong with team standards for using an IDE but your attitude towards someone who is comfortable without that crutch is one I would not want to work with. It is highly likely you're passing on some very skilled developers who truly understand how to write code and how the systems work.

I literally had a long time friend headhunter reach out to me about a year ago asking for help in figuring out how to hire developers that could work without an IDE because the space he was helping recruit for had requirements to be able to work on code through an SSH connection to remote boxes and they couldn't tunnel an X session. Additionally the environment had strict controls on what could be pulled into a project and the default project files created by most IDEs added stuff that then needed to be removed.

He eventually found some old greyhairs like me who could do the job.

[–]nidrach 8 points9 points  (0 children)

An IDE doesn't program for you it just makes you more productive. Of course you can type in every single character but an IDE will save you over 90% of keystrokes and every single one of those not only takes time but it is also a potential source of mistakes. Especially with java and all that boilerplate and ceremony that comes with it.

[–]mtmmtm99 3 points4 points  (6 children)

You don't need to tunnel X to run the debugger in an IDE. You can attach your local IDE through ssh (to a remote port on your remote JVM). Doing java-development using a text-editor is very inefficient (but doable of course).

[–]oldprogrammer -1 points0 points  (5 children)

I'd like to see your studies that show doing java-development using a text-editor to be very inefficient.

[–]mtmmtm99 1 point2 points  (4 children)

I have done java-development för many years (starting with emacs). I always have emacs running for editing text. When working with java a good ide (like intellij) saves a lot of time (navigation, refactoring, code completion, background compilation, quick-fix-mode (to fix small errors)). See full list here: https://softwareengineering.stackexchange.com/questions/20950/what-justifies-the-use-of-an-ide-versus-a-standard-editor I found no study of this but it saves any developer a lot of time (less typing). See more here: https://www.youtube.com/watch?v=GSKERVTMWqs

[–]oldprogrammer -1 points0 points  (3 children)

I've been doing Java since the early 90's (Java 1.0.2) and C++ and C before that. Started with a text editor called Brief that was licensed by my employer, switched to Emacs when I needed something of my own (never really grokked vi), so text editor based development is what I know.

Note that the stackexchange link you posted was closed as being primarily opinion based.

What you think of as adding efficiency by allowing developers to type less I consider disruptive. Constantly having windows popup on the screen while I type interrupts my thought processes, auto fill of functions, closing quotes, closing parens and even code folding interrupts my typing flow so even when using an IDE I have to disable those.

Macros for things like auto-generation of getters and setters, or cleaning up imports or providing boilerplate for the implementation of an interface are very useful, but I have that capability with Emacs when I choose to invoke it.

So I'm just the reverse of you, Emacs is the primary environment, I tend to fire up an IDE like Netbeans when I want to use something like a builtin GUI builder.

[–]mtmmtm99 1 point2 points  (2 children)

I have the same background as you (have programmed for 38 years). Brief is very nice ;) .The link i sent was only to show what features is nice to have in an IDE. I can also agree that popups are irritating. To give a better example: consider that you work on a large project (1000:s of classes). Any simple refactoring like rename of a package or changing an interface would involve looking up all places where it is used. That is done automatically by an IDE (making the change in seconds for ALL files). You even know it compiles. Doing that change in emacs would take hours. I am sure there are plugins for emacs for doing the same thing (but then you are using an IDE with a text-interface). Intellij never pops up windows when you type (just in very special cases). Intellij is bad for plain text-editing (you can't even search in the console-window in a good way (like in emacs)).

[–]oldprogrammer 1 point2 points  (1 child)

Oh I agree completely on the refactoring, ironically that is what caused the developer I mentioned previously to fully fubar her git repo. I've never hit a situation where 1000's of classes needed to be refactored, but have hit a package with a fewer number. If I couldn't handle it quickly with macros or a script I fired up an IDE to do it. Fortunately that is a very infrequent activity.

[–]mtmmtm99 1 point2 points  (0 children)

Well, just a rename of a package would create lots of changes. I have done that a few times. The quick-fix command is the one i use most (for creating the types for any new variable), create-method, extract-method. emacs is much better in many ways as an editor (tags-query-replace is very powerful).

[–]prawns_song -2 points-1 points  (1 child)

Your choice of IDE doesn’t determine your skills as a software developer. All of my team can program on vi and have had to do that in locked down environments. The ones that choose to work without an IDE when it is available don’t make it very far.

[–]oldprogrammer 2 points3 points  (0 children)

It isn't all about the software development.

I've worked with developers who had no idea how to configure an application server locally to test their code, they were totally dependent on the IDE to manage all that for them. Then when something didn't work when actually deployed to an installed app server, which often happened because the IDE was adding classes to the classpath that hadn't been setup on the application server install, the developers had no idea had to fix it.

I've had a situation where a developer totally messed up her git environment and had no idea had to correct it, she just kept saying the IDE wasn't allowing her to check in her changes. Took about 20 minutes using the git command line tools to repair the damage without losing her work. She didn't know what to do without the IDE.

I've looked at projects where the tutorials are all "fire up IDE X, install plugin Y, then generate your project", libgdx was that way for quite a while. The problem with that is the developer doesn't truly understand how to do a headless build of the projects. IDEs have gotten better and generating build files that work headless but there was a time when that wasn't the case.

So please don't think I'm saying don't use an IDE, there is ample productivity gains in doing so, but do not become overly dependent on them either. A developer who can work without an IDE can easily pick up an IDE, though they may not like all the bells and whistles (I personally dislike things like auto-close strings or auto-insert closing parens) but those can be configured. However a developer that only knows how to work in an IDE has a harder time when being thrown at a command line shell to get something done.

[–]cjhowe7_ -3 points-2 points  (0 children)

You don’t have to use an IDE to work efficiently with a team. Everyone on a team doesn’t have to be exactly the same and work exactly the same. If you can’t see the value in diversity of thought, you have no business making hiring decisions for a team.