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

New Language

  1. Jan 11, 2010 #1
    I was wondering which language would be most beneficial to study if I plan to major in physics in college and would like a head start? I have a basic BASIC knowledge of java, and generally understand syntax, methods, etc.
  2. jcsd
  3. Jan 11, 2010 #2


    User Avatar
    Gold Member

    I would suggest learning a functional language like Standard ML, OCaml, F#, Haskell or Scheme.

    Also, it helps to learn at least one low-level language like C so you know what goes on 'under the hood'.
  4. Jan 11, 2010 #3
    I use C++ for all of my calculations/simulations. It is not too hard to learn and you can download it for free from Microsoft.

  5. Jan 11, 2010 #4
    C++ or C? Or isn't there a huge difference.

    Also which out of those 5? That's a lot of choices.
  6. Jan 11, 2010 #5


    User Avatar
    Gold Member

    For a physicist I would probably go with OCaml or F#. OCaml for linux and F# for windows.
  7. Jan 11, 2010 #6
    Or use a basic compiler like mingw and not bother with visual studio madness.

    Besides C/C++, there's still some scientific computing done in fortran. For upper level stuff, I've seen a lot of scientific computing libraries in python, and matlab is very commonly used in the science community. If you already know where you're going, try to find out what the department at your school commonly uses.

    Yes, no, maybe. C++ is basically C with objects, so to code C++ well it's good to know the basics of C. (Generally, if you know C, you'll get all the other languages.)
  8. Jan 11, 2010 #7

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    None of those languages is C or C++. C is a procedural language. C++ adds object-oriented concepts to C. Java similarly is a procedural language that supports object-oriented concepts.

    Procedural and functional paradigms are quite different -- and that is precisely why it is a good idea to learn both paradigms.

    I disagree with that parenthetical remark. There are plenty of C plus-or-minus programmers who are writing things in what looks like C++ but do so from a solidly C-based mindset. Do object-oriented programming right and your mindset changes considerably. Learning C won't help much at all in learning a functional language such as Lisp or a logical language such as Prolog.
  9. Jan 11, 2010 #8
    If he knows java well, he should know how to do object-oriented coding. C++ isn't all that great either because of how classes are implemented. Knowing C helps with the basics, (like control structure), but truthfully yeah I misspoke.
    What I meant was C's a good base for all the C derivative languages ('cause the C stuff shows up in all of them) and is barebones enough to teach a lot of good stuff about the basics and optimization. You need all those before moving on to different paradigms, where yes one of each to figure out how it all works.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook