What are the best free software that helps you become more productive or helps you code?
views:
2980answers:
43GCC, definitely. As a Mac programmer, I can't do my job without it.
There are lots of great free software tools I use to keep my productivity high, but the software I use continuously all through the day is OpenSSH and VI.
Firefox and its extensions.
http://www.mozilla.com/en-US/firefox/
such as:
- Firebug (http://getfirebug.com/)
- Web Developer Toolbar (http://chrispederick.com/work/web-developer/)
- DownThemAll (http://www.downthemall.net/)
(I'm sure there are many, many more)
Obviously everyone's environment is very different, but I use the following all the time and find each of them very useful:
- Subversion http://subversion.tigris.org/
- Xcode http://developer.apple.com/technology/
- Java http://java.sun.com/
- GCC http://gcc.gnu.org/
- NetBeans http://www.netbeans.org/
- PostgreSQL http://www.postgresql.org
- OpenSSL http://www.openssl.org
- OpenSSH http://www.openssh.org
- Apache Project http://www.apache.org/
Of course there are many other products that I use day-to-day, especially the Google products and sites like this, but this list includes things that I use all the time and I think are amazing free packages in their own right.
There is an article that I wrote on this very subject a few years ago. Called Top OSS For Coders, I can't really say that I would change the list all that much except for this update that I posted later.
One of the best compilation of productivity tools for developers -- at least for Windows -- is
Scott Hanselman's Ultimate Developer and Power Users Tool List for Windows
Many, but not all of them, are free.
Google Reader.
No, really.
I use it to read the blogs of tons of great programmers, which is a great learning tool in and of itself.
But, then, when I find a particularly interesting tidbit, I'll tag it and save it for later.
I have different tags for different areas of development, so when I need help or advice in a particular area I go to that tag and I have a treasure trove of applicable advice and code-samples waiting for me.
Code::Blocks. It works and looks the same in Windows and Linux, plus has a profiler built in and all the bells and whistles you need from a good C/C++ IDE. It's much snappier than Eclipse or Visual Studio.
On OSX:
GUI SVN Client - http://www.versionsapp.com
GUI MySQL Client - http://code.google.com/p/sequel-pro/
GUI Vi - http://code.google.com/p/macvim/
IRC client - http://colloquy.info/ <= IRC, especially freenode.net has a wealth of resources available for most of your OSS projects. Often, you'll actually run into the devs as well...
Teamviewer - http://www.teamviewer.com - Crossplatform 'VNC' over firewalls, great for remote support
MacPorts - http://www.macports.com - Decently sized library of BSD/Unix apps for your OSX machine. Easiest way of installing Wireshark.
Neta - http://code.google.com/p/neta/ - Network Analyzer, a Wireshark light implementation
Charles - http://www.charlesproxy.com/ - My favorite webdebugging proxy. (free for demo, anyhow.)
Macfuse - http://code.google.com/p/macfuse/ - Mount remote filesystems via a number of different protocols - http://code.google.com/p/macfuse/
Launchy (Windows & Linux) AutoComplete for running programs.
Smart and zero effort UI. You press Alt-Spacebar an start typing an app name or folder, etc. And Launch auto completes for you.
I'd say LaTeX. It's a document markup language. It makes writing anything involving mathematical symbols a breeze, and the documents can be immediately compiled into postscript or pdf format. It's the standard tool of choice for scientists publishing research papers. Personally, I've used it to write math homework, my resume, personal letters...once you learn it you'll never use MS Word again. Download and documentation can be found here. Best of all it's completely free, both as in speech and as in beer!
editors:
- Kate
- Quanta+
- KDevelop
languages:
- Python
- Lua
- Bash
libraries:
- Django
general UI:
- KDE
- ssh
- screens
The GNU tools, from the helpful non-standard switches (-q on grep) to bash, I don't miss the bad old days of using a non-GNU userland.
Linux has already been mentioned, but only once.
vim and gvim, especially with the :vsp (vertical split screen).
Eclipse is big and heavy, but it can be very handy as a window manager when working on big projects on large multi-monitor desktops. Strange, but that's how I use it.
OpenOffice has been the standard office suite for documentation the last few start-ups I've done. OpenOffice 3.0 is a HUGE improvement, especially on the Mac. It also finally supports side-by-side pages (2-up editing) in the word processor.
Bugzilla isn't pretty but has nearly everything I want in a bug tracking system to be able to quantify bug metrics.
http://www.taskcoach.org/ and google docs are good for organising self.
Having good clipboard control is also a great time saver. http://clipdiary.com
Ones I like and find great value in:
Source Code Help:
* http://www.campwoodsw.com/sourcemonitor.html -- For source code metrics
* http://www.mythicsoft.com/agentransack/ -- For grep-like searches in Windows
* http://www.componentsoftware.com/Products/CSDiff/ -- For a nice visual diff tool
* http://www.scintilla.org/SciTE.html - Lightweight coding text editor
* http://www.icsharpcode.net/OpenSource/SD/ - A great IDE (and boo support included)
* http://www.microsoft.com/express/ - MS Visual Studio 2008 Express Editions
* http://www.flashdevelop.org/wikidocs/index.php?title=Features - For Flash development
Productivity Help
* http://www.python.org - An awesome language.
* http://www.cherrypy.org - An awesome web framework.
* http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx - Zip library
* http://www.blender.org/ - 3D creation software
* http://www.planetside.co.uk/terragen/ - Custom 3D scenery generator
* http://www.openoffice.org/ - MS Office replacement
* http://www.chiark.greenend.org.uk/~sgtatham/putty/ - SSH / SFTP client.
* http://www.red-gate.com/products/reflector/ - Look inside .Net DLLs!
* http://www.mozilla-europe.org/en/firefox/ - For web browser.
* http://www.getpaint.net/ - Image / photo editor
* http://www.7-zip.org/ - Awesome compression tool
ProGuard Java code obfuscator/shrinker.
Shameless self plug: I also find my own RefactorBuddy invaluable.
All currently free of charge and all outstanding:
- putty (ssh client)
- vlc (everything video)
- vmware player (for development servers)
- filezilla (s/ftp client)
- intype (free alpha/beta editor inspired by textmate)
- sketchup (google 3d cad)
- foxit (pdf fu)
- gimp (images)
- gnumeric (nice spreadsheet)
- virtualbox (free and open source virtualization that creates new vm's)
- launchy (awesomeness launcher)
- mysql (just disable UAC to install on Vista, otherwise great)
- MSYS + MinGW (C compiler and gnu basics for Windows)
- pdf creator (print to pdf under windows)
- postgresql (not ideal for intensive use on windows but better SQL standard compliance)
- prism (make desktop apps from web apps)
- r (statistics)
- skype
- tortoiseSVN
- truecrypt
- vim
- winSCP
A really nice tool is WinMover, which allows you to move windows (except the Command Prompt window - argh!) by Alt + clicking anywhere in the window and dragging (just like in Linux). Half the usefulness is lost because it can't move the Command Prompt window, but still a great tool.
Also in the "getting cool stuff from Linux to Windows" camp, Virtual Dimension comes in handy for using multiple desktops. This isn't the only solution out there, but it's as good as any, perhaps better. Unintrusive, reasonably configurable & gets the job done.
Another tool, useful for screen sharing, is CrossLoop. It makes it very easy to give someone access to your desktop (including allowing them to share control of your mouse/keyboard) and it works well through firewalls (i.e., you just get an access code from the other party, you paste it & bang!, you're connected).
Fans of Total Commander looking for a free(r) alternative might be interested in FreeCommander. Not so smooth-looking as TC, but almost on par feature-wise, and even with some extra features (or better implementations of the same features).
ECLIPSE is by far the best IDE that I've used. And because I've started a few months ago developing RCP applications it's proven to be more than an IDE.
Subversion have been the most importent OSS tool for me. Whenever I write code that is not in subversion I feel vulnerable and uneasy.
NUnit is a strong #2
Beside the above answers, I would mention some free general utilities (for Windows) that are time saver in my life of programmer, even if they are not necessarily programming tools:
- CLCL, an excellent clipboard manager
- MWSnap for my screen capture needs
- Zoom+ to look closely at pixels and measure them
- VirtuaWin, to have multiple windows with one monitor
- WinMerge for file comparing
- HxD to inspect binary files
- 7-Zip to compress and decompress files (shines on big files!)
- FileZilla for my FTP needs
- PuTTY for doing telnet
- Wireshark for sniffing network and seeing what is going on
- BabelMap to look up Unicode characters
- Flexible Renamer to changes names of files, using regexes or lot of other methods
- grepWin to find and replace in files
- FileMenu Tools for lot of little tasks
- WinSpy++ to watch Windows messages
- WinDirStat to see where the space on my hard disk is gone!
- All Sysinternals utilities!
- SlickRun to run all the above!
and lot more, but I listed most of those I use daily. I omitted text editors (SciTE) and graphic editors (mostly Gimp).
This one is for distribution, but we can't forget Inno Setup
I'm surprised that no one has mentioned the one truly indispensible tool for the modern programmer, google.com!
I'm a bit surprised by this question, and even more by most answers. It's like asking: I need a new car, which one should I buy?
Of course there are some general answers, but the open source world is already so huge that it's difficult to tell you what is best.
For a Mac, it would have to be TextWrangler. Great all around programmers text editor.
For Windows
- Reflector - best .NET tool ever
- Vim and ViEmu for Visual Studio
- GNU Unix tools (find, grep, tail, wc, etc.)
- SysInternals tools (pslist, pskill, all the cool monitors, etc.)
- WinDbg, Sos.dll and sosex.dll - great debugging tools
- ActiveState Perl
For diff'ing and merging, SourceGear's DiffMerge is the best I've found for free (though not open source). WinMerge and KDiff3 also have their merits for certain tasks.
On Mac OS X: TextWrangler, Firefox, Firebug. Also MAMP for local PHP/MySQL development.
For Web Developers such as I, Firebug helps alot. Downside it's only available for Mozilla Firefox.