I know that in the old days, engineers used to use Fortran and Basic, 99% of the time, specially for developing complicated scientific program (I think Cobol was for business, but I am not sure).

In any case, what is the preferred language nowdays? As I recall, 10+ years ago, everyone was raving about C, ANSI-C, etc. but haven't heard much about it lately. And, before everyone jumps on me telling me that there lots of languages, I know! I am aware that there are many languages out there (VB, C++, C#, Java, Python, PhP, and so on). But my question is a bit more specific. If one was to start writing a code as a solution to some complicated physical process (in the Energy area - can't say much more at this point), involving lost of numerical approximations to analytical solutions, with lost of stats, probabilities, etc. what language should they start developing in, that would make the process stable, would result in a fast program and wouldn't require re-writing everything a few years down the line, because the original choice was the wrong one.

Ryan G. wrote:I know that in the old days, engineers used to use Fortran and Basic, 99% of the time, specially for developing complicated scientific program (I think Cobol was for business, but I am not sure).

In any case, what is the preferred language nowdays? As I recall, 10+ years ago, everyone was raving about C, ANSI-C, etc. but haven't heard much about it lately. And, before everyone jumps on me telling me that there lots of languages, I know! I am aware that there are many languages out there (VB, C++, C#, Java, Python, PhP, and so on). But my question is a bit more specific. If one was to start writing a code as a solution to some complicated physical process (in the Energy area - can't say much more at this point), involving lost of numerical approximations to analytical solutions, with lost of stats, probabilities, etc. what language should they start developing in, that would make the process stable, would result in a fast program and wouldn't require re-writing everything a few years down the line, because the original choice was the wrong one.

I really will appreciate any feedback I can get on this matter.

RG

That's a very tough question, Ryan. First, let me say that I think the best language one should use, is the language they are most familiar with. That would make the process more efficient. Having said that, there are languages that are better suited for certain tasks than others. For example, I don't think 88% of the people user BASIC to do scientific programming, years ago, or now It is probably true that the majority (I still don't know if it was 99%) used FORTRAN, but there is a good reason for it. FORTRAN stands for FORmula TRANslation, and it was really developed and optimizes for brute force scientific calculations, so...

In those days, CPUs were much slower and some of these FOTRAN codes would take a long time to execute, so the fact that the language was built and ptimized for scientific calculations, made a big difference. For example, I know that in the area of nucler power, that I was involved with, 99.99% of the codes were written in fortran, with some user-input and other pre/post-processing tasks delegated to Basic or some other, easier language.

From what I know, nowadays things are a bit different (though many of the large code suites are still in FORTRAN, believe it or not), and people use whatever they are most comfirtable with, and you are right, C was really the tool everyone went to 10-15 years ago, because it touted more robustness and better calculation speed. I have to say, though, based on what I have read, that was not completely true - take a look here, http://www.ibiblio.org/pub/languages/fortran/ch1-2.html. If you are interested in learning a bit about all teh various languages and some of their basic characteristics, you may want to take a look at this wikiedia article, http://en.wikipedia.org/wiki/Comparison ... _languages. Very informative! And, so that you don't think that this is the only place where people are asking this question, take a look at this very interesting thread. http://www.cfd-online.com/Forums/main/7 ... rtran.html

Based on discussion with colleagues, who develop and maintain very large, sophisticated code suites for very technical analyses, they still use FORTRAN fr rge raw calculations, C, C#, VB, etc. for the user interface and MATLAB for preprocessing and post-processing of the vast amounts of raw data these codes geberate. You actually would not believe the extent of usage of MATLAB, which started as a simple scripting language.

I hope all this helps, if nothing else, to confuse you even further I guess the answer is that there is no magic answer. May be others here will have more insight.

Thank you very much for the informative response. I have a lot to learn

You are right, everyone seems to be gravitating towards MATLABS. I've used it a bit and it's a good tool, but it's not the swiss-army knife that everyone wants it to be.

On top of that, it's a fairly expensive package, for what it does. I men, barring some large (very large) matrix manipulations, I can probably whip up a solution in excel, or even ASEASY, in less time than writing a MATLAB script, AND I have full control of it, AND I have to understand what I'm doing, instead of using a black box.

I am not knocking MATLAB, like I said, it has its place. Just too much $$ for what it does.

Also, I was surprised to hear that a lot of complex scientific/engineering programming work is still done in FORTRAN. I don't know if it's because it's better, or because there such a large code base out there, that it would be impracticl to port o some other (better?) language. The links you provided provide some of those answers, but there is so much info!

I don't think one has to spend the tons of money that MATLABS wants. Why? 99% of what it can do can be done by scilab which was developed in France and it is TOTALLY free. Download a copy and give it a try, you'll be surprised.

And, this also is very appropriate, i.e., having this conversation in this forum, where the trius company developed programs that were cheap to compete with expensive ones that did the same thing at the time. How appropriate

Sorry to jump in here and I don't claim to be as smart as you guys, but isn't it usually that you get what you pay for? How can the free product scilab be as good as the very expensive product MATLAB? Something doesn't sound right. Or is it me?

Also, I thought that languages like Cobol, Fortran, Algol, etc. were totally extinct!

@BillRotando: I don't think Algol is dead, but I guess it all depends on what you call dead. It definitely is not a language that is predominantly used, but I am sure there are people using it. For a complete list of languages and some info as to their status, you may take a quick look at the link I had posted earlier, http://en.wikipedia.org/wiki/Comparison ... _languages I'm sure there are other sources of information (since wikipedia sometimes is not considered a valid source).

Also, although I am not familiar with scilab, what you say about value and price, is sometimes wrong! You need to evaluate each situation and product on their own merit. I, for one, am planning on taking a close look at scilab, when I get some time. If it's what it claims to be, i wouldn't mind using it!

Johannes Tass wrote:I don't think one has to spend the tons of money that MATLABS wants. Why? 99% of what it can do can be done by scilab which was developed in France and it is TOTALLY free. Download a copy and give it a try, you'll be surprised.

And, this also is very appropriate, i.e., having this conversation in this forum, where the trius company developed programs that were cheap to compete with expensive ones that did the same thing at the time. How appropriate

Thanks, Johannes. I will definitely take a look at scilab. You say it was developed in France. Does it have any sort of restrictions? Never mind, I'll take a look on-line, when I get a chance. Do you know if it is also supported by the developer(s)? And, is there a user community, like there is for MATLAB? I ask because I have found out that the extended user community is sometimes the best form of support - that's where you can find help from people using a tool in a similar manner as you.

Johannes Tass wrote:I don't think one has to spend the tons of money that MATLABS wants. Why? 99% of what it can do can be done by scilab which was developed in France and it is TOTALLY free. Download a copy and give it a try, you'll be surprised.

And, this also is very appropriate, i.e., having this conversation in this forum, where the trius company developed programs that were cheap to compete with expensive ones that did the same thing at the time. How appropriate

Johannes, I downloaded and installed a copy of SCILAB last night. I didn't get a chance to do do much with it, yet, but from what I read and the little I did, this appears to be an amazing package, indeed. And, it's free! How can you bet that.

I am still reading about it, but it appears that it is the defacto standard being taught in secondary education in France, and there are *many* books and articles written about it in many languages. I wish I knew about it a couple of years ago!

Have you used it a lot? If so, are there words of wisdom for someone who is just learning how to use it? Any pitfalls to avoid? And nice tricks? Any good references? Anything, really.

Ryan, I think the more you use this program, the more you will be amazed. For any readers that wonder, I have no vested interest in the program, or the company that developed it, but I think SCILAB really is a superb product, and it is free!

Very interesting thread. You know, there appears to be a lot of interest in the subject (development languages and now matlab/scilab,...) You may want to ask the moderator to set up a special area for you on this board, like a dedicated forum. Doesn't that make sense?

MikeTil wrote:Very interesting thread. You know, there appears to be a lot of interest in the subject (development languages and now matlab/scilab,...) You may want to ask the moderator to set up a special area for you on this board, like a dedicated forum. Doesn't that make sense?

They could ask the moderator but is there really a need for "another", dedicated section, because of 10 messages in a thread? Posters can start new threads, titled "scilab" or "matlab" or whatever they want, in this forum. We don't really see a need a dedicated section. But, if the need really arises, we'll definitely create one, or more, as needed!

Yeah, I can see what you are saying, but right now you have this under "General Topics of Interest" and then in a sub "Technology". I mean, it's not very visible and easy to find by users. It's your board and at the end of the day you'll do what you want, I was just saying that it may be better if you made things easier to find, that's all.

Well, if nothing less, we at least know that the moderator is reading these forums

Responding to some posts here by others, regarding SCILAB, it is catching in the US fairly fast! For those who are interested, the State U of Utah is one of the institutions that actually have courses on SCILAB. Take a look here...

There are a host of other schools that are doing that, as well. SCILAB being free is quite an incentive. And another piece of info, you could actually install the complete SCILAB system on a USB flash drive and then carry it with you to use it on ANY computer with a USB port, *WITHOUT* having to install it first, right off the USB drive!!!

And, if I sound like a SCILAB evangelist, it's because I am I really like it and can't praise it enough.