Log in

View Full Version : Favorite IDE/Code editor?


Sparkyshires
31-10-2014, 11:36
Hello all!

I'm interested in hearing what everyone's favorite IDE is, for which language, lightweight, operating system, etc., I normally use eclipse for C++ and Java, but I recently discovered atom (atom.io) which is a really cool modular text editor for most any OS you can think of.

So, which is your favorite? (and it can be for anything also! LaTeX, or even a favorite word processor.)

x86_4819
31-10-2014, 12:13
PyCharm (http://www.jetbrains.com/pycharm/index.html) is an amazing editor for python. It has a sleek UI and great integration with git repositories.

Brackets (http://brackets.io/) for plain html and css editing. Not as full-featured as some editors, but has some nice perks for web programming.

And vim for everything else :)

Ben Wolsieffer
31-10-2014, 13:37
I normally use Netbeans for any major project I work on. It is a little heavy and slow at times, but it has had every feature I've ever needed and supports (error parsing, syntax highlighting, refactoring) a huge number of languages.

Eclipse can also do pretty much all the same things as Netbeans, but I've always felt more comfortable in Netbeans.

Jacob Bendicksen
31-10-2014, 13:39
I don't do robot code, but for my computer science projects I'm using Atom. I've loved it so far - fully hackable, plenty of extensions that you can get for more functionality, GitHub integration...it's pretty great.

pyroslev
31-10-2014, 14:11
Notepad++

Not an IDE but useful to any coder, if not a must have.

404'd
31-10-2014, 14:25
For a general use text editor, I like Sublime (http://www.sublimetext.com/)

As far as IDEs go, I prefer Eclipse for Java because I'm used to it

MrRoboSteve
31-10-2014, 14:26
My first vote goes to Visual Studio, but I'm biased because a) I used to work on it and b) I use it every day.

Another vote for notepad++ for less complicated editing tasks.

IntelliJ IDEA was the best Java environment back when I worked in that space.

Sublime Text is popular but I have no experience with it.

For large codebases, an editor that has a parsed representation of your application (Eclipse, IDEA, Visual Studio, etc.) is tough to beat. They're more demanding on disk, cpu, and memory than simple editors, though.

Jared
31-10-2014, 14:53
For making documents, LaTeX is great, but for programming, I use CodeBlocks for C++ and Netbeans for Java.

For other languages or text files, I use Notepad++ with windows or nano (which is clearly better than vi or emacs :D) on linux.

pastelpony
31-10-2014, 15:01
call me unprofessional but notepad++

aryker
31-10-2014, 15:02
I use Emacs in a Linux environment as much as possible, mostly for all the built-in functionality it offers. When I have to use Windows I tend to use Eclipse for Java, CodeBlocks for C/C++ and Notepad++ for everything else. Visual Studio is nice, but the commercial version is expensive and the student version won't cut it for my needs.

Bryan Herbst
31-10-2014, 15:31
IntelliJ IDEA was the best Java environment back when I worked in that space.

IntelliJ is still top notch for Java development (and I wish FRC was moving towards that instead of Eclipse).

As an Android developer, I'll take Android Studio (which has IntelliJ at its roots) over Eclipse any day.

For general text editing, I switch between Sublime and Notepad++ depending on the scenario.

When I was doing Drupal work, PhpStorm was very popular amongst my coworkers.

2B || !2B
01-11-2014, 08:39
I mostly use Netbeans, just because that's what's on the laptop for every day FRC stuff. I love netbeans because it has oodles of features, but sometimes it thinks it's better than you, and does something stupid to the beautiful formatting. My Favorite IDE is probably eclipse then.

I've never used intelliJ, but I've heard it's great.

I used notepad++, but then decided that I liked sublime text better. Honestly, sometimes I skip the IDE all together, and just compile and run the code written in sublime text in the terminal because it makes me feel cool.:D

restouffer
01-11-2014, 12:41
Since our team uses KDE's Plasma desktop on Linux for programming, we use KDevelop. It is much less resource hungry than Eclipse, and fits in with the rest of the desktop better as well. It integrates with git and cmake, and has excellent support for C++, making it a very good fit for our team.

yash101
01-11-2014, 18:44
I like to use QT Creator for C++. It is simple, yet powerful. It is extremely easy to use and even supports CMakeLists.txt.

Sadly, a lot of the project configuration is manual. It is not hard though.

You either need to make a QMake project file or a CMake project file ;).

The greatest part is that it is cross-platform. I develop my code on Mac (because I like the keyboard) and I compile on my Linux VPS or Laptop!

JCharlton
01-11-2014, 23:40
Vim. Its modal system is unlike any other editor I know, but once you get the basics if feels slow to code in anything else.

http://www.vim.org/

Jared Russell
02-11-2014, 00:21
Vim. Its modal system is unlike any other editor I know, but once you get the basics if feels slow to code in anything else.

http://www.vim.org/

correct.

kiettyyyy
02-11-2014, 00:32
correct.

+1

restouffer
02-11-2014, 09:02
Vim. Its modal system is unlike any other editor I know, but once you get the basics if feels slow to code in anything else.

Most decent IDEs have a vi mode, so you can get the editing power of Vim and the project management power of an IDE.

Sparkyshires
02-11-2014, 12:08
Is vi/vim really that impressive? I've been meaning to learn it for a while, but the learning curve has always struck me as not worth it. I never realized it was that popular until now :yikes:

wt200999
02-11-2014, 14:08
Is vi/vim really that impressive? I've been meaning to learn it for a while, but the learning curve has always struck me as not worth it. I never realized it was that popular until now :yikes:

The nice thing about VIM or Emacs for that matter is you can keep both hands on the keyboard. 'Normal' editors force you to use your mouse quite frequently which increases editing time (though a lot of IDEs have come a long way).

Also since everything is keyboard/shortcut based there are tons of extra features that you can access very quickly, instead of having to remove your focus from your code to navigate menus and such. Because of this there is a learning curve, but if you do a lot of programming it can increase your productivity.

Also the Editor War (http://en.wikipedia.org/wiki/Editor_war) is still ongoing.

AustinSchuh
03-11-2014, 13:03
Is vi/vim really that impressive? I've been meaning to learn it for a while, but the learning curve has always struck me as not worth it. I never realized it was that popular until now :yikes:

VI is in the base install for most, if not all, unix machines, including the roboRIO. The tiny version in busybox is missing a bunch of features, but it does let you edit files with the basic commands. I'm just as efficient editing files on my local machine as any remote machine that I'm logged into. With all the shortcuts available, and not needing to remove my hands from the home row, I can move really fast.

Of course, everyone has an opinion on editors, and what works well for me may not work well for you...

^]:wq

adammiller3122
03-11-2014, 17:36
For a general use text editor, I like Sublime (http://www.sublimetext.com/)

As far as IDEs go, I prefer Eclipse for Java because I'm used to itI love my Sublime if I am at a computer with FTP client on it, but if I am at school, not all the computers have it on there. I then use Codeanywhere.com

Sparkyshires
05-11-2014, 15:25
VI is in the base install for most, if not all, unix machines, including the roboRIO. The tiny version in busybox is missing a bunch of features, but it does let you edit files with the basic commands. I'm just as efficient editing files on my local machine as any remote machine that I'm logged into. With all the shortcuts available, and not needing to remove my hands from the home row, I can move really fast.

Of course, everyone has an opinion on editors, and what works well for me may not work well for you...

^]:wq

xD interesting. I think I may give it a try. And yeah, my dad is an emacs person!

JesseK
06-11-2014, 11:42
I think the OP's question needs more scope.
What's the favorite IDE for a simple project (10k lines or less)?
What's the favorite IDE for a > 30 million-line project?
What about in between?

Personally, in my profession:
Eclipse for development, regardless of project size. Stay the frick away from Visual Studios, unless I'm forced into C# as a language (at which point I seriously question the sanity of those involved...)
Use Maven/Gradle/exterior builds in Jenkins to deploy large projects, or Eclipse's 'export runnable jar' for small projects.
Usually VIM on the production system to debug & configure runtime. VIM is on every system we have, from RHEL 4 to RHEL 7, so it's good to know it. It's also on nearly every remote Web Server, so if you need to setup custom services it's also good to know.
If it's available, gedit in Gnome. <Ctrl><K> is really nifty for searching, plus it's easier to copy/paste external text into it. I usually use this during initial creation of shell or build scripts when I'm not on my typical dev machine.

weaversam8
06-11-2014, 16:46
I use eclipse as my IDE, but I swear by Notepad++!

Sparkyshires
06-11-2014, 19:20
I think the OP's question needs more scope.
What's the favorite IDE for a simple project (10k lines or less)?
What's the favorite IDE for a > 30 million-line project?
What about in between?


JesseK,

I left the question purposefully open-ended. It was also slightly loaded, as I was also trying to gauge what types of programming ChiefDelphi-ians partake in. And I can honestly say I've never worked on a project greater thank 3k lines of code D: I can't even imagine anything on that level! If you wouldn't mind, could you say a bit about any projects that you've done involving software that utterly complex?

JesseK
07-11-2014, 10:45
It's a long-running program with 10's of thousands of sensors that must be processed, stored, cached, and displayed in near real-time. There's also a system configuration component, O/S interactions, operator training, and tactical awareness. Its a codebase that started in ~2002 with Java 1.1 and C, and has evolved into 7 programming languages and 11 companies.

We typically have the rare use cases which will be mainstream in the next decade. Things like display sharing, any display anywhere, big data anaylsis via metadata - we typically did it in a different implementation several years before it hits mainstream. I think the first "tweet" the system sent to itself was via legacy code in 1995 or 1996 (short generic message multi-casting, usually including a string which could be decompressed into a longer string that told the code on the other side where to go to get data).

I've been off-and-on this project for 8 years now, and there are aspects of it which are great and not-so-great. For example, I'm on a team of 3 working to introduce touch to the system. That's 11 companies who have displays which will all want access to one piece of hardware. The fun days are the days where I invent algorithms to recognize a particular constellation sequence for a gesture. The not so fun days are the ones working through legacy code, refactoring it to get it up to date enough so it can accept these new inputs.

wireties
07-11-2014, 11:25
A lot of professionals use SlickEdit but it is not cheap

Javaru
07-11-2014, 12:42
I've been using IntelliJ IDEA (https://www.jetbrains.com/idea/) by JetBrains for the past 11 years professionally, and the past 3 years for First. It beautifully handles Java, Python, Scala, Groovy, Clojure, and many more languages & frameowrks. This year I'm hoping to get an FRC plug-in written for it so that others can use it easily for FRC work. But I need to wait until I see the changes for the new year with the new controller.

For a C/C++ IDE, take a look at JetBrians new CLion (https://www.jetbrains.com/clion/) IDE. It's still in Beta, but very slick nonetheless.

Sparkyshires
10-11-2014, 15:46
It's a long-running program with 10's of thousands of sensors that must be processed, stored, cached, and displayed in near real-time. There's also a system configuration component, O/S interactions, operator training, and tactical awareness. Its a codebase that started in ~2002 with Java 1.1 and C, and has evolved into 7 programming languages and 11 companies.

We typically have the rare use cases which will be mainstream in the next decade. Things like display sharing, any display anywhere, big data anaylsis via metadata - we typically did it in a different implementation several years before it hits mainstream. I think the first "tweet" the system sent to itself was via legacy code in 1995 or 1996 (short generic message multi-casting, usually including a string which could be decompressed into a longer string that told the code on the other side where to go to get data).

I've been off-and-on this project for 8 years now, and there are aspects of it which are great and not-so-great. For example, I'm on a team of 3 working to introduce touch to the system. That's 11 companies who have displays which will all want access to one piece of hardware. The fun days are the days where I invent algorithms to recognize a particular constellation sequence for a gesture. The not so fun days are the ones working through legacy code, refactoring it to get it up to date enough so it can accept these new inputs.

That's mind-boggling. Thank you for sharing that! You just gave me an aspiration to strive for.

ratdude747
10-11-2014, 17:08
For me, I use a mix of gedit (I'm a penguin) for writing CLI c code and codevison AVR for writing Atmel AVR C code (for use on arduino boards and other AVR devices).

Back in high school, I mainly used labview for FRC stuff... I didn't really learn text based languages until college (which I use all the time for projects and whatnot).

baumgartensam
10-11-2014, 17:27
I work in a few different editors based on what I'm doing.

Anything config/system related: Vi/Vim (comes on every unix based system) (http://www.cs.colostate.edu/helpdocs/vi.html).

Java: Editor (see below) or NetBeans (FRC) or Eclipse (Professional work)

C++: Editor and Xcode

General: TextMate (http://macromates.com/)

I've also used/know people who have used the following editors:
BBEdit
Sublime
Nano
TextWrangler
Fraise (https://github.com/jfmoy/Fraise)
Adobe Brackets (for html/css work)
Notepad (don't use this one) :) (Please don't use it)
Microsoft Word (I'm not kidding, never use it)

Sparkyshires
14-11-2014, 09:17
Interesting! I've seen a lot of people talking about jetbrains products, I can't believe I never heard of them. CLion looks very cool, can't wait for it to be released.

DavidtheSong
10-12-2014, 20:15
Java: Intellij Idea
^^ There are free educational licenses for this so find a teacher and go get some.

Web: Sublime Text 3
Just "try" out the trial for a while....

These work out fine, but there are different editors for different projects :)

gixxy
11-12-2014, 08:52
IDE: Netbeans (http://netbeans.org/)
Programming Editor: Sublime Text 2 (http://www.sublimetext.com/)
Plain-Text Editor: Gedit (https://wiki.gnome.org/Apps/Gedit)
Config-File Editor: Nano (http://www.nano-editor.org/)

catacon
11-12-2014, 13:41
Visual Studio, hands down, for C++ and C#. Atmel Studio and Eclipse-based IDEs for embedded things (AVRs, TI chips, Cypress chips, etc.). In Linux, I use Code::Blocks and vim.

indubitably
11-12-2014, 15:00
For general programming and classwork I usually default to Vim, just makes it so easy to actually get started and keep going.

Visual Studio is amazing for graphics, by far my favorite "heavy" IDE.

weaversam8
05-01-2015, 12:09
Atom, by GitHub.

byteit101
05-01-2015, 13:55
I like to use QT Creator for C++. It is simple, yet powerful. It is extremely easy to use and even supports CMakeLists.txt.

Sadly, a lot of the project configuration is manual. It is not hard though.

You either need to make a QMake project file or a CMake project file ;).

The greatest part is that it is cross-platform. I develop my code on Mac (because I like the keyboard) and I compile on my Linux VPS or Laptop!

I have to second this. As someone at WPI who helps write WPILib, I actually did a portion of 2015 WPILib development in QT Creator to try out the new toolchains that I was working on at the time. It is by far the best C++ IDE I’ve used. For anyone else who wants to use CMake, either via QT creator or some other way (command line), the Ubuntu toolchains come with the frcmake package, which have a toolchain definition file along with the `frcmake` binary to automatically call cmake with the toolchain file. If you aren't on Ubuntu, the toolchain file is here: https://bitbucket.org/byteit101/toolchain-builder/src/ce0653aa77ca6f61d7f9d27795c5f808c2624340/tools/toolchain.cmake?at=default
you can then create a cmake file and invoke cmake with the "-DCMAKE_TOOLCHAIN_FILE=path/to/toolchain/file" option

CodeWhisperer
08-01-2015, 16:56
I didn't read all of the replies so I'm not sure if I'm being original here, but I'm gonna try anyway! There's an awesome cloud-based IDE that I use for my AP Computer Science class and for other various programming projects called Cloud9 (https://c9.io/). It's a full virtual workspace online that can integrate with Github or Bitbucket for login, plus it has a fully functional Ubuntu terminal with sudo and internet access built in. It has a lot of run configurations that will automatically run whatever type of file you're programming (as long as it's a default supported one).

For example if you whip up a quick index.html with a little dinky page and hit run, it'll deploy your page and since you're working in your web browser and your terminal is connected to the internet, it will actually serve your page over the internet and give you a link to preview it.

If C9 doesn't support your preferred language but that language has a toolchain that can run in a linux terminal, you can hotfix to get that to work as well (surprisingly, Java isn't a built-in supported language, but it is installed as a linux terminal command by default, so I made a new run configuration that used javac followed by java consecutively to make my own improvised Java runtime (P.S. if any of you guys want, I can send you details on exactly how I did this)).

Oh, and since it's a web-app and cloud based, it has a collaboration feature almost identical to that of Google Drive where you can invite as many group members as you want and everybody can be working together at once.

thetonio96
08-01-2015, 21:56
I would use IntelliJ as IDE, it's fast and has a good integration with GIT. In the need of just an editor I would use Vim, it's super lightweight and customizable

Team3266Spencer
09-01-2015, 21:40
Vim. Its modal system is unlike any other editor I know, but once you get the basics if feels slow to code in anything else.

http://www.vim.org/

Very slow indeed.