
GNU Octave 5.1.0 - lelf
https://www.gnu.org/software/octave/NEWS-5.1.html
======
nrclark
Great job to the Octave team!

Octave is a great tool, and it addresses a very real need - breaking MATLAB's
stranglehold on academic computing.

Every programming course I took as an EE undergrad (other than Intro to
Programming) was in MATLAB. 14 years later, and it's still the standard tool
in my alma mater's EE department. Having a FOSS equivalent is huge.

So raise a glass to the Octave dev team. They work hard to provide a FOSS tool
that can run MATLAB code, which gives you the software you need for self-
guided learning from university materials. Or for your all your computational
needs.

And Octave is a great tool even if you don't need MATLAB compatibility. Try it
out the next time you've got some numerical computing to do.

Not an Octave dev, just a fan of the project.

~~~
4thaccount
Agreed that: A) it and Scilab are great projects B) these would suffice fine
for pretty much any undergraduate course in linear algebra, but many courses
need Simulink and I'm not sure Scilab's Xcos is good enough. Since Matlab is
like $20 for students, it is basically free and makes sense especially when
you consider the IDE. Sure, Python and Julia are great options once you can
code. There are many students who honestly just aren't very good coders by
their sophomore and junior years. Engineering students have to code here and
there in various projects, but often don't have a full class just for
programming. Long story short, inverting a matrix in Matlab/Octave/Scilab is
more straightforward than in Python. I think Julia's syntax has enough
similarities with Matlab and is similar, but the tooling would be confusing to
students.

~~~
sizzzzlerz
You hook 'em young, they become users for life. MS does the same thing,
offering a steep academic discount for Office, VS, etc..

~~~
WalterGR
Apple also has academic discounts.

------
std_throwawayay
GNU/Octave has a great strength and weakness that it uses the Matlab language.
This is great for many who are educated with Matlab but don't know much else.
After some time I found Python and the ecosystem around numpy/scipy/matplotlib
fit my problems much better. Python just much more flexible and better suited
for general programming tasks than that weird matrix oriented language.

Why should anyone use Octave over Matlab?

\- Licensing cost.

\- Freedom.

Why should anyone learn Octave instead of Python?

\- It's a bit easier to get started for scientists who are not programmers.

\- If you mostly do vector/matrix math, the language is nice.

\- Otherwise I don't know any good point.

All in all I like a free alternative to Matlab but have the feeling that most
people are just better served by joining the much bigger Python ecosystem. (Or
maybe R/Julia/Rust which I don't know so much about in this context.)

~~~
TickleSteve
In an engineering setting, MatLab has more mindshare, but that may be
changing.

The related product Simulink is not uncommon in larger engineering firms also.

Back in the day, the community around MatLab was quite large, but likely has
declined in size in the last few years with the rise of Python in this area.

~~~
dtech
> In an engineering setting, MatLab has more mindshare, but that may be
> changing.

This has definitely been changing for a while. All engineering studies of my
old university except for computer science and mathematics have switched from
Java+Matlab to Python over the last years. I've already seen this have an
effect on workplaces, where new students prefer to use Python and are
generally allowed to.

~~~
speedplane
> All engineering studies of my old university except for computer science and
> mathematics have switched from Java+Matlab to Python over the last years

I'd love to witness this. I used Matlab heavily as an engineering student, and
now mostly work in Python. Python is definitely better for complex
programming, but where the program is simple and the math is hard, Matlab
seems like a great tool.

I'm curious what tools/libraries python users now use that brings Python up to
the usability of matlab?

~~~
dtech
> I'm curious what tools/libraries python users now use that brings Python up
> to the usability of matlab?

95% SciPy, NumPy and Spyder. I'm sure the massive savings on license costs
also make it attractive.

~~~
speedplane
> I'm sure the massive savings on license costs also make it attractive.

I remember shelling out $60 for a true license of Matlab while in college. I
remember thinking, "well you're an engineer now, and this cost is part of
that", even thugh it felt like a small fortune. But official licensed version
required you to insert the CD into the computer every time you used it, so I
gave up a got the pirated version instead.

~~~
4thaccount
Lol $60

If you get the commercial version out of college it is thousands of dollars
for base and thousands for each "toolbox". Want to have database
functionality? Thousands of dollars, optimization functions? Thousands of
dollars.

That might be worth it for national labs that like how the native IDE,
plotting, GUI, widgets, ability to put into commercial projects (they've
secured licensing for the math solvers for you)...etc. It is all better
integrated than Python even with it's nice Spyder IDE.

------
jakeogh
Sage has an Octave interface:
[http://doc.sagemath.org/html/en/reference/interfaces/sage/in...](http://doc.sagemath.org/html/en/reference/interfaces/sage/interfaces/octave.html)

------
usgroup
Octave is just great if you do a spot of computational maths for a living and
need to smash stuff out quickly.

It’s interactive, really well suited for matrix operations, has all the
packages you’d expect for analysis, optimisation, etc.

Like others have said, once you nail it in Octave, move it to C++ for
production and then wrap it in R, Python, etc to your hearts content.

~~~
4thaccount
The optimization functionality for linear programming, mixed integer linear
programming...etc is pretty much non-existent in Octave. At least the kind of
optimization common in Operations Research and used in production in thousands
of companies world-wide. Python and Julia have libraries to call out to
dedicated solvers like CPLEX, GUROBI, GLPK, and CBC/CLP that are written in
C/C++. I'm not sure if Octave has a decent interface.

~~~
usgroup
Here’s the whole non existent category:

[https://octave.org/doc/v4.2.0/Optimization.html](https://octave.org/doc/v4.2.0/Optimization.html)

~~~
4thaccount
Good to see it has some support. Still pretty minimum in comparison to Julia's
JuMP library though. I stand corrected.

------
mrreelmo
I use Python for most of my general programming needs, but in an engineering
environment MATLAB (unfortunately) still has an edge. As a programming
language it’s quite sh*tty, but it’s strength is in the high quality
toolboxes. I work quite a lot with constraint non-linear optimisation and I
still have to find a Python or Julia library as flexible and robust as the
MATLAB toolbox. I think Octave is a good FOSS compatibly solution, but the
main strength of MATLAB (the set of toolboxes) is unfortunately missing.

~~~
mlevental
[https://cvxopt.org](https://cvxopt.org)

------
jononor
To all contributors, thank you for Octave!

I used it successfully in my EE degree in 2010 for all my Digital Signal
Processing assignments, instead of MATLAB.

------
rick22
MATLAB can charge for the software but making it opensource would be really
ethical considering the software is used heavily in research. More eyeballs to
view the correctness of the software is crucial.

------
jason_slack
This looks awesome to help me take some old matlab projects and just them off.
I wish I knew about Octave before.

The docs don’t mention this but can it create candlestick charts or can I
extend using C++?

~~~
dekalog
You can create candlestick charts using the "candle" function from the Octave
Financial package, function reference is at
[https://octave.sourceforge.io/financial/function/candle.html](https://octave.sourceforge.io/financial/function/candle.html)

Also, extending with C++ is easy, see [https://octave.org/doc/v4.0.1/Getting-
Started-with-Oct_002dF...](https://octave.org/doc/v4.0.1/Getting-Started-with-
Oct_002dFiles.html#Getting-Started-with-Oct_002dFiles)

~~~
jason_slack
This is awesome. Thank you.

------
rwmj
Can anyone comment on how Octave compares specifically to Mathematica, in
terms of features and ease of use?

~~~
kccqzy
Mathematica does so much more than Octave that it's not even remotely
comparable. In terms of features, Octave inherited Matlab's matrix-centric
mindset by having the \ operator solve linear systems whereas in Mathematica
it's slightly longer (LinearSolve[m,b] or just Inverse[m].b for non-numeric
ones). But Mathematica offers symbolic computing as well, and you can very
easily go from "solving this equation with machine-precision numbers" to
"solve this equation with arbitrary precision algebraic numbers" to "solving
this equation with an unknown parameter with conditions" in a seamless way.
There are whole areas of mathematics, pure and applied, that can be done in
Mathematica but not in Octave. In terms of ease of use, Mathematica also
excels here; both data and code share a uniform notation that is very similar
to lisp, and functional programming ideas carry over very seamlessly.

I'd say if you are someone who's even remotely mathematically minded, learning
to use Mathematica is an extremely useful experience. As an example that
recently happened to me, while doing front end work I needed to construct
certain geometric figures as an SVG polygon; I used Mathematica's built in
graphics primitives combined with its plotting capabilities to find the
polygon in no time. Even though the end result is a piece of JavaScript,
Mathematica gives me a way to prototype the whole thing in an environment
that's "batteries included" and well-polished.

~~~
antnisp
Both Octave and MATLAB have had a symbolic toolbox for ages, and can export to
many vector graphics formats, from .ps to .svg.

Mathematica is way more targeted to the "general public" though. It's fairly
obvious that MATLAB started its life as fronted to FORTRAN.

~~~
BeetleB
>Mathematica is way more targeted to the "general public" though.

Actually, it's way more targeted to _mathematicians_. The level of symbolic
computation it can do is way ahead of any symbolic toolbox you'll find. When I
was in grad school, I used NumPy and my group mate used Mathematica. One day I
was looking up identities in Gradshteyn and Ryzhik (a bible for identities),
and he asked why I bother as Mathematica had it all. He challenged me to find
any identity that Mathematica couldn't handle. I thought this would be easy as
G&R has more stuff than any other identity handbook out there, but I lost the
challenge.

------
knappa
Is there a story behind why the version numbers went from 4.4 to 5.1?

------
mruts
part of one of my previous jobs involved converting code from MatLab to Scala.
Needless to say, it wasn't very fun.

Languages like Matlab, Stata, SAS, or R don't seem to be designed for
professional developers. They tend to break all the assumptions that every
other languages have (like array indices beginning with 0). I also feel this
way about Pandas, it seems like it was designed by a data scientist and not a
developer.

Because the people using these particular languages don't care about elegance
(they usually just want the graphs or papers or whatever) and that no one is
writing commercial systems that need to be maintained, there's no real
incentive for them to design a language that makes any sense.

Making things ad-hoc and less axiomatic does have its benefits however, these
kinds of languages can be surprisingly expressive and powerful.

