6 answers

Programmers, which IDE do you use?

Updated Viewed 1643 times

Currently I am using Sublime Text 3 although XCode can be used to edit JavaScript, HTML, CSS, Obj-C, etc.. files. I use ST3 because it is really slick and customizable.

Do companies require you to use IDEs? If so, which IDE and is there a specific reason? If not, which IDE do you use? Is there a specific personal / programming-related reason why you use your IDE?

Thank you #programming

6 answers

Yuval’s Answer

Updated

Every company I've been at -- including my current one -- has had an explicit or implicit policy of being IDE-agnostic. Projects are defined using maven (or ant, or some other such non-IDE tool), and as long as you've got an IDE or workflow that can handle that, you're free to use it. I use Intellij IDEA, a lot of people use Eclipse, and then there are the people who swear by Emacs or Vim. (I'll also drop into Vim sometimes, depending on the task.) So for instance, we don't check our IDEA/Eclipse project files into the source control, because they don't define the project structure -- the maven's pom.xml does.

This lets everyone use what they're comfortable with, and we all get along happily.

As for why I use IDEA: at this point, mostly because I know the keyboard shortcuts, and it's not worth it for me to learn new ones. :) I like the look and feel of it, too.

Estevan’s Answer

Updated

My use of an IDE usually depends on two factors, the complexity of the task and how many files or other resources I have to mange.

An IDE basically is a tool (more specifically a collection of tools), and like any other tool the main benefit is making some job easier.

If I am just prototyping, particularly in JS and HTML since they run so easily in the browser with no complication required (but basically true for any language that can execute with compilation like Python or lisp) I almost never use an IDE and instead stick to just a text editor (TextMate, Sublime, TextWrangler for example if you're on a Mac).

IDEs come in handy when you are working on complex projects that might may require compiling code into machine code for example (C based languages) or when you are dealing with complex build parameters like external libraries to load or assets that need to be included in the resulting binary. IDEs usually have steam lined set ups to make these tasks easier.

Additionally in large code bases there are other nice frills, like auto completion of variable names and functions which save you typing or the ability to search for a specific function by reference instead of doing just a text search (this is VERY useful when you have some function called something generic like "GetText()" and you want to find a specific use of it and not every single time any function by that name is used).

To answer the question in regard to my working life, I always use IDEs. It makes things easier because everyone on the team is using the same tools to build the app and I like all the time savers.

In the past few years I have mostly used Eclipse, Flash builder (which is just a custom version of Eclipse), IntelliJ, and most recently the version of MonoDevelop that comes packaged with unity. I'd like to use Visual Studio since I'm working in C#, but alas...Macs.

Some people at work however do work in VI/VIM for example. No one stops them. That may not be true of all work environments however.

If you do server side programmer directly on the machine for debugging purposes you will likely not have access to an IDE (without additional set up) since you will be remotely logged in and in those situations I have used VIM or other unixed based text editors.

Updated
Agreed. Ronak, if you're logging into remote servers, having a working knowledge of basic unix editors is super helpful. Vim and Nano are common defaults.
Updated
Hi Mr. Sanford, I usually use Nano to edit small files remotely. Just to output files, I use the Cat command. However, when I want to edit large files, I usually use Samba or some other file-sharing server to edit remote files through my computer using Sublime Text. Is this a good idea? What is the best way to edit large remote files?
Updated
This is a fine way to do it as well. Can be a little slower, but gets the job done for sure. The reason most people prefer, in my experience, just using emacs/vim over FTP'ing files to a remote server is speed. It takes a second or two to do the upload/download of the file and no one likes to wait. There is nothing wrong with this approach however. And a lot of IDEs offer some kind of "remote file sync" that automates this process and keeps all the for an entire project in sync between local and sever copies.
Updated
Mr. Aguayo, thank you for your comment! Just reminded me that Sublime Text 3 has a "remote file sync" option.

Galen’s Answer

Updated

Hey Ronak,

Short answer: my office and most everyone I know uses ST3 or Vim. There are always a couple of devotees clinging to Emacs, but YMMV. Also, see xkcd#378: http://xkcd.com/378/

Longer answer: it often depends on the language you're writing. Some employers will require you to use a particular IDE for a particular framework/language. For example, if you're using a proprietary framework like .NET or anything Microsoft prescribes, you'll probably have to use their IDE. For a long time the same has been true for mobile apps – but which IDE varies by employer.

Honestly, IDEs have their uses, but they don't obviate the need for clean code and clear solutions. Ie: http://xkcd.com/568/

Updated
So true! Customizable IDEs have that huge con where you can indent however you want...

Eric’s Answer

Updated

Google doesn't require that we use any IDE. Lots of us use Emacs or vim, and some use Emacs, or Android Studio for Android development. There are enough of us on all the major editors that there are usually good tools written (to handle integration with our code base and such) for whichever editors people use.

I personally prefer Emacs. I know its many commands fairly well (though there are so many that I am always learning new ones), and can effectively script it to help me with whatever else I need. I find vim a little bit too arcane for me, and Eclipse generally feels slow and clunky.

Updated
Thank you for your answer Mr. Willisson! I agree that it's easier to use an IDE that you are familiar with. Also, speed and visual appealing-ness of an IDE may change minds. I use ST3 because it is fast, has many visually appealing themes, and is very customizable.

Nermin’s Answer

Updated

Companies should not impose using any particular IDE. In Java world, the most popular ones are IntelliJ IDEA and Eclipse.

Bill’s Answer

Updated

Hi Ronak,

I have never worked anywhere that required a specific IDE. However depending on the team dynamic at a particular company it may be helpful to have entire teams using the same tools. I think the most important part of an IDE is that it helps you work better/faster/stronger.

I am doing ruby development right now and I personally use ST3 because it is fast and the plugins give me a really nice workflow. I definitely agree with some of the other comments on here that learning vi or nano is also a hugely helpful skill because you will more than likely find yourself needing to look at files in the shell.