1,852
edits
(→General: Overhaul section, update links, etc.) |
|||
Line 11: | Line 11: | ||
==What is Octave?== | ==What is Octave?== | ||
GNU Octave is a high-level | [https://www.gnu.org/software/octave/ GNU Octave] is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. GNU Octave is normally used through its interactive interface ([https://en.wikipedia.org/wiki/Command-line_interface CLI] and [https://en.wikipedia.org/wiki/Graphical_user_interface GUI]), but it can also be used to write non-interactive programs. | ||
The GNU Octave language is quite similar to Matlab so that most programs are easily portable. | |||
The GNU Octave distribution includes a [http://www.octave.org/octave.pdf 1000+ page Texinfo manual]. Access to the complete text of the manual is available via the <code>doc</code> command at the GNU Octave prompt. | |||
The GNU Octave distribution includes a | |||
==What is Octave-Forge?== | ==What is Octave-Forge?== | ||
[https://octave.sourceforge.io/ Octave-Forge] is a collection of packages for GNU Octave, something similar to the Matlab toolboxes. When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just | [https://octave.sourceforge.io/ Octave-Forge] is a collection of [[packages]] for GNU Octave, something similar to the Matlab toolboxes. When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just "core"). Octave-Forge also serves as a test bed for code that may eventually end up in the core, and distributes binaries for systems with a lack of developers tools (mainly Windows). | ||
==Who uses Octave?== | ==Who uses Octave?== | ||
Lots of people. | Lots of people. Universities use it for research and teaching, companies of all sizes for development, and individuals for whatever private purpose. See [[Who Uses Octave?]] for a few answers. | ||
==Who develops Octave?== | ==Who develops Octave?== | ||
Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at the University of Texas. John W. Eaton | Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and [http://jweaton.org/ John W. Eaton] at the University of Texas. John W. Eaton is the original author of Octave, starting full-time development in February 1992. He is still the primary maintainer. The community of users and developers has in addition contributed some code and fuels the discussion on the mailing lists [https://lists.gnu.org/mailman/listinfo/help-octave help@octave.org] (user forum), [https://lists.gnu.org/mailman/listinfo/octave-maintainers maintainers@octave.org] (development issues). | ||
==Why "Octave"?== | ==Why "Octave"?== | ||
Octave's name has nothing to do with music. It | Octave's name has nothing to do with music. It is named after [http://en.wikipedia.org/wiki/Octave_Levenspiel Octave Levenspiel], a former professor of John who was famous for his ability to do quick back-of-the-envelope calculations. You can hear John pronounce the name "Octave" a few times [http://videolectures.net/mloss08_eaton_oct/ in this video]. We hope that GNU Octave will help perform computations with the same ease as Dr. Levenspiel. | ||
==Why "GNU" Octave?== | |||
GNU is a recursive acronym for | The [https://www.gnu.org/ GNU Project] was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system. GNU is a recursive acronym for "GNU's Not Unix"; it is pronounced [https://www.gnu.org/gnu/pronunciation.en.html g'noo]. | ||
The Free Software Foundation (FSF) is the principal organizational sponsor of the GNU Project. | The [https://www.fsf.org/ Free Software Foundation (FSF)] is the principal organizational sponsor of the GNU Project. | ||
Octave became GNU Octave in 1997 (beginning with version 2.0.6). This meant agreeing to consider Octave a part of the GNU Project and support the efforts of the FSF. A big part of this effort is to adhere to the [ | Octave became GNU Octave in 1997 (beginning with [[Release History|version 2.0.6]]). This meant agreeing to consider Octave a part of the GNU Project and support the efforts of the FSF. A big part of this effort is to adhere to the [https://www.gnu.org/prep/standards/standards.html GNU coding standards] and to benefit from GNU's infrastructure (e.g. [https://hg.savannah.gnu.org/hgweb/octave/ code hosting] and [http://bugs.octave.org bug tracking]). Additionally, Octave receives [https://my.fsf.org/donate/working-together/octave sponsorship] from the FSF's Working Together fund. However, Octave is not and has never been developed by the FSF. | ||
==What version should I use?== | ==What version should I use?== | ||
For general use, it is recommended to use the latest stable version of Octave (currently {{Release}}), available from http://www.octave.org/download.html. For development and bleeding-edge features one can obtain the development source code from the Mercurial repository https://hg.savannah.gnu.org/hgweb/octave/graph/. | |||
The used version of Octave is available via the <code>ver</code> command and a list of user-visible changes since the last release is available via the <code>news</code> command at the GNU Octave prompt. | |||
==On what platforms does Octave run?== | ==On what platforms does Octave run?== | ||
Octave runs on | Octave runs on any platform you can compile it on. Binary distributions exist for [[Octave for GNU/Linux|GNU/Linux]], [[Octave for macOS|macOS]], and [[Octave for Microsoft Windows|Windows]]. To work fully functional, Octave requires the used platform to support the underlying numerical libraries like [https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS], [https://en.wikipedia.org/wiki/LAPACK LAPACK], [http://www.suitesparse.com SuiteSparse], etc., and for plotting [https://www.opengl.org/ OpenGL] or [http://www.gnuplot.info/ gnuplot]. | ||
== How can I cite Octave? == | == How can I cite Octave? == | ||
Octave is free software and does not legally bind you to cite it. However, | Octave is free software and does not legally bind you to cite it. However, we have invested a lot of time and effort in creating GNU Octave, and we would appreciate if you would cite if you used. To cite GNU Octave in publications use: | ||
we have invested a lot of time and effort in creating GNU Octave, and we | |||
would appreciate if you would cite if you used. | |||
John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2017). | |||
GNU Octave version {{Release}} manual: a high-level interactive language for numerical computations. | |||
URL https://www.gnu.org/software/octave/doc/v{{Release}}/ | |||
A [https://en.wikipedia.org/wiki/BibTeX BibTeX] entry for [https://en.wikipedia.org/wiki/LaTeX LaTeX] users is: | |||
@ | @manual{, | ||
author = {John W. Eaton and | title = {{GNU Octave} version {{Release}} manual: a high-level interactive language for numerical computations}, | ||
author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring}, | |||
url = { | year = {2017}, | ||
url = {https://www.gnu.org/software/octave/doc/v{{Release}}/}, | |||
} | } | ||
Run <code>citation</code> at the Octave prompt for details on how to best cite the Octave version you are running. Certain Octave packages also have recommended citations in which case use <code>citation package_name</code>. | |||
Note that there are two reasons for citing the software used. One is giving recognition to the work done by others which we already addressed. The other is giving details on the system used so that experiments can be replicated. For this, you should cite the version of Octave and all packages used (you can get this information using the <code>ver</code> command), as well as any details of your setup as part of your Methods. In addition, you should make your source available. See [http://software.ac.uk/so-exactly-what-software-did-you-use How to cite and describe software] for more details and an in depth discussion. | |||
</ | |||
==When will feature X be released or implemented?== | |||
When it's ready, sooner [http://www.octave.org/get-involved.html if you help]. You can [https://savannah.gnu.org/patch/?group=octave send us patches] if you can implement feature X yourself. If you can't, some [http://www.octave.org/commercial-support.html developers may be convinced to work on your specific problem for some money]. | |||
[http:// | |||
==How can I get involved in Octave development?== | ==How can I get involved in Octave development?== | ||
Be around. Be social. Participate in | Be around. Be social. Participate in our mailing lists [https://lists.gnu.org/mailman/listinfo/help-octave help@octave.org] and [https://lists.gnu.org/mailman/listinfo/octave-maintainers maintainers@octave.org]. Find things about Octave you don't like, and start thinking about how to fix them. Many people who now contribute to Octave first spent several years helping in the mailing list before they started to delve into the code. A good way to learn Octave is to understand the problems other people are having with it, so being helpful in the mailing lists not only helps Octave as a whole, but it also prepares you to be a better Octave contributor. | ||
and [https:// | |||
about how to fix them. Many people who now contribute to Octave first spent | |||
several years helping in the mailing list before they started to delve into | |||
the code. A good way to learn Octave is to understand the problems other | |||
people are having with it, so being helpful in the mailing lists not only | |||
helps Octave as a whole, but it also prepares you to be a better Octave | |||
contributor. | |||
If you feel ready to dive right into the code, read [[ | If you feel ready to dive right into the code, read the [[Developers]] wiki page or [http://www.octave.org/get-involved.html start here]. But do not send an email to the mailing lists listing your skills and offering to help. We won't just suggest things for you to do. We lack volunteers and we do need your help, but because of that, we also lack the time to provide good guidance and mentoring. If there is a specific short-term project you would like to work on, say so, and just do it. Then ask for help or advice when you're doing it. It is a lot more important that you do something that you're actually interested on than something we suggested because it only matches your skills. | ||
skills and offering to help. We won't just suggest things for you to do. | |||
We lack volunteers and we do need your help, but because of that, we also | |||
lack the time to provide good guidance and mentoring. If there is a | |||
specific short-term project you would like to work on, say so, and just | |||
do it. Then ask for help or advice when you're doing it. It is a lot | |||
more important that you do something that you're actually interested on | |||
than something we suggested because it only matches your skills. | |||
We also need help with this wiki and the | We also need help with this wiki and the [http://www.octave.org/doc/interpreter/ manual]. These are also important tasks. The documentation is easy to patch, and the help text for individual functions even more so. Editing this wiki is even easier. | ||
[http://www. | |||
also important tasks. The documentation is easy to patch, and the help text | |||
for individual functions even more so. Editing this wiki is even easier. | |||
Accurate bug reporting is also very useful. Find and report | Accurate bug reporting is also very useful. Find and report [http://bugs.octave.org/ bugs], making an attempt to diagnose them. Eventually, you will also know how to fix them. If you want to help with bug reports or patches, subscribe to the [https://lists.gnu.org/mailman/listinfo/octave-bug-tracker bug tracker mailing list]. You'll get updates on all bug activity, and you can jump in when you see | ||
[http:// | |||
diagnose them. Eventually, you will also know how to fix them. If you want | |||
to help with bug reports or patches, subscribe to | |||
[https:// | |||
You'll get updates on all bug activity, and you can jump in when you see | |||
something you can help with. | something you can help with. | ||
Look at our [[ | Look at our [[projects]], [[short projects]], and [[Summer of Code Project Ideas]] if you need specific inspiration for coding tasks that we would like to get done. | ||
specific inspiration for coding tasks that we would like to get done | |||
=Licensing issues= | =Licensing issues= |