views:

12623

answers:

120

We all have different needs due to the platform and/or stack we work with, and simple programmer preference is famous for starting religious wars.

However, in each area there is usually a set of tools that get recommended over and over, even though people might individually prefer one member over the others. Unix text mode code editors, for example, is an extremely contentious issue but no one can deny that most people will choose either vi or emacs.

So, without criticising the alternatives, recommend me developement tools. Text editors for different platforms, version control systems, bug trackers, database engines, templating systems... whatever! What do you enjoy using every day?

I'll edit together the answers as a list of highly recommended tools in each area. Please don't start discussing which is the best ;)

+69  A: 

Stack Overflow

GateKiller
Your tool should be on top of the list..
Syed Tayyab Ali
-1 for abject crony-ism...
MagicAndi
+1 for abject cronyism.
Rob Lachlan
+7  A: 

NUnit for .NET Unit Test Cases. NAnt for .NET automated builds.

Will update the post as soon as I can think of other required tools!

Adhip Gupta
+21  A: 

I could probably not live without WinMerge on Windows. It is a GUI diff/merging program that can generate standard unified diff patches. It also has a couple of cool plugins that let you diff zip files and MS Office documents.

John Downey
WinMerge is truly the next best thing if you don't want to pay for Beyond Compare.
Chris Noe
KDiff3 is also excellent, but it only works with text files.
Hosam Aly
+28  A: 

Generally:

  1. Subversion or Git, Tortoise
  2. Mantis
  3. 3SqlLite (I use it almost exclusively for prototypes and demos)
  4. MySQL - For the price, it's stupidly amazing

