Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

What programming languages should an aerospace engineer know? 2

Status
Not open for further replies.

vktsn0303

New member
Sep 10, 2013
23
0
0
NL
I thought aerospace engineers used only MATLAB extensively. But on the internet I have come across articles that suggest learning JAVA and VBA to be helpful.
Is it true that even aerospace engineers use languages like JAVA, C++ and VBA extensively?


vktsn0303
 
Replies continue below

Recommended for you

It really depends on what that engineer is doing, i.e., would you use a hammer on a screw?

As a general tool, Matlab is pretty much the king of the hill. Unless you are planning on talking to hardware, Matlab is all that's needed. VBA might be useful in the context of manipulating Excel, which, by the way, is a quick tool for some analyses, since it doesn't require much programming. Python might be more useful that Java, since Python is a scientific and mathematical programming language

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529

Of course I can. I can do anything. I can do absolutely anything. I'm an expert!
 
We use any language to get the job done. The most valuable language is the one used to communicate your ideas and results to another person.
 
I'm sorry GregLocock, I am uable to recollect the Where, When and Who. It was nearly a month ago that I had come across the article somewhere on the internet.
But I have been having this doubt for a long time.

vktsn0303
 
This is just my personal opinion - and not intended to be contrary to those who have rightly pointed out there are many good options - but, Pyton is probably the easiest to learn and understand while extremely versatile. There are extensive publically available packages that allow it to do everything that can be done with Matlab, VBA, R, etc. Further, it is very easy to get data from the internet, etc. If you want to write code for compiled programs, then C/C++.
 
Here's the online MIT course in Python, it is in week 4 but I think you should be able to join, although you won't get graded because there is a quiz this weekend which accounts for zerious marks .
As usual I skipped the lectures and just do the exercises.

Having said that you'd be nuts to write in python if you have matlab available with the toolboxes you need. People are developing entire control and analysis systems for cars and then cross compiling them for other processors, without touching another language, for example. However Python to C compilers are becoming available, so cross compiling doesn't sound impossible. There certainly seems to be a critical mass of python users and developers.

Of course if you need Simulink then you are stuck with Matlab, there is nothing else quite like it, although Scilab does have a systems modelling environment, but I've never seen it used in anger (there is a free book on it and one day i will read it).

Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
From the discussion so far I take it that Python is equally powerful and helpful as matlab is but the latter being able to offer easier access to versatile tools readily.

vktsn0303
 
" latter being able to offer easier access to versatile tools readily"

that you have to pay a pretty penny for...



TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529

Of course I can. I can do anything. I can do absolutely anything. I'm an expert!
 
Thanks, Greg, I'll definitely take a look

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529

Of course I can. I can do anything. I can do absolutely anything. I'm an expert!
 
vktsn0303,

Java and C++ are object oriented languages. Object oriented languages allow you to manage massive, multi-programmer software projects. Given that C and C++ do not do exponents, they are not convenient for calculations. The object oriented stuff creates all sorts of overhead that you not need when you are working on your own. Modern computers are way faster than old ones. Probably, you do not need a compiler. Matlab and Octave are very good for calculations.

--
JHG
 
While C++ is object-oriented, this does not preclude one from writing more or less conventional C constructs.

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529

Of course I can. I can do anything. I can do absolutely anything. I'm an expert!
 
Has anyone come across Python "packages" that would be suitable for engineers?

I've been trying to pick up Python, but every time I try to do something I need to install a new module. There are many sources of example programs that won't run unless I have "X" installed. When I started with Python I went through the basics easily enough, but now that I want to use it for "real" work I have to get matplotlib, but that needs six because I'm using Python 2.7, and dateutil, and a host of others, and they were all clumsy to set up until I found out about ez_setup... and I'm still going around in circles. I'd like to get the visual modules, too, but I don't DARE to try!

Wouldn't there be a demand for big fat ZIP files with appropriate modules installed, each a tailored recipe for engineers, scientists, game developers, web developers, etc.? Does that already exist?

I know, I know, that's the "Microsoft" approach - call it bloated if you must. But I've wasted days downloading tiny bits and pieces and coaxing them to run.

STF
 
Hello There

I think the question of what language is 1) a matter of what you want to use the language for and 2) who you would be sharing your code with. I think it is too simplistic to say one is the best, they all have their niches. Forgive me but since I have a extensive experience using all these languages I feel compelled to give an essay! I hope it is helpful and not too boring.

IMHO the popularity of matlab is due to the wide availability in universities and all the built in math/plotting/debug tools make it really easy to get something working quickly... but it has a very expensive licence. Python is an excellent alternative there are many plug-ins that provide many of the same tools you find in matlab. Both of these languages are scripting languages so are not really suitable for heavy number crunching. (scripting languages are generally slower because the computer needs to interpret the text before executing the instructions). So there is a limit to what you can practically achieve with these languages.

For heavy number crunching (i.e. CFD, FEM), languages like Fortran, C and C++ are most practical. Fortran is an old language (some may say obsolete) that was developed specifically for engineering calculation so there are a lot of legacy codes in this language. With good code practices you can achieve the same or better efficiency with C and C++. C is considered a "close to the metal" language where you have a lot of control to optimize your code. While C++ is basically C with additional features to define high-level abstractions which makes large projects easier to maintain, yet these abstractions do make the language very complicated. (There is a joke that the only person that understands all of C++ is Bjarne Stroustroup the creator of C++, then in a talk he admitted that he even he does not understand it all!). The problem with these languages is they need to be compiled so for that reason they are not as flexible.

A common practice though is to use these scripting languages to glue together compiled code so the real work happens efficiently. Yet one still maintains the flexibility of the scripting languages.

Languages like Java and C# are a hybrid of compiled and scripting languages. They get compiled to "byte code" but still need to get transformed to machine code. They are a compromise of the two extremes, faster than scripting more flexible than Fortran/C/C++ but not the best in either case. Both have extensive built-in/libraries for math/visualization/debugging etc.

IMHO VBA is a niche language. It would not exist if it wasn't the macro language for many MS products. So it is like an awkward alternative to matlab in that you have a scripting language that has access to many built-in features (provided by excel). Yet on a platform that really isn't for programming. Again due to the legacy of wide MS Excel availability there are many useful excel/VBA based programs out there.

The 'who' is a really important aspect. To get far with programming you want to be sharing and re-using code. So you want to learn the languages that have a large community. In our group we lean towards C++/matlab but do not mix the languages much, we do have some Fortran VBA and Python but only minor at this point. There is a lot of talk about dropping matlab and saving the money by using Python instead. The problem is the learning curve, the legacy of wide availability of matlab is many of the new people that join our group already know it and can get started quickly. Some of my colleagues in other groups heavily use C++/Python or Fortran/Python so there is value in learning any of these core languages.

So from a general point of view I think all the languages are good to learn. I myself have used them all at one time or another. If you need to pick one to learn then you need to think about what you want to accomplish with that one language and go from there.

Take Care
Mike
 
Status
Not open for further replies.
Back
Top