Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Does it matter in which language a given software was written in?

  1. Jul 9, 2013 #1
    I have seen many articles stating that some 'xyz' software was written in c++ or java or python.
    Does it matter what language it is written in? Ultimately the software is in machine language right? Why should the language matter?
  2. jcsd
  3. Jul 9, 2013 #2


    User Avatar
    Homework Helper

    Python doesn't have pointers, so that could have an effect on some programs. Some languages have features that are only natively implemented in some processor instructions sets, such as Cobol and some mainframes (like an IBM 360 to 390 edit and mark instruction, used in Cobols move corresponding operator). In the case of C++, processor specific library functions could be used to duplicate those special features (I don't know if this could be done with Java or Python, unless they can call assembler or C / C++ compiled functions).

    Other languages like APL, which is normally intepretive, but with a few compilers, tend to favor using fewer operations on larger amounts of data. This creates more overhead in many cases, but it's the style of that language, and it's mostly used for problems oriented to this type of approach.
  4. Jul 9, 2013 #3

    jim mcnamara

    User Avatar

    Staff: Mentor

    Or looking at it this way: why do you suppose interpreted languages were designed to begin with? Interpreted languages like python were originally designed to avoid having to compile code - and maybe avoid buying a compiler license. The tradeoff is interpreted languages, overall, run more slowly than compiled languages.
    15 years ago this was a drawback.

    As computers have become much faster interpreted languages have gained favor. Incorporating specialty libraries, like bignum libraries, has also been accelerated as acceptance grows. It is sort of a positive feed back loop. More features == more users == demand for more new features.

    Compiled languages take advantage of optimizations performed on the fly by compilers, that may not be easily realized in interpreted languages. Where runtime efficiencies are important - in a realtime applications for example-- compiled languages are close to a must use case.

    Bottomline - for most stuff we find out there, coding is done in language Q because the programmer is fluent in language Q or because the place where the coder works insists on language Q. Generally, it does not matter much all that much which language, hardware notwithstanding. But you will always find people taking sides to plug their favorite (usually meaning the language that person is best with) in those 'who cares?' cases.

    Pick one and use it.

    Because of linux, GNU, and people like Guido van Rossum, many languages are now essentially free of cost and licensing requirements. If you have a Windows PC, try installing cygwin. (www.cygwin.com) The last time I counted there were 20+ open source languages out there.

    FWIW - van Rossum was obsessed with Monty Python's Flying Circus, a group of English comedians. Hence the name "python". Eric Idle has a python IDE named after him "idle", same reasoning.
  5. Jul 22, 2013 #4
    Depends. Languages that are normally interpreted (Python) and hybrid languages (Java) usually run code slower than languages that are compiled (Fortran). Theoretically, you could compile or interpret any language, so language does not really matter in terms of performance.

    Where language does matter is in the software development process. Programs written in more concise, less complex languages should contain less bugs/security vulnerabilities than programs written in less concise, more complex languages. The number of bugs/vulnerabilities has been empirically shown to be function of lines-of-code and software complexity.
  6. Jul 22, 2013 #5
    In general no not really. To expand on what ektrules pointed out though there are languages like Ada that are have features like strong typing to reduce bugs/errors and is supposedly structured to be more readable and therefore be easier to maintain and verify functionality. It is popular in military aerospace work for these reasons.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook