The Rev Dodgson said:
This probably isn’t the best place to ask, but still maybe I’ll get some response without a load of GNU evangelism.
I’m looking into using Octave, which apparently does most of what Matlab does, and some things that Matlab doesn’t, at infinitely less cost, but reading various discussion venues I’m seeing quite a few people suggesting Python or R as good alternatives.
Any comments from anyone who has used any of these.
Any other alternatives I should be considering?
Sorry, I’ve never used Matlab, Octave, or R, so I can’t really compare them. And I expect that I don’t need Python to do a lot of the stuff that you want it for. But I still recommend Python, primarily for this reason:
diddly-squat said:
Python is a far more generalised language in that the code base hasn’t been specifically designed for implementation in a particular application space.
Python is a general-purpose language with a reputation for being relatively easy to learn and fun to use, with an enthusiastic and helpful community of users. If you have a problem when writing a Python program, whether you’re a novice or a more experienced Python user, it’s not hard to get assistance from the community or to find useful information in the archives of various forums.
…
The standard Python installation comes with a large number of useful modules (library packages) to extend the core functionality, and it’s easy to install extra 3rd party modules. For example, I use mpmath for arbitrary precision arithmetic and fancy mathematical functions. And I use GTK (via pygtk for fancy GUI creation (GTK & pygtk is often pre-installed on Linux systems). For scientific and engineering work, SciPy is quite popular.
…
Python is a modern object-oriented language, and that can be a bit daunting at first if you’re previous programming experience is with traditional procedural languages. However, object-oriented programming in Python is a lot less daunting than it is in some other OO languages, like C++. Of course, it’s quite possible to write powerful code in Python without delving deeply into the world of OOP, but you will need to use OO stuff to utilise a lot of the modules mentioned above.
When you first start to learn Python, it’s a good idea to focus on the core of the language, and not to worry much about modules until you are confident with the basics. And when you do start to explore the standard modules there’s certainly no need to master them all! The tutorial in the standard documentation ends with a brief tour of the standard library, which gives a nice overview of what’s available, and once you gain some familiarity with Python you can often guess what a module is for just from its name.
So even though the standard package comes with a huge number of potentially useful functions, you don’t need to learn about them all to be a good Python programmer. The modular design means that each module is relatively self-contained, and you can just learn about a module when you need it. And then forget the details until next time. :)