I am not sure that I could get it done in three. I know that most of the ARM vendors have their tools that can be integrated directly into a generic version of Eclipse, but setting up a toolchain for Eclipse seems to be rather difficult. I can usually get it mostly working, but I always seem to miss something, and instead of spending hours to work out the problem, I usually just sacrifice soem HDD space for another IDE installation.
Yes and no. The fundamental difference between an interpreted and a compiled language is the nature of execution.
In a purely interpreted language like BASIC, the BASIC interpreter reads each line of the source code, converts it to the underlying machine instructions, and executes it, then goes on the the next line. It provides interactive development at the cost of speed, as it must translate each source line to object code before executing it every time.
In a compiled language like C, the compiler does the translation to object code and (assuming things compile and build without errors), the end result is a machine language binary that can be run directly, with no translation required. Develoment takes longer, but execution is far faster.
Python and Java occupy a place between those two extremes.
Python is like Java (and I believe C# is similar). You write Python or Java code, but you don't run it directly in an interpreter, like you would a BASIC program. You compile it, and the output of the compilation is bytecode, which is executed by the language runtime.
This is a major feature of Java, which is described as "Write once. Run anywhere." Java compiles to code targeted at a virtual machine implemented by the Jave runtime. The bytecode is the same, regardless of the machine. You can write and compile Java code under Windows and run it on a Mac. (I sometimes use IBM's Eclipse IDE. Eclipse is written in Java. I use the same binaries under both Windows and Linux.)
Python behaves similarly, and I have several products here that are written in Python and inherently cross-platform.
If raw speed is required, you probably still need to write in something like C++, compile with optimization, and link to build a binary for your platform. But current hardware gets progressively faster and cheaper, and many things are now being written in Java or Python because the underlying hardware is fast enough to provide acceptable performance and you don't have to resort to C.
Do you happen to know the title of the post, I may be able to go to the internet wayback machine and pull it up. I will be honest that the main reason that I have gone after GNU Octave is because I already have some familiarity in the language and I needed to get something done without having to learn another language. The specific version of GNU Octave I mentioned is a particularly nice version. It is kept up to date as well as improved rather constantly.
In the good old days of Scope Junction, Michael did a series of blogs evaluating the different options. As we all know the old content is not available (grumble and mutter), but if you contact him (via EDN's Design Ideas I guess) he should still have access to those blogs.
@Aeroengineer: "One of these days I will go and play with Python. It seems that it is popular"
I started to learn Python in January and this is a very powerful mathematics tool when used in combination with NumPy, SciPy and Matplotlib packages. You can work out filter coefficients and responses in a very similar way to that of Matlab/Octave -- there are a lot of libraries included on SciPy!!
Python is becoming very popular in scientific applications, and a growing number of universities and research centers are using it -- the great advantage of Python for scientific programming is its focus on code readability.
But for sure, a lot of students knows to program in Matlab language, so Octave has been a great alternative for those --like me-- who love Open Source!!
Yeah, I almost launched into learning F#, but I will wait for a while. It does look really nice, and the fact that it can be done Visual Studio is also a plus in my book. I really like the Visual Studio IDE. Eclipse is also nice, but I am not the biggest fan of Netbeans. It just has some things that make me scratch my head from time to time. My only exposure to Netbeans has been with MPLAB X, and it was a great step up in features compared to MPLAB 8, but then I started to learn the ARM Cortex M series chips from various vendors and they are all using Eclipse of one form or another. I like it much more over Netbeans. As for trying to learn C#, I have also really also enjoyed Visual Studio.
I'm not ready to use F# in production (partly because I don't think most other programmers would be able to maintain the code), but after skimming Programming F# I can say it looks groovy. It's also featured in Real World Functional Programming (along with C#). It's real mind expander (in a good way) for most programmers (including myself, although I've been using some functional techniques for years).
One of these days I will go and play with Python. It seems that it is popular. I have not used R, but like you said, it is geared towards stats. The one thing that I really like about the Matlab language is the fact that it handles the input of vectors and matricies so well. It is just as a TI calculator handles it. One of these days I may also try F#. That seems like it could be a nice language for doing numerical analysis. So much to learn, so little time!
NASA's Orion Flight Software Production Systems Manager Darrel G. Raines joins Planet Analog Editor Steve Taranovich and Embedded.com Editor Max Maxfield to talk about embedded flight software used in Orion Spacecraft, part of NASA's Mars mission. Live radio show and live chat. Get your questions ready.
Brought to you by