Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I would like to set up my computer so that I can develop in .net, C#, Java, ActionScript, JS/CSS, and functional languages such as Scala or Haskell. However, I want to do this with the least amount of full-featured IDEs to learn / programs taking up harddrive space on my computer / running multiple IDEs simultaneously.

Which programs can I use to minimize the amount of full-featured IDEs I have to learn/use. (For example, if Eclipse could handle all of these frameworks, that would be a valid answer)

share|improve this question
    
What do you use currently? –  Kevin D Nov 10 '11 at 12:15
7  
If saving resources is your concern, I doubt Eclipse is the answer. –  back2dos Nov 10 '11 at 12:24
3  
the resources I am concerned about is my brain more than my computer :) –  Bob Nov 10 '11 at 12:33
3  
try doing all that development in notepad and then let us know how that brain of yours is doing :-) –  Thomas Stock Nov 10 '11 at 12:36
3  
See, if you an experienced pro, You might find Notepad good enough for all your needs –  Pankaj Upadhyay Nov 10 '11 at 12:47

9 Answers 9

up vote 11 down vote accepted

I wouldn't try to use one less-than-optimal IDE for all my development. I would rather spend my time learning the best IDE for the language instead of hacking/tweaking a single IDE so that you can use it for something that it wasn't meant to be used for.

There is no silver bullet here.

You will need Visual Studio for .NET development. You will need Adobe tools for Flash development.

For Java and JS/CSS I recommend Jetbrains IntelliJ IDEA and Webstorm. There tools are made by the same vendor so they are similar, pretty feature rich yet the learning curve is quite ok. They also do not take that much disk space, if that is really one of your concerns.

As pointed out by FinnNk, you can configure most (all?) of the IntelliJ IDEs to use Visual Studio keyboard shortcuts...or you can configure Visual Studio to use IntelliJ keyboard shortcuts.

share|improve this answer
    
Thanks. IntelliJ IDEA also does Actionscript dev. So I'll need Visual Studio and IntelliJ or Eclipse (since so far learning IntelliJ ide has been a bit of a pain) Where does scala / Haskell fit into that? –  Bob Nov 10 '11 at 12:43
    
There are Eclipse plug-ins for Scala and Haskell, and I wouldn't be surprised if there were something similar for Netbeans. –  TMN Nov 10 '11 at 12:53
    
I don't have experience with Scala/Haskell. Again, I would google for stuff like "best scala ide" and see which one would fit your requirements best. PS: You can skip WebStorm and develop JS/CSS with visual studio. It's a decent IDE for web development and with the Resharper add-in you get auto-complete in JS and Css. (there are also free plug-ins available for this.) –  Thomas Stock Nov 10 '11 at 13:00
    
@TMN the Netbeans Scala plugin is under development –  Yannis Rizos Nov 10 '11 at 13:00
1  
I'd add that you can configure most (all?) of the IntelliJ IDEs to use Visual Studio keyboard shortcuts...or you can configure Visual Studio to use IntelliJ keyboard shortcuts. –  FinnNk Nov 10 '11 at 13:48

Learn vim or emacs. You can program just about any language with either of those. You won't have the crutches provided by some IDEs, but you really don't need them. You can become a better programmer when you rely on your brain more and intellisense less.

share|improve this answer
15  
My brain has better uses than trying to memorize APIs.. but thanks. –  Bob Nov 10 '11 at 14:22
5  
Amen one thousand times, @Bob. I am better programmer because of intellisense since there is more capacity to use for things besides the method signatures, return types and class hierarchies of the APIs with which I have to deal. In my opinion, it is the single greatest productivity gain of the past 15 years. –  Adam Crossland Nov 10 '11 at 14:41
3  
Emacs does provide intellisense with CEDET, although they call it "smart code completion". –  jwernerny Nov 10 '11 at 15:00
1  
While I disagree somewhat with the poster's views on IDE use, this is the way to go for the newer and/or less popular languages that don't have good IDEs. The OP is thinking of Scala and Haskell, and may well want to try out other non-mainstream languages, and in this case, vim or emacs are about the best choices. –  David Thornley Nov 10 '11 at 16:54
3  
For Java (and C#) you want an IDE; they help a lot. This is because they're pretty bureaucratic as languages go. Other languages don't need IDEs to nearly the same extent, making vim and emacs excellent choices there. –  Donal Fellows Nov 11 '11 at 10:12

Eclipse can handle most of the languages you mention:

Regardless Eclipse is not a valid option, as most of the aforementioned plugins are in various alpha states and running an Eclipse instance with all of them would enormously stress your hardware.

Even with great hardware, the plugins will rarely offer everything a specialize IDE will offer. Also I don't see any valid reason to running multiple IDEs, how many platforms can you code for simultaneously? If what you need is mostly to read code written in different languages or write fairly small programs you could choose Notepad++, that supports syntax highlighting on an impressive number of languages.

But to actually program in the languages you mention, I'd recommend to use different IDEs:

Adobe Flash Builder and Aptana Studio are based on Eclipse so if you go with those you will at least get similar IDEs.

share|improve this answer
    
Thanks. I'm terrible at closing windows.. I'm a virtual packrat. :( –  Bob Nov 10 '11 at 12:57
1  
Improve C# seems to have been dead for almost 8 years now !! –  Newtopian Nov 10 '11 at 13:48
    
@Newtopian Well yes it is :) Anyway, the point of the answer was to NOT use Eclipse for everything for a variety of reasons, we can add lack of a C# plugin to them... –  Yannis Rizos Nov 10 '11 at 13:55
    
@Bob Linux+Gnome with dual 30" screens gives you (using 4 desktops) more than enough screen real estate :) –  jwenting Nov 10 '11 at 14:11
    
@Bob, mind trying to use tiling WMs (e.g., stumpwm, ratpoison, etc.)? –  SK-logic Nov 11 '11 at 9:05

I personally find Eclipse is the best multi-language IDE.... apart from the excellent Java support Java there is pretty mature development support for most other major languages available as plug-ins.

There's a long list here of languages which I'm sure has been extended since that article was written.

Also it's not just the languages that are important: you also need to consider:

  • Build / dependency management tools like Ant and Maven
  • Source code control (git, CVS, SVN etc.)
  • Resource file management (XML config, images etc.)
  • Project management tools (backup, documentation, task management etc.)

Taking all these into account, it's definitely a win to stick to a single primary IDE.

share|improve this answer
    
+1 for recognizing why I'm asking the question :) –  Bob Nov 10 '11 at 16:31

For languages that have them you're best off using best of class IDEs - they're not really that different. See other answers for suggestions.

For the ones that don't then I suggest you use a more heavyweight text editor - such as emacs (which also doubles up as a file system browser, mail and news reader, gaming platform, birthday greetings generator, etc, etc, etc). These will often have decent plugins/settings/modes that get you most of what a simpler IDE will give you.

share|improve this answer

The Jetbrains company has a suite of IDEs with the same ergonomic principles and same keyboard shortcuts and so on. They cover all the languages you're talking about. But most of them are not free though.

So my suggestion is:

share|improve this answer
    
Do they have a strong community for support? I heard a remark that "you have to be a rocket scientist to set up a project" regarding Jetbrains software. –  Bob Nov 10 '11 at 15:44
    
They're really good. I got an answered to a rant on Twitter. However, you're right, setup a project is a bit weird at first but not that much than with Eclipse. –  Simon Jodet Feb 1 '12 at 15:09

I am not sure this is such a great idea. Switching from one language to another is usually a complete context switch and the cost of this can only be compensated by an IDE that is streamlined to work with that language.

Of course there's emacs, but unless you're willing to invest half a decade into really understand it, you will have trouble finding a multi-language IDE that is mediocre at best in respect to most of the languages.

My suggestion:

  • SharpDevelop for C# and FlashDevelop for ActionScript (and haXe if you're so inclined). FlashDevelop is mostly written using SharpDevelop, so you will find behaviour is relatively consistent between them. Especially FD has a very low footprint, has a blazing fast autocompletion and UI and boots in a little over 5 seconds on my machine.
  • Java and Scala work perfectly in one IDE. Whether that's IntelliJ, NetBeans or Eclipse is more a matter of personal preference or religion.
  • Support for CSS exists in most IDEs in fact. You'd probably want to use an HTML editor that allows zen coding (FD does), preferably one of the editors you're using anyway and write your CSS in the same editor. At the same time you might want to look which of the IDEs in your toolset support LESS css, because it's really a time saver. If the choice is between writing less or writing more but with the support of an IDE, the former is favorable IMHO.
  • JS is also supported by all IDEs to a certain extent. You might do this in FlashDevelop. Or you might actually use haXe instead, which is well supported by FD. Or you might want to take a look at CoffeeScript and find an IDE which is suitable for it (Eclipse does have a decent plugin, possibly other IDEs do as well).
share|improve this answer

I hold opinion that it's best to have a separate tool for each language / language bundle. But for some (css+js for example) - there's no point even having an IDE - a text editor with syntax highlighting will suffice.

For Windows - try Notepad++ . On Linux - emacs, vim (which have a learning curve of their own) - or even just gedit.

Have a look at latest NetBeans - it's cross-platform supports a number of languages, but can be a bit sluggish; Aptana Studio is what I currently use for web development.

share|improve this answer

Beware that IDE usage is a holy-war topic.

Use the best tool for the job. If an IDE is good at language X and not at language Y, then only use it for X and get something else for Y. Compared to pretty much any computer game you might pick off the shelf, and IDE is nothing your hard drive and system RAM can't handle. I'll add that when tasting a new language an IDE can make it easier to start playing around, don't be afraid to get the one that fits the job. Android Java is a good example of that- if you just want a taste there's nothing easier than Eclipse/Android to get your feet wet.

share|improve this answer
    
Thank you and I agree. However, I'm looking right now for good enough, and to fit the other requirements that I asked about. I'm looking to learn and develop at the same time, so I can see what I like and what I don't. –  Bob Nov 11 '11 at 11:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.