For me (keeping in mind that I mostly do .NET):

  1. VS.NET is far beyond any other editor
  2. Resharper is a must-have add-in for .NET programmers
  3. Reflector to look inside dlls
  4. SnippetCompiler
  5. My text editor of choice is EditPadPro
  6. IntelliJ for my Java (Resharper and Intellij are so alike it's easy to switch between the two)
  7. Red-Gate SQL [Data] Compare
  8. DotTrace .NET profiler
  9. jProbe Java profiler
  10. Reflector (.NET decompiler)
  11. Cavaj (Java decompiler)
  12. NAnt/Ant, Cruisecontrol
Karl Seguin
+1 for resharper, I feel like I'm banging rocks together without it
mgroves
+63  A: 

The Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows may give you some ideas.

Marek Grzenkowicz
+5  A: 

These are the ones I use every day, on Windows:

Source Control: Subversion, TortoiseSVN, VisualSVN
Command Prompt Replacement: Take Command
Build Control: FinalBuilder
Text Editor: Notepad++
File/Folder Comparison Tool: Beyond Compare 3
IDE: Visual Studio 2005/2008
Scripting: Python, Komodo

Lasse V. Karlsen
A: 

Bash, sed, awk for little shell scripting

  • Visual Studio + Expression Studio - .NET development and design on Windows
  • Monodevelop - .NET on Linux
  • Eclipse - Java, Crossplatform
saniul
+113  A: 

If you're doing a lot of Javascript, the FireBug plugin for Firefox is a must!

http://getfirebug.com/

maclema
I would recommend it for HTML/CSS work also.
James McMahon
It's great for jQuery!
Michael Robinson
Note that Chrome's developer tools are very similar to firebug.
Tikhon Jelvis
A: 

Beyond Compare is essential for comparisons of files, folders local or remote (ftp). It is awesome!

Check it out at http://www.scootersoftware.com/

Ronnie
+2  A: 

Personally, I prefer the following tools, depending on the language I'm developing for:

  • Eclipse for development in PHP, Java, or other popular more open languages. There are lots of great plugins and configurations you can set to make it just right for your liking.
  • Git as a Source Control Management (SCM) tool. I like it because it is a decentralized system that is very standalone. I can use it for solo projects and my entire repository is stored with my code with no need for an extra database or server to set up. It also can work well with groups of people. There is a plugin that allows it to work with a subversion server or client so that you can operate with existing SCM systems. The downside to Git is that it can be tough for a beginner to understand at first (higher initial learning curve)
  • Winmerge for File diffs. I find this tool to be one of the best Open Source apps I've ever used. It's very well polished and makes it easy to view differences on files.
  • Notepad2 for just simple file editing on Windows. I find it to be a good replacement for Notepad that comes with Windows. It includes syntax highlighting for many languages, along with other neat features that make it great for a lightweight text editor.
Dan Herbert
+2  A: 

I have actually put together a list of my favorite tools on my blog:

http://www.coderjournal.com/essential-software/

Then there is always Scott's list, which is way more complete than mine:

http://www.hanselman.com/tools/

Nick Berardi
+3  A: 

To help with traversing through code in a command line environment ctags and cscope make life a lot easier.

Antonio Haley
+8  A: 
UberAlex
+8  A: 
happyappa
+1 for PLSQL Developer. awesome mature well-though tool for experts. dont want to miss it.
mhaller
+5  A: 

MacOS X.

  • Xcode - Editor/IDE (Objective C, C, Java)
  • SubEthaEdit - Editor (bash, python, prolog)
  • Changes - Diff/merge program
  • Mercurial - SCM
  • Trac - Ticket management
  • Fluid - SingleSiteBrowser (Trac lives in it's own application!)
Matthew Schinckel
+11  A: 

.NET Dev:

  • Visual Studio 2008 (can target .NET 2.0 - 3.5)
  • Resharper
  • MbUnit (backwards compatible with NUnit)
  • FogBugz for work tracking
  • Subversion for source control
  • Red Gate SQL Toolkit
  • Google
  • Rhino Mocks
  • Nant
  • KDiff for diff/merging
  • MS SQL Express (or go Developer Edition if you have MSDN)
Brett Veenstra
+7  A: 

ClipX for multiple clipboard support in any program, not only inside Visual Studio

SlickRun for quick command execution

Find and Run Robot for fast desktop/start menu search or filesystem search with Locate32 plugin

AutoHotkey for keyboard remappings, with my own keyboard mappings,

F4+F4 To close any window

Alt+Alt To open Find and Run Robot process list (similar to Alt+Tab but with filters)

Alt+1 Send active window to half up screen (useful for comparisons in one monitor)

Alt+2 Send active window to half down screen

Alt+0 Switch active window to monitor 1-2

...

MouseGestures (AutoHotkey script) to enable mouse gestures across applications

PabloG
I'm crazy of FARR too.
Emmanuel Caradec
+10  A: 

IDEs and Text Editors

Visual Studio
Eclipse
EditPadPro
EditPlus
Notepad++
Notepad2
SlickEdit
FireBug

Diff/Merge

BeyondCompare
WinMerge

Source Control

Subversion
Git
Bazaar
Mercurial
SVK
TortoiseSVN

Build

FinalBuilder
NAnt

Bug/Issue Tracking

Mantis
FogBugz
Trac

Learning/Research

Not going to list a ton of sites but just going to go with the suggestion of The Internet. And, really, that one applies to most things in modern life and not just software development.

(Going to have trouble keeping up! Will do linking later.)

Mat
I find your lack of faith in vim/emacs disturbing :)
ldigas
If you use Trac (http://trac.edgewall.org/) you should have a look at Agilo for Scrum (http://www.agile42.com/cms/pages/) It's not only useful when you are doing Scrum but is also providing a nice interface.
Doro
Sorry the right link for Agilo is: http://www.agile42.com/cms/pages/agilo/
Doro
A: 

I personally just bought a copy of SlickEdit. Great editor (vim emulation + integrated IDE features = yes please!), expensive, can be kinda clunky. Beyond Compare is a great diff tool. As far as version control, I like Git, but SVN is great and widespread. I need a good shell, and fish is my favourite.

Bernard
+1  A: 
  1. ClipX
  2. Crimson Editor
  3. allSnap
  4. FileZilla
  5. Firebug
  6. Photoshop
  7. Colour Spy
Kevin
+1  A: 

I figured that since there are lots of good answers here that I would make my own answer, mark it as The Answer, and edit it up with everyones suggestions. All fine except I can't accept my own answer... Not really sure what to do about that.

Mat
Summarize the answer in the question text like http://beta.stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-unofficial-faq did
David Schmitt
+2  A: 

Similar question: What are your must-have tools?

Zack Peterson
A: 

File/Folder comparison: Beyond Compare (not free). I used WinMerge years ago but it didn't have folder comparisons at the time.

A: 

If you are using Visual studio, you have to get Reshaper

Visual studio is essentially an incomplete product without it. I cannont stess this enough.

http://www.jetbrains.com/resharper/

Dan
A: 

Want: Visual Studio 2005 Subversion NSIS

Have: Visual C++ 6 PVCS 5 InstallShield 5.5

Yes, the average age of my development tools is 14 years...

graham.reeds
You poor bastard.
TraumaPony
A: 

IDE: Oracle JDeveloper

It was essentially forced upon me by my job, but now I adore it. It's my first stop for Java/JSP/JSF work (it can also do PHP with a plugin). The zero-configuration embedded application server is also quite awesome.

Also, another vote for Beyond Compare. I just discovered it a few weeks ago when Jeff Atwood blogged about it.

Matthew Ruston
A: 

WinMerge for diff/merge and TortoiseSVN for CM are the first things I install after Eclipse.

Gerald Bortis
+8  A: 

I find TestDriven.NET indispensable when unit testing with .NET. It's by far the best test running tool I've used. It's great when you just need to run a single test in the VS debugger. Just right click on the method in the IDE and choose "Test with -> debugger".

Wilka
FYI -- you can also run single tests with the 'Test View' that comes with Visual Studio. Just right click on a test in that view and select 'Debug selection' or 'Run selection'
Dan Esparza
A: 

MySQL Workbench is pretty amazing. It's a way to set up your tables/and stuff visually, produce pretty charts to tape to your wall, and it has a nice export tool, for full create scripts, and will also read previous exports to create an ALTER script based on Diffs.

mabwi
+61  A: 

Another one-up for SysInternals. You can mount their tool repository as a shared drive:

\\live.sysinternals.com\Tools

I just copy over all the files into C:\Program Files\Bin, then add that to my PATH.

farmerchris
Wow, thanks for sharing this
Jonas Gulle
These tools are *unbelievably* useful on Windows. I didn't realise you could see them with a plain old UNC path!
j_random_hacker
I literally LIVE off of procmon.exe some days. Never thought I'd learn as much as that little beauty has taught me... :D.
KSimons
+1  A: 

These are the tools I use every day.

  1. Visual Studio 2008
  2. Visual Studio Team System 2008 Team Explorer
  3. SQL Server 2005
  4. WIX
  5. Sandcastle
  6. Notepad++
  7. "The Internets"
Patrik
Where can I find these "Internets"?
spoulson
I'll take two :)
ldigas
+2  A: 

My list of daily used applications:

They are not necessarily the best in their fields, but as they say: "pick one tool, take the time to learn it, and squeeze it".

Ok, nobody says that.

Leonardo
+4  A: 

For Regular Expressions:

Pascal
+1  A: 
  • Resharper - must!!!
  • Just started using VisualSVN. (Seems to make some of Resharper's refactorings a lot easier when using Subversion.)
  • We actually use www.unfuddle.com for our subversion reposity. We are a small team working from 2 different locations.
  • GhostDoc for VS 2008
Robin Robinson
+11  A: 

Continuous build: Hudson

Seriously, the guys who put Hudson together did a great job. It's a single WAR (Java Web ARchive) file that contains an embedded web server and allows you to setup a continuous build server with a single command.

The web interface is great with good feedback through the use of AJAX.

This thing puts a smile on developers' faces when I show it to them. It's that good.

Issue tracking: Jira

The best issue tracking tool I've used in 15 years. Developers and managers like it. Web-based with a clean interface.

Steven Dick
I was on a project that used Hudson and I thought it was great.
Nosredna
A: 

I am a huge fan of Powershell. Don't be fooled by the administrator tools credentials, if you do development in .Net or want a OO scripting language on your Windows box that puts the UNIX equivalents to shame, this is it. I also use GVim and Notepad++ on a daily basis.

John Channing
+7  A: 

Linux (Gnome):
Meld is a great tool that I've been enjoying recently.

From their homepage:
Meld is a visual diff and merge tool. You can compare two or three files and edit them in place (diffs update dynamically). You can compare two or three folders and launch file comparisons. You can browse and view a working copy from popular version control systems such such as CVS, Subversion, Bazaar-ng and Mercurial.

Doug
meld is excellent, i'm eagerly awaiting a windows port someday
Matt Joiner
+1  A: 
  • SQL Prompt from Red-Gate. Man I love that thing.
  • Fiddler 2. A must for web development.
  • ReSharper. Just pure sweetness.
Craig
+3  A: 

.NET related:

  • Resharper
  • Agent Smith Plugin for R#

Delphi related:

  • Model Maker code Explorer

Xcode related:

  • Instruments is my favourite programming tool!

Javascript:

  • Aptana IDE

Misc:

  • big fan of Netbeans for Java and Rails coding
KiwiBastard
+1  A: 

Two apps I use frequently are..

-SQL Prompt from Red-Gate software (Intellisense for SQL)

-Notepad++

jinsungy
+1  A: 

MZ Tools and Smart Indenter for Excel development...even if it's not a "proper" language it's nice to write nice code in it!

A: 

Environments: Eclipse (C/C++, Java, PHP, Ruby, Rails), EiffelStudio (Eiffel), Visual Studio (.NET), Expression Studio (.NET design)

Text Editors: jEdit

Shells: Cygwin, PowerShell, Unix command line tools for Windows

Compilers: MinGW (Windows, C/C++)

Version Control: TortoiseSVN (SVN), TortoiseCVS (CVS)

Mathematics: R (statistics), Octave, Maxima, Singular CAS (still comparing the functionality of the last 3...I'll probably choose 1)

Art: GIMP, Inkscape (Scalable Vector Graphics)

Thomas Owens
+1  A: 

It depends.

You should consider answering the following questions:

  1. What development do you do?
  2. What kind of projects are you working on?
  3. Do you need some design tools?
  4. What is your budget?
  5. What is your system configuration?
Niyaz
+1  A: 
  • A good launcher - I use Launchy Make sure you get the Weby plugin as well.
  • Code snippet editor for VS (obv if you dev in VS) I use Snippy.
  • Good notepad, I personally use Editra.
  • Paint.NET - Its awesome, donate if you like it!
  • A Sync tool for all the odd files that you like to keep with you (supporting shortcuts for Launchy etc.. I actually use Live Mesh.
Rob Cooper
+2  A: 

I like these free utilities:

  • ClipX - very nice clipboard manager
  • Unlocker - must have Explorer extension.
  • Snippet Compiler - compile your .NET snippets without loading MSVS
  • Process Explorer - great replacement for Task Manager
  • Windows Desktop Search - instantly find documents, e-mail, attachments, etc. Plus nice quick launch functionality (like in standalone program launchers)
aku
A: 

Slick Edit Gadgets are a great addon to VS...I particularly like the line count. And they are free! The full versions I nice too, but may not be worth the cost for everyone.

VSWindowManager is a great tool for keeping window "Profiles" in Visual Studio. I use it all the time for switching between full window text editing and the usual window with Solution Explorer, Errors, Output, etc.

VisualSVN For VS Subversion integration...if you use VS and work in a subversion environment, this is hands down the best $50 you can spend. The time and sanity saved is worth every penny. I even bought it for work myself because they were too cheap to get it for me...I like it that much.

Adam Haile
+5  A: 

Some Mac Applications for Web Development.

If there is no $/€ amount listed assume the application is free. My "must haves" are always the top listed one in the group (with the exception of Coda because I haven't purchased it so I don't know). The rest listed are all other very popular applications used by others.

Local Server:

  • MAMP - contains Apache, MySQL, SQLite, PHP, and phpMyAdmin
  • Locomotive - contains a Ruby on Rails stack
  • Ruby Stack - contains a Ruby on Rails stack

Editors:

IDEs:

FTP:

Graphics:

Styles:

General Development Tools:

Source Control:

  • There are a number of SVN clients but most of the good ones are in beta/pre-release, and the free ones are easy to find. As always you can use the Command Line for any of these.
  • git and github
  • svn (builtin) and Versions or SVNx

Browsers:

Windows Emulators: (you should get these for cheaper almost always)

Utilities: (for everyday things to improve productivity)

  • QuickSilver - Application Launcher, Shortcuts, Hotkeys, an absolute must have
  • LaunchBar - $20 - Alternative app launcher
  • TextExpander - Word Expansion anywhere (typing "nname" => "Joseph Pecoraro")

Gosh, I know I missed a bunch but I think this is a good foundation for listing applications. To go along with this you really need links to documentation websites, etc. but that is really outside the bounds of the question.

I hope you bought a mac!

Joseph Pecoraro
A: 

There are many, but there are some that I find myself installing before I even get started:

I have found Copernic to be much better than Windows Live Search, even under Vista.

If you have > 1 monitor, then Ultramon is indispensable.

In Firefox, Mouse Gestures.

JosephStyons
A: 

There are many, but there are some that I find myself installing before I even get started:

I have found Copernic to be much better than Windows Live Search, even under Vista.

If you have > 1 monitor, then Ultramon is indispensable.

In Firefox, Mouse Gestures.

JosephStyons
+1  A: 

now we know that stack overflow needs a merge feature ;)

Jiaaro
+24  A: 

The only must have is version control and file backup It doesn't really matter which version control you use as long as you have some way to track what changes have been made to the system.

Matthew Watson
+5  A: 

Procexp and Procmon are critical sysinternals tools for diagnosing tricky configuration problems with assemblies, dlls, registry entries, and the file system. If you are a windows dev and the sysinternal tools are not part of your toolbox and you are cheating yourself.

Fxcop for managed code and Prefast for VC++ code (particularly with SAL annotations) are incredibly helpful for setting a standard code quality bar and keeping it across a team. If your app requires it this can be critical for writing secure code.

VMware and Hyper-V are incredibly useful for setting up and isolating difficult bugs.

Obviously the VS debugger (disclosure .. I worked on the vs debugger). With the VS debugger there are data visualizers that can be incredibly helpful for specifc tasks. Josh Smith's "Mole" for debugging WPF is a good example and I believe there is a 3rd party visualizer for datasets that is much better then the default one.

For deep debugging of the clr you need to use SOS, which has support in VS, but is often used from windbg.

For trapping production problems and debugging offline you should implement minidump support in your app.

Steve Steiner
Could you edit your answer to *highlight* product names?
J.F. Sebastian
+1  A: 

Well, I know that this is unlikely to be believed, but that's fine by me:-

The C++Builder IDE from Codegear gives me such a great head-start on developing Windows GUI applications that I'm almost unwilling to recommend it in case my competitors catch on.

It's not perfect, but the combination of C++, two-way visual RAD design, a well tried and tested application framework (VCL) and slews of third-party components (basically, all Delphi components since ~1995) hit a sweet spot for me.

Otherwise, +1 for for the usual suspects: SVN, TortoiseSVN, Fogbugz, Winmerge.

Roddy
+4  A: 

Even when working all day long in Visual Studio, emacs is a must-have, if for no other reason than its macros.

You can configure VS to easily edit the file in Emacs -- just add emacsclientw.exe to Tools->External Tools.I've used this for years, but as of v2008, VS will *frequently* ignore on-disk changes and it's FRUSTRATING.Has anyone else seen this problem, and have any way to fix it?
NVRAM
A: 

I am a big fan of xplorer2, it makes navigating the file system more programmer friendly. I am sure everyone will agree that using the search capability in Windows XP is infuriating; Xplorer2 allows you to search across directories and inside files, although not quite grep it is very useful. It comes with a nice lightweight replacement of notepad.

Frank
A: 

Eclipse PDT for PHP development on Linux.

Tomas Kohl
A: 

Of the tools I have seen on the list that haven't been mentioned one of my favorites is "Dave's Quick Search Deskbar" which can be found at http://dqsd.net/ it's ability to use switched shortcuts for things like MSDN and the MS Knowledgebase Q articles are outstanding. There are probably 30 of the shortcuts I use constantly when programming and well over 200 odd searches ranging from FedEx Tracking number search.

For quick and dirty UI prototypes I have found I am using the Pencil Firefox add on which is a handy SVG Image editor. There are enough stock UI widgets built in I can make an interface in 3 or 4 minutes to send off as a .PNG for a decent approximation. Pencil can be found at Pencil Homepage

Robert
A: 

In addition to many of the above, I'm a big fan of MaxiVista. I use it with two laptops each with an external monitor, and uses it in two scenarios: 1. Extending the screen so that I can use four monitors simultaneously, or 2. Control the secondary computer with the same keyboard/mouse as I use on my primary computer just by moving the cursor over to the next monitor.

Geir-Tore Lindsve
A: 

REsharper Paint.NET Fiddler Notepad++

are my main goto's

Sara Chipps
A: 

While programming I use snagit and evernote.

Snagit is great for screen prints. You can set it up to hot-key captures into a stack of screen captures with a name that counts up. I like to use them to keep a chronology of runs of some of my output. (Techsmith also makes Camtasia studio. A must have for demos.)

Evernote is a great notepad program that creates a continuous tape of just about anything. I paste code into it all the time. It has a nice little search filter. It is pretty cool to grab a copy of the website you are developing each time you change it. Great way to show changes without much work.

Stradas
A: 

I'd second IntelliJ IDEA as a Java IDE. I keep on trying others but going back to IDEA. Built in refactoring, almost psychic code completion, good debugging, good integration with almost every popular tool, and usability which has clearly been thought about.

Nick Fortescue
A: 

For the Mac:

Textmate

stevechol
A: 

GVim - I've tried to use other editors and larger IDEs and such, and keep coming back to good old gvim.

sherbang
A: 

Git for version control. Works great by itself, or as a svn client with git-svn.

sherbang
+1  A: 

A good REPL:
When programming in python I live in ipython and am constantly testing things out next to my editor.
When programming in Java beanshell gets plenty of use.
When I write PHP I miss having an easy shell to work in.
Edit, save, run, debug, edit takes a lot longer.

sherbang
A: 

rssbandit - rss reader

trayit - for minimizing windows to tray. Hate having too many on taskbar

Crippeoblade
A: 

For .Net:

http://www.linqpad.net/

khebbie
+4  A: 

Here's what I use everyday:

Here's what I use often:

There is probably better out there, but that's what we use:

Sébastien RoccaSerra
+1  A: 

I write code in Perl and C.

Debugging:
gdb - for C debugging
perl - for perl debugging

Editing:
vim - I try to never use the mouse. Some prefer Emacs. It's a matter of tradition for me. I typically use vim when I want to focus on a task that I'm familiar with. I use Visual Studio when I absolutely need the context-completion and object-browsing.
MS VS2005 - Microsoft has the best context-completion and object-browsing I've ever used.
Viemu - Sometimes I want vim in visual studio- this is the only tool I know of that provides this capability. However, I've realized that one of the reasons I use vim is to decrease the amount of screen clutter. Viemu doesn't help with that much.

Diffing:
kdiff3 - I don't know how I'd survive without a decent merging and diffing tool. This does the job reasonably well. It's gui-based but you can construct merges using keyboard shortcuts. That's a boon.

Documenting:
MediaWiki - If it's not in the source code, we use a wiki. This is a good solution for non-deliverable document control.

Bug Tracking:
Trac - for small shops, this integrates bug tracking and revision control reasonable well.

Revision Control:
Subversion - Very well supported in the industry. Almost as ubiquitous as CVS. The only feature it's missing is merge-tracking. I understand that's a feature planned for a future version.

schwerwolf
A: 

For a good list of available tools, check out Scott Hanselman's recommendations.

In practice I don't see how you could really use all of those tools well. Here is a pared down list of what I use in my 2 separate development environments since I split my time roughly in half between C# and Python. About half of these tools are free.

  • SVN (Tortoise, anksvn, subvert for Eclipse. Die StarTeam, die!)
  • GridMode (cut down on window positioning time, long live the keyboard!)
  • TaskSwitchXP Pro (no Vista for me)
  • Cygwin (Used mainly for grep and scp)
  • ReflectionX
  • GVIM (yes, I'm a vi guy)
  • Excel (todo lists, occasional code generation)
  • Outlook + SpamBayes + Lookout (makes Outlook a little less painful)
  • Toad for Oracle (Nice tool, but I wish the ER diagrams were more display friendly)
  • Visio (Used for ER diagrams mainly, but I wouldn't recommend it.)

  • Eclipse + Pydev + viPlugin (I'm hooked on debugging in an IDE)

  • Ant for automated builds and remote deployments

  • Visual Studio 2008 + viEmu

Missing Tools

  • Bug/Issue Tracking DB (I can't currently justify the overhead for myself)
Cory Engebretson
A: 

kdiff3 - works in linux and windows

sleep-er
A: 

trac - a great way to view your svn tree + wiki + bug tracking

sleep-er
A: 

Windows XP and later:

Programmer's Editor:

On Windows XP and later, I recommend TextPad. It is an excellent low-cost editor, which supports multiple language configurations and good but limited integration with 3rd party tools

I also use UltraEdit-32 from IDM Computer Solutions. It is not as good for multi-language development, but it supports editing files accessible with FTP.

UNIX/Linux remote sessions: puTTY is an excellent free program for this.

+1  A: 

On Linux(Ubuntu):

On Windows(Vista):

A: 

Cygwin or, if in Vista Ultimate, the Unix Subsystem. Mostly for the purpose of having access to grep.

Blinky
A: 

VIM, putty, firebug, firefox.

A: 

Here's what I use daily for console development on a windows machine.

Source Control: TortoiseSVN

IDE: Visual Studio 2005

IDE Addin: Visual Assist X

Diff/Merge: Beyond Compare

Wiki: Trac

Dara Kong
+19  A: 

Can't believe I'm seeing Trac (http://trac.edgewall.com) so seldomly, it's such a great tool: combines and integrates Wiki, Bug Tracking, SVN, and Project Planning, plus it has a bazillion plugins: http://trac-hacks.org

Epaga
+1 for trac-hacks
Cawas
A: 

2 spring to mind for me...PSPad for editing and DevProject Manager for storing code snippets

+5  A: 
Serhat Özgel
+6  A: 

If you're coding with Visual Studio, Visual Assist X is one of the best addons you could ever find.

slicedlime
+5  A: 

Topics in Pragmatic Programmer related to tools:

  • Learn a Text Manipulation Language
  • Use a Single Editor Well
  • Don’t Use Manual Procedures
  • Costly Tools Don’t Produce Better Designs
  • Write Code That Writes Code
  • Always Use Source Code Control
  • Use the Power of Command Shells

Grab the book for the details.

kms
A: 

For PHP development, I use NuSphere PhpED.

A: 

An automated build and test environment ... For Java, I use

  • Subversion
  • Maven
  • Continuum
  • Archiva
  • JUnit
  • JWebUnit
  • JUnitPerf

Everything is built, deployed and tested upon every checkin!

Steve Moyer
A: 
  • vim and my .vimrc
  • ack, a better grep for programmers
  • Subversion, although we're using Bazaar on Drizzle and I like it plenty
  • A well-stocked AIM buddy list
Andy Lester
+1  A: 

My recommendations aren't specifically programming tools, but they help organize my workspace while I'm getting things done.

WinSplit Revolution -- I like to be able to quickly maximize, tile, and organize my windows with a quick keystroke or two. I threw together a little script to do the same thing in Linux because I could find nothing like it. I can't stand working for long on computers that don't have something like this now.

VirtuaWin -- Virtual desktops for Windows that actually work half-decently. Not an incredibly slow piece of junk like Microsoft's official powertoy.

Launchy -- Launch programs via keyboard. I use Gnome Do on Linux, but it's not as good.

Terhorst
just downloaded WinSplit and it's awesome.
Sylverdrag
A: 
  • multiple (aka virtual) desktops - truly indispensable for me. I like to keep a lot of windows open, and find it much easier to spatially organise them than have to Alt-Tab through fifteen things to get to a particular window. Most *nix WMs do these; for Windows, others have pointed out VirtuaWin, which is lightweight, configurable and works pretty well.
  • vim/gvim
  • bash - achieve useful tasks that no GUI can do with a (mildly cryptic) one-line shell script
  • sed, awk, grep, find et al - be as expressive in my programming environment as I want to be in my programs
Sam Stokes
+2  A: 

First, find a good multi-file text editor / IDE and stick with it, learn all you can about it and extend it to your needs. Choose carefully because moving is tough once you've become familiar with one. Key features to look for:

  • regular expression find/replace
  • user macros
  • unicode support
  • inbuilt multi-file search
  • multi-language syntax highlighting
  • community / continued support from developers
  • tools support (i.e. customizable launching of other programs like diffs etc)

As my main text editor, I love TextPad but it costs a little and doesn't have proper Unicode support. Notepad++ is a good and portable alternative. I use Notepad2 to open single text files because it's very fast and Unicode-smart.

Aptana is quite wonderful for all your web development needs - and is available on Linux too. Especially good if you find code auto-completion useful or are used to Eclipse.

Use Firefox and learn to use Firebug. It will make your web development life so much easier. Oh, and don't forget to get Firebug Lite as a bookmarklet for getting some of those features with IE, Opera, etc. Install the Web Developer extension too which has useful "view cookies", "CSS off", "images off" features etc.

To manage your own development, I like DevProject Manager. Others have covered source control in detail elsewhere on this page, but I like Subversion.

A good diff utility is vital, especially for managing releases across servers. WinMerge is great and is available as a Portable App. The best thing about it is that you can navigate directories for changes (like Windows Explorer with diffs visible for all the files - changed/same/new).

Filezilla is a good and portable FTP client, or you could try the FireFTP Firefox extension.

I'd also recommend the following handy utilities:

Certain little tools make everything that little bit easier (all these are XP/Vista):

  • PureText (paste text without fonts or other formatting via "Windows key+V")
  • GridMove (break your screen space into parts like having several mini-monitors)
  • XNeat (move taskbar items around,change process priorities, transparencies)
Odilon Redo
A: 

Agent Ransack is a tool I use for searching many files for contents in Windows. It is fast, and powerful.

torial
A: 

I'm mostly developing on FreeBSD but use Mac OS X as my main desktop so I use TextMate for text editing and various UNIX utilities coming from MacPorts. I use Fusion for creating & managing FreeBSD VMs. My version control system of choice is Mercurial, a decentralized vcs. Scripting is done in Ruby.

Being a Ruby fan, I'd recommend Redmine for bug tracking/releasing/forge. It is evolving quite rapidly and has the same feature set as Trac.

Keltia
A: 

When Developing software for Linux I discovered something shocking: There is no such thing as "Essential" tool. you can write code using simple text editor and debug the program by writing logs. And your understanding of the program would probably increase.

However since most of use need to maximize our output in order to create value to our companies every tool that its cost is less then the time it saves should be considered essential.

Dror Helper
+1  A: 

On Linux, C, C++, Java

  • Editor : emacs with mode/plugin like ECB (code browser), Cedet (ide), JDEE (Java specific ide), modes for Verilog, VHDL, you name it
  • Debugger : gdb with ddd
  • Compiler tool : gcc
  • Repository : TkSVN, TkCVS, SVN, CVS
  • Memory : Rational Purify, Valgrind
  • Code coverage : Rational PureCoverage, gcov
  • Profiler : Rational Quantify, gprof
  • Unit test : CppUnit
  • Code Review : ReviewBoard
  • Compare codes : Tkdiff, diff
  • Help at your finger tips - man
  • Roll your own : Shell Scripting, Perl, Tcl, Python
heisen
A: 

Best Regular Expression Editor I know for Windows is Expresso. It has a designer and even more important, an automated analyzer, that can easily be used for documentation of complex regexp snytax.

For merging I also use SourceGear DiffMerge. And the rest of the tools includes a good Text Editor and a good IDE.

FrankS
A: 

Expresso is good but RegexBuddy is much more usable.

Regex Buddy Link

A: 

As I do all my programming these days as just noodling around, I only use Squeak for stuff, and if I need to achieve anything it will usually involve cygwin commandline tools or Xemacs for text processing.

A sensible alternative for all of those might be something like bigloo + xemacs.

Marcin
+2  A: 

From a Gnome user's perspective...

Mark A. Nicolosi
A: 

I'm very happy with Subversion + Trac for integrated source code control, repository browser, issue tracker and wiki. I run it on an Apache web server which also provides the authentication mechanism. Trac is very easy to set up and use.

Caroline Orr
A: 

Some of my favorites:

  • SlickRun (launcher - a must!)
  • Directory Opus (Explorer replacement on steroids)
  • Compare It! from grigsoft.com (for file comparison)
  • TortoiseSVN (GUI client on top of Subversion)
  • SnagIt (screenshots)
  • Notepad++
AtliB
A: 

I'd say something like VMWare or Virtual PC would be a good start. Although it isn't as fast as raw hardware you'll gain time when you want to start clean or when you want to try out something new. Also switching between projects with different tools (versions of visual studio, source control, frameworks, factories & generators) is much faster!

thijs
+1  A: 

Hello and good day for everyone

If you plan to play with XML i recommend the use of XMLSpy Enterprise Edition
If you plan to play with databases i recommend the use o AquaFold Aqua Data Studio
if you plan to play with UML i recommend you to use Enterprise Architect
If you plan to play with java i recommend you the use Netbeans
If you plan to play with OS compatibility a i recommend you to use VirtualBox
If you plan to play with php i recommend you to use Delphi for php
if you plan to play with the web i recommend you to use Google Chrome
If you plan to play with .NET framework i recommend you to use Sharpdevelop , Visual Studio better

Thats all With no more.... bye bye

yeradis
A: 

Shameless self plug: I also find my own RefactorBuddy invaluable.

And without reservation, ProGuard Java code obfuscator/shrinker.

Software Monkey
+1  A: 

Thanks, a lot of nice tools listed here. Time to try some of them. Here are what I use currently.

  • Text Editing: Ultra-edit
  • Browser: Chromium
  • Note Management: Evernote
  • IDE: VS 2008
  • Compare/Diff: Beyond compare
  • Remote Server Manager: RoyalTS
  • JS Debugging: Firebug
  • Python: Wing IDE
kushin
+1  A: 
nzpcmad
A: 

UltraEdit for ASCII editing

MyEclipseIDE, VS2005

JUnit, Ant, Subversion & TortoiseSVN

Sun Glassfish Server

MySQL

PuTTY, FileZilla

Newsgator for RSS reeds

Fiddler for HTTP debugging

I also use Sun's VirtualBox for having different developer setups (java, .NET) without cramming everything into one.

+1  A: 

NDepend: It is a static code analyzer that will let you explore your code base, and write quality and design rules.

See all feature of NDepend here http://www.ndepend.com/Features.aspx:
- Code Query Language (CQL)
- Compare Builds
- 82 code metrics
- Manage Complexity and Dependencies
- Detect Dependency Cycles
- Harness Test Coverage Data
- Enforce Immutability and Purity
- Warnings about the health of your Build Process
- Generate custom report from your Build Process
- Diagrams
- Facilities to cope with real-world environment

Patrick Smacchia - NDepend dev
A: 

One tool that I always miss on Windows is a good window manager. I suppose this is one reason why Windows (and Mac) developers tend to like IDEs better than old Unix folks.

On Linux I prefer Blackbox -- it's features fit my work style, and it tends to stay out of my way.

A: 

Beyondcompare
EditPlus
Firefox
Miranda IM
MyBase
EverNote

bo
A: 

My current development tool list:

  • Visual studio 2008
  • Resharper
  • Powershell
  • SQL 2005
  • MYSQL
  • Firefox + Firebug
  • Google
  • Sam Cogan
    +1  A: 

    For development process tools we use some of the Atlassian products (FishEye repository browsing, Crucible peer reviewing tool, Confluence wiki) and Hudson - which (echoing sentiments above) is on of the greatest development aids I have ever used.

    JIRA is the best issue management tool I have ever used, but am still a fan of XPlanner in certain cases.

    The more they integrate the better.

    bowsie
    +2  A: 

    A brain, paper and pen

    Guillaume
    A: 
    • Vim - no matter how many IDEs companies make me try and use I still wind up cutting all the code in Vim and only using the IDE to manage the compilation. Vim is very nice, very scriptable and a charm to use remotely.
    • iTerm on Mac, Gnome-Terminal on Linux Any terminal with tabs that lets me configure shift-left and shift-right to be next and previous tab. The number of times that's helped me rapidly switch back and forward between two pieces of code or code and output to diagnose problems. I am still looking for a decent Windows terminal app.
    • Emacs - I used to be an Emacs boy but changed to Vim recently. Matter of preference but all the same pros as Vim, different syntax and keyboard shortcuts. Good to know both editors in case you get stuck with one of them.
    • Redmine (http://redmine.org) - I love this tool. SVN/GIT/Bazzar/Mercurial integration, ticket tracker, wiki, workflow all rolled into one pretty tight tool.
    • Decent Diff/Merge tool. I was spoiled by the tool in ClearCase when for code review/merge. I haven't found a tool quite as useable (or as ugly) since.
    • Vim - can't stress it enough
    • Good reference book for your language(s) of choice - no matter how many online resources there are I can guarantee that the Net will be down at 10 minutes to crunch time and you need to look up some obscure language feature in a hurry.
    Adam Hawes
    A: 

    The 1st step to design the web page is to design layout. The layout generators will save your time.

    unigogo
    A: 

    LLBLGen for code generation, it is brilliant.

    tbone
    A: 

    Source Control : Subversion

    Bug tracking : FogBugz

    Text Editing : Ultra Edit and vi

    SQL Editor : Aqua Data Studio

    Cocoa/ Objective C : XCode

    FTP : FileZilla

    Browser : Safari / Opera

    ...and a decent spreadsheet package (Excel) to match and concatenate delimited lists of data together and parse as SQL commands...:)

    Kevin Horgan
    +1  A: 

    ide: visual studio / netbeans (zip file!, almost portable)

    editor: notepad++ (portable)

    file comparison: winmerge (portable)

    source control: subversion, tortoise

    ticket control: redmine

    file manager: free commander (portable)

    explorer: IE, FF (portable), chrome (portable)

    FF plugins: firebug, web developer, xmarks

    sites: STACKOVERFLOW!!!, gotapi

    miscelaneous: launchy (can't live without it!)

    virtualization: virtual box (I have a machine image for every environment)

    office: openoffice (portable)

    lamp stack: xammp (portable!)

    disk usage: windirstat (portable), scanner (portable)

    pdf viewer: foxit (portable), sumatrapdf (portable)

    uncompressor: 7-zip portable

    M$ sql comparison tool: sql delta

    M$ sql management: visual studio sql manager

    mysql

    mysql management: phpmyadmin, manager provided with mysql

    as you may have noticed, I have a special predilection for portable applications...

    opensas
    A: 

    I use the Eclipse IDE for Java development with the Subclipse plug-in for revision control of group projects and SVN as the actual revision control program. For C/C++ and python development on Linux I prefer to use gedit. For Ruby development on any platform and C/C++ and Python development on Windows, I prefer to use Scite.

    indyK1ng
    A: 

    When I am learning algorithms / data structures / programming there are two tools, which are invaluable to me - Microsoft Excel and Idle (Python GUI).

    You may laugh - but proving simple things in Excel and using Idle as pimped calculator really speeds my learning process.

    zeroDivisible
    A: 

    Wireshark when you need to know what is actually on the wire. Lots of filtering options and support for a large number of protocols.

    Rob Tanzola
    A: 
    • GCC
    • QEMU
    • gedit
    • RapidSVN

    I've dropped all the eye candy. I've decided to rough it for a while.

    dboarman
    A: 

    I don't see many Unix-platform Development tools here besides the standard vim, emacs, shell utilities, versioning, etc.

    Besides those, there are a few really powerful tools out there:

    • cscope -- Lets you search through LARGE directories worth of code quickly and easily, and even lets you run a find-replace across the whole thing. Best used with C

    • quilt -- While DVCS is really important, patching has another niche altogether. With quilt, you can easily maintain a series of patches, letting it automatically keep track of the changes you've made and diff them, and later let you roll-back or roll-ahead, and all you need to do to get the changes to someone else is give them the patch-files!

    • qemu -- A really powerful virtual machine. One really beautiful thing about it is the --nographic option, which lets you run a virtual machine in just text!

    • guake -- Just an example, though there are other Quake-style terminals that drop down and really let you get to the command-line and back from GUI really quickly.

    • xchat -- No, really. Almost any open-source project has dev's on an IRC, and the easiest way to find something out is to ping them!

    Vanwaril