Preparing for Physics: Choosing the Right Language to Learn

  • Thread starter Thread starter Invyz
  • Start date Start date
  • Tags Tags
    Language Physics
Click For Summary
For students majoring in physics, learning programming languages can provide a significant advantage. A functional language such as OCaml or F# is recommended for its applicability in scientific computing, with OCaml being suitable for Linux environments and F# for Windows. Additionally, understanding a low-level language like C is beneficial, as it offers insights into how programming operates at a fundamental level. C++ is also frequently used for calculations and simulations, and while it builds on C with object-oriented features, mastering C can enhance understanding of various programming concepts. The discussion highlights the importance of familiarity with both procedural and functional programming paradigms, emphasizing that knowledge of one can aid in learning others. Furthermore, Python and MATLAB are noted for their prevalence in scientific computing, suggesting that students should consider the specific tools used by their college departments.
Invyz
Messages
14
Reaction score
0
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.
 
Technology news on Phys.org
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'.
 
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.

Thanks
Matt
 
DavidSnider said:
I would suggest learning a functional language like Standard ML, OCaml, F#, Haskell or Scheme.
C++ or C? Or isn't there a huge difference.

Also which out of those 5? That's a lot of choices.
 
For a physicist I would probably go with OCaml or F#. OCaml for linux and F# for windows.
 
CFDFEAGURU said:
It is not too hard to learn and you can download it for free from Microsoft.
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.

C++ or C? Or isn't there a huge difference
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.)
 
Invyz said:
DavidSnider said:
I would suggest learning a functional language like Standard ML, OCaml, F#, Haskell or Scheme..
C++ or C? Or isn't there a huge difference.
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.


story645 said:
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.)
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.
 
D H said:
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.
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.
 

Similar threads

Replies
86
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 25 ·
Replies
25
Views
710
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
16
Views
4K
  • · Replies 7 ·
Replies
7
Views
1K