Software

Following are some short descriptions of software packages that can be useful for scientific computing.

Python

Python icon

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.

IPython/Jupyter Notebook

Python icon

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.

This notebook has additionally been extended to other languages such as R and Julia.

Spyder

Spyder IDE icon

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

Julia Language icon

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

sage math icon

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

blender 3d modeling icon

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++

notepad++ icon

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

Qt Creator icon

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.

Source Code for this Page

# Software

Following are some short descriptions of software packages that can be useful for scientific computing.

## Python

![Python icon](icons/python.png){.icon .left}

[Python](http://python.org) 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.

## IPython/Jupyter Notebook

![Python icon](icons/ipython.png){.icon .left}

The [IPython Notebook](http://ipython.org/notebook.html) 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](http://continuum.io/downloads). It is also available for collaborative real time editing in the cloud on [Wakari](https://wakari.io/) or [Sage Math Cloud](http://sagemath.com/).

A [Nature article](http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261) was written to discuss and feature the IPython Notebook.

This notebook has additionally been extended to other languages such as [R](http://www.r-project.org/) and [Julia](http://julialang.org/).

## Spyder

![Spyder IDE icon](icons/spyder.png){.icon .left}

[Spyder](http://continuum.io/downloads) is a python editor including the most commonly used scientific libraries, such as [MatPlotLib](http://matplotlib.org/) for  publication quality plots and [numpy](http://www.numpy.org/) 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](http://continuum.io/downloads).

## Julia

![Julia Language icon](icons/julia.png){.icon .left}

[Julia](http://julialang.org/) is a new and powerful language for numerics and data analysis. Julia has syntax similar to [MatLab](http://www.mathworks.com/products/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](http://forio.com/products/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

![sage math icon](icons/sagemath.png){.icon .left}

The [Sage Math Cloud](https://cloud.sagemath.com/) located at [sagemath.com](https://cloud.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](http://www.wolfram.com/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

![blender 3d modeling icon](icons/blender.png){.icon .left}

[Blender](http://www.blender.org/) 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++

![notepad++ icon](icons/notepadpp.png){.icon .left}

[Notepad++](http://notepad-plus-plus.org/) 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

![Qt Creator icon](icons/qt.png){.icon .left}

[Qt](http://qt-project.org/) 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](http://www.wolfram.com/mathematica/), [Skype](http://www.skype.com), and [Maya](http://www.autodesk.com/products/autodesk-maya/overview) 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. 
< Hide Code Edit Code >
< Up View Page Source Code Printer Friendly Version >