There is no ONE answer here. You can write accounting software in Fortran and scientific calculations in Cobol. It's just not the ideal languages for the subjects, but given a sufficient knowledge of the language, and some clever use of it in places, it will work.

Cobol is often found in the Big Iron and Financial world.

Scientific/engineering calculations are traditionally done in Fortran, but a lot of more modern code is written in languages such as Pascal, C or C++.

Yes, Java is often used for Web-sites.

Embedded systems are mostly programmed in either Assembler or C, and larger embedded systems in C++ or Ada. (Advanced mobile phones often use Windows CE or Symbian OS, both of which are using C++ for a large portion of applications).

But you are still not getting the answer given by Salem and Thantos. Learning a language is relatively easy, if you know how to program. Salem's description of learning to drive vs. learning to drive a particular vehicle is correct. I picked up PHP in about two days to the level that I could write a fairly complex web-interface that accessed a five-table database (and I had very little experience with MySQL before that, but I had some experience in databases - and I have programmed in several other languages before then). Ok, some languages are probably more like learning to drive a fork-lift truck or a tractor (not in the sense that they are industrial/agricultural, but in the way that they work in slightly different ways - and require a bit more work to learn how to use the language). And of course, just because you can drive a fork-lift truck around in the car-park without hitting anything doesn't mean that you can put the pallet of fragile stuff on the 20ft tall shelf without a lot of practice.

Languages fall into a few different categories:
1. Functional languages, such as Lisp, Haskell.
2. Procedural languages, such as C or Fortran.
3. Object oriented languages, such as C++, Simula, SmallTalk.
4. Stack based languages, such as Forth or PostScript.
5. Assembler language - the nearest to the binary code that the machine actually executes. There are MANY of these. I know (well enough to produce operating system level code) x86 (16, 32 & 64-bit), AMD 29K, Motorola 68K, Digital PDP-11, Digital VAX-32, Zilog Z80, 6502. I also know a bit of 8051, MIPS and ARM assembler, but only enough to cause damage, really. [I did write the program for an eprom-programmer in 8051 assembler around 20 years ago].

If you cover at least two to three of the above you have a good basis. Most languages in the same category will work similarly enough that a few days of practice will have you writing decent code, and a few months will get you far enough to do well. However, a language that is a different category will take more effort to learn.

http://en.wikipedia.org/wiki/Categor...ming_languages

--
Mats