1. Hey there, it looks like you haven't registered yet! Joining is free and we would love to have you as part of our community! Register / Login

programming languages

Discussion in 'Technical Support/Help Desk' started by Stormreaver (Mattdf), Aug 6, 2012.

  1. So I was wanting to get started learning some programming languages so I have a few (2-4) years experience before I head off to college (want to be a Game programmer) and I was wondering what languages I should learn first? Also if anyone knows of some good software thats cheap(preferably free) that would help alot. :D
     
  2. Spaz-A-Tron

    Spaz-A-Tron Dat Big Spaz

    Posts:
    252
    C++ is obviously the big one, C, Java and OpenGL are the ones I can think of right now. Python can be kinda interesting too at times but C++ is a very commonly beginning language.
     
  3. Woody

    Woody Administrator Founder

    Posts:
    7,251

    Inventory:

    I do a lot of programming at the moment. If you are totally new I would recommend starting off with Python, its a good beginner language. Then as stated above make your way to C, C++, Lisp, C# (Windows .Net), C# (Microsoft XNA), and Objective-C which are all used in video game development.
     
  4. Section-8

    Section-8 Member

    Posts:
    383
    ? I am Confused????
     
  5. Piggy

    Piggy Member

    Posts:
    188
    Open GL is an API, or application programming interface. It is not a programming language in itself, but provides functions to programming languages so that the programmer can more easily take advantage of graphics capabilities that the hardware has to offer.
    There are many many programming lanuages to choose from. There are also several basic characteristics of what comprises a programming language. Some things to keep in mind about them are:
    The ultimate job of all programming languages is to turn program code that is more easily understood by the human programmer into the real fundamental program code that the CPU understands directly (called machine code).
    Programming languages that are the easiest for the human to understand and that are the farthest from the machine code are called high level languages, while languages that are closer to what the machine code looks like and are typically harder for humans to work with are called low level languages. BASIC (visual or otherwise), Pascal, Python, and Java are examples of high level languages. The lowest level language you typically can work with is called Assembly languaage, and is as close as you can get to machine code outside of directly setting bits and bytes by hand. In a high level language like Python, BASIC, etc., you can use a PRINT command to output something to the user's screen (or other output medium). In Assembly, there is no such convenience. You must effectively program your own print system by loading CPU registers with values from memory, manipulating them and then putting them back into memory or device hardware registers in ways that make happen what you need. It takes many many simplistic steps to accomplish more complex steps.
    Program languages are not all either just high or low level on equal footing. As was stated, Assembly is on the extreme low level, and Python is fairly high level. C, C++, etc. though, are not as high level as you might think. The C type languages are a bit in the middle, though more towards high level than ow level.
    Almost all languages high or low level, come with pre-fabbed functions and procedures which can be called by a programmer to make things easier to do. Even in Assembly, most assemblers have some kind of a macro facility which allows the use of pre-fabbed modules or functions. Such pre-fabbed code ready to use is typically referred to as code libraries, or simply libraries.
    The process of turning the human understandable programming language code into machine code is done in two main ways. One way is called interpretation, and the other is called compiling. Assembly is never interpreted and is always compiled (called assembled when using assembly language). Other languages though may be on or the other, or sometimes offer the option of both modes. Almost all scripting languages without expection are interpreted (though sometimes there specially made compilers for them). Many high level languages are compiled, though some are interpreted or offer either option. Compiling is going through the entire program and translating it into machine code ahead of time. Once this is done, the machine code can be used over and over without the need for the translation to ever happen again. This has obvious time savings when using the compiled program vs. an interpreted one. Interpreted programs are translated into machine code as they execute, and this must be done each and every time the program is run.
    Java is interpreted, or uses a JIT compiler. JIT = just in time. This means Java programs are not precompiled ready to be used over and over. The program must be interpreted each time it is run, or else must be compiled in it's entirety (just before execution).
    BASIC traditionally was an interpeted language, but becuase of its popularity over the many years it has been around, there have been many compilers created for many of its flavors.
    The C family of languages, as far as I know (well all of what I'm writing here is as far as I know or rremember), is always compiled and never interpreted.
    Python is one that comes to mind that offers both compilation and interpretation modes.
    A language that is interpreted, or offers an interpreted mode, can be easier to learn with, as it allows for nearly immeidate feedback to the programmer as he/she makes changes to the code. Languages that are compliled 1st almost always run faster though once running.
    A highly skilled programmer, who can adeptly use Assembly language, can achieve the absolute tightest and/or smallest code to do a job. Back in the day, when memory and storage capacities were small, as well as processing power rather limited compared to today, it was often necessary for a lot more code to be hand crafted in Assembly to even accomplish basic goals of the program. While there will likely always be a place for Assembly language, it is rarely necessary to use today and is becoming somewhat of a lost art or skill.
    After all this blathering, let me some up an answer to the main question... I second the suggestion for Python. Although I myself have only recently started even looking at it, I think it is a great candidate because it is high level, offers interpreted and compliled modes, is available for multiple platforms, is free and open source, and has some good tools out there to go with it.
    On the other hand, if a person were only ever going to put the effort into learning and mastering one language, and one language only, in my opinion the single most useful one to be good at is C++.
     

Share This Page