1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Programming Languages

  1. Feb 4, 2015 #1
    I'm studying Python and C right now to build a good base for my physics courses as an undergrad. However, I'm also interested in languages involved with PC game design and Android/iOS devices. Was wondering if python and C will meld well with the programming required to undertake projects like those and what languages those projects entail. Projects I've thought about are games designed to acquaint people with mathematical and scientific concepts, and just outright storytelling. Thanks ahead of time for any assistance.
  2. jcsd
  3. Feb 4, 2015 #2


    Staff: Mentor

    For Android then Java is the language of choice athough other Java based languages like Scala or Clojure can be used.

    For iOS then Objective-C or more recently Swift.

    For Windows then C/C++ or Java and others...

    For MacOSX then Objective-C, Swift, C/C++ or Java and others...
  4. Feb 4, 2015 #3
    I've heard C Sharp is used a lot in Steam titles. I guess that falls into other. Does the "other" category typically depend on what the person is trying to do with their product?
  5. Feb 4, 2015 #4
    I found that once I had a good basis in a language or 2 you can pick up on another one really quickly.
    Just comes down to the nitty gritty syntax and what not which is easy enough to handle :)
    Most of my google searches end up <some function> in <some language> :
  6. Feb 4, 2015 #5


    User Avatar
    Science Advisor

    OP, the combination of Python and C is an excellent choice for starting out (one high-level flexible language and one middle-level high-performance language). Later you probably want to replace C by something else (e.g., C++ or Java), but it is still very helpful to obtain a deep understanding of the concepts, data structures, and algorithms which can be expressed already in the C language. This information is not wasted when going to more powerful languages.
  7. Feb 4, 2015 #6


    Staff: Mentor

    C# is used a lot in Microsoft products.
  8. Feb 5, 2015 #7


    User Avatar
    Education Advisor
    Gold Member

    Often the language isn't the big part of the pain on a project. Often it's the speciality libraries that will consume your time. For example, in Windows, you will get some kind of library with window features and functions. Whatever library you use will be where you spend a lot of your time. And that will be specialized to that library on that platform, because it will have quirks and weirdness. And may be documented less well than ideal. And when you join somebody else's project, you may not get a choice on what libraries you are using.

    As cpscdave suggests, once you learn a language or two, the next language is a lot easier. The only thing is, will you learn a given style of programming? For example, will you learn object oriented? Will you learn structured? Will you learn some other approach? And will you learn development cycles like rapid prototyping, classic waterfall, and so on? That will depend a lot on what the projects are that you may join.

    There are a ton of books out there on any of these subjects. It will be tough to figure out which one to read first. One very good general book on doing a good job at the coding task is _Code Complete_ (now in the 2nd edition) by Steve McConnell. Excellent book, highly recommend. Once you get some of the basics of coding well, then go find books on the specific task or approach.

    There are lots of other subjects: documentation, testing, interface design, source code control, all up and down your arm with a long shopping list. You can't learn them all at once, so you need to pick what you have time for now.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook