Following are some short descriptions of software packages that can be useful for scientific computing.
Python is a powerful and extremely versatile interpreted programming language. It is often used as the glue between different software, data collection tools, and experiment control apparatus. Python is one of the most popular languages in computational work, but it is also used in fields far outside of physics such as web design, text-processing, app development, etc.
The IPython Notebook is a powerful notbook interface for using the python language. The notebook supports markdown explanation cells with latex equations as well as code and output cells. This is a powerful format for developing, recording, analyzing, and sharing ideas. This notebook comes installed with any standard scientific python distribution such as the Anaconda Python Distribution. It is also available for collaborative real time editing in the cloud on Wakari or Sage Math Cloud.
A Nature article was written to discuss and feature the IPython Notebook.
Spyder is a python editor including the most commonly used scientific libraries, such as MatPlotLib for publication quality plots and numpy for linear algebra computations. Spyder is cross-platform, and while it can be installed on its own, it is most commonly obtained as a component of the Anaconda Python Distribution.
Julia is a new and powerful language for numerics and data analysis. Julia has syntax similar to MatLab , but is a bit cleaner and in general runs code much more quickly (speeds are comparable to C). Publication quality plots are easily made and computations are performed quickly with this open source language. Julia can be used natively in console mode, but Julia Studio provides a convenient IDE if a different environment is preferred. Also, for graphics, the Winston and PyPlot libraries provide publication quality plots out of the box.
Sage Math Cloud
The Sage Math Cloud located at sagemath.com is like google-docs for scientists. It allows creation and collaborative editing of nearly any kind of scientific documents, such as Latex, iPython notebooks, iJulia notebooks, and many others. The web-server allows access to a Linux terminal, on which nearly any computing task can be performed in the cloud. Code written in nearly any programming language can be compiled and executed, as well as edited by multiple people at the same time. The Latex editor is particularly nice, with a side by side view of the code and the compiled PDF that updates quickly and automatically every time the document is saved. In addition to all these other tools, Sage in and of itself is a powerful language similar to Mathematica that is open source, based on Python, and accessible via a standard code or notebook interface. Sage code can also be executed from within other languages, such that a sage plotting command could be placed directly into a Latex document to produce a figure, for example.
Blender is a graphics package that can be used for visualizations, diagrams, and figures. Although often used to make Pixar quality animations and movies, blender can also be a valuable tool in physics research when it comes to creating professional quality process diagrams, concept figures, etc. Blender includes 3d modeling, image and video processing, CAD capabilities, physical simulation support, spline decomposition algorithms, and countless other tools.
Notepad++ is a useful text editor with diverse syntax highlighting, extended and regular expression replacement, macro support, spell checking, and other useful features. Text editors such as this can be invaluable to scientists when it comes to programming, keeping track of or reformatting data files, and many other tasks.
Qt is a cross-platform C++ IDE and GUI library. Qt is a framework for designing applications and user interfaces that can be used on any platform. Small programs, computations, or simulations can be thrown together quickly with a professional result, and also bigger projects will not face limits as they scale upwards. Many professional applications, such as Mathematica, Skype, and Maya were written in Qt. Although this may not be a tool that many scientists use frequently, some projects could be greatly simplified by its use.