Best Programming Language

Discussion in 'Automated Trading' started by Masterchanger, Jun 12, 2009.

  1. MTRIG

    MTRIG

    #21     Jun 12, 2009
  2. there's no language specifc solution that will help you do what you are asking, because languages are just tools. what you are asking for is how to use the tools correctly. what you need to explore is 'design' in conjunction with the actual syntax or rules of your specific language.

    what i recommend is to search for 'object oriented design' or 'programming patterns'. the ideas for this type of structured programming are not language specific and some basic tutorials in any language should get you started in the right direction. someone mentioned python as being most similar and i agree, if you can find some OO tutorials using python you should be able to get the drift.

    if you're looking to get better as a programmer in terms of efficiency, then find any language that utilizes a a good IDE that supports a profiler. the common cliche is pre-optimization is a bad thing, but i think for a new programmer to play around with trying to make code faster can be very helpful to understanding programming techniques. i know back in the day i learned a ton when i spent countless hours on this... actually i still do.

    as far as integrating with dll's, you'll probably need to stick with an ms supported langauge, c# would probably be best here if you're just starting out. if you're interested in integrating with api's later, c++ is probably the mostly widely used.

    in my own case, i started out with wealth-lab script (pascal based), then moved to python for ease of transition and more speed, then ended up moving to c++ to integrate with all the different api's. good luck.
     
    #22     Jun 12, 2009
  3. nsideus

    nsideus

    Yeah but if you know SmallTalk you can easily learn Objective C and code for Macs! Everybody loves Apple! :D
     
    #23     Jun 12, 2009
  4. I have used assembly, c, c++, c#, java, python, perl, R, ... and so on and so forth -and- EL in commercial environments.

    My advice to you is this:

    If you want to be some kind of gunslinging MM, you have no choice but to learn assembly, C, and C++. And then you need to learn how to write your own C compiler, because you need to know how the languages work under the hood.

    If you are just looking to make applications and don't care about speed, but just want to make stuff and make it quickly, use Python or C#. C# has the bonus of having a nice user interface and intellisense.

    If you are an academic and want to impress CS people, go use Haskell or Ocaml or some other language. You won't have any friends, but at least you can feel special on internet forums.
     
    #24     Jun 12, 2009
  5. dholliday

    dholliday

    I am not going to argue anything, this is opinion, I respect yours. I am sure you are a better programmer than I am and have forgotten more than I will ever know.


    Me - I was a VC++ programmer for many years (since VC++ Ver. 1) before becoming a Java programmer. I used TradeStation many years ago and found EasyLanguage very frustrating. So much so that I am writing a proprietary trading platform in Java. I did agonizes over the C++, Java, C# question. For me it was the distributed computing solutions that pushed me toward Java. One of the first things I did was write a distributed compute engine (a grid computer).


    You - First and most importantly for your case, I would recommend you concentrate on EL. Object oriented languages aren't a help, EL is not OO. Pointers don't help, EL doesn't have them. Etc. If you get to the point that you want to extend TradeStation with your own DLLs then you will want to go with a MicroSoft solution.


    Now for general programming.

    The big four are C, C++, Java, and C#. For new application programming; Java and C#. There are many smaller languages that have had their moment of hype and real work is being done in them, but very likely none of those mentioned so far is likely to become the next big thing.


    If you decide you want to learn C# or Java, some things to consider:

    Microsoft dominates the desktop and small business market.
    C# copied and in some ways improved upon the Java language
    Visual Studio is great
    Microsoft builds most everything you need so there is little choice, but fewer choices simplifies your choice.
    Microsoft dominates (compared to Java) the consumer stock charting/trading application market.
    Do you use a Windows PC? Do you love Microsoft products?

    Java dominates in large corporations, the server side (web development) and mobile phones
    NetBeans and Eclipse are great IDEs and free
    Java is open source
    There are a huge number of open source libraries to do most anything
    Java really is cross platform
    There is a huge community of Java developers
    Java dominates the corporate trading/analysis application market. I know that there is more in C++, but new development for many years now has been dominated by Java.
    Do you use a Mac or Linux PC? Do you hate MicroSoft?

    Compared to C/C++ Java (and I assume C#)
    Java is slower to start up
    Java takes more memory
    When running, after the hot-spot compiler optimizes the code, Java is slightly faster in some cases and slightly slower in other cases. This continuously moves in Java's favor.
    If you are going to do low level programming, use C

    When I programmed in VC++ nothing was free or open source. In Java everything I have ever used was free and open source.

    Good luck.
     
    #25     Jun 12, 2009
  6. maxpi

    maxpi

    Ninjatrader provides a very good environment for learning to program in C#. Their documentation provides examples of code for very nearly everything they offer.. I used it to transition from EL to C#.
     
    #26     Jun 12, 2009
  7. jprad

    jprad

    Following your logic to conclusion C++ is also not object-oriented because you're able to write code that doesn't use any OOP constructs.

    Really? Well, you should check into Objective-C then. It's message passing, syntax and runtime model were heavily modeled after Smalltalk.

    In fact, you can't tell which language, Objective-C or Smalltalk, the following code snippet is for:

    Code:
    [obj method:parameter];


    , which has object-oriented extensions that are heavily influenced by

    Smalltalk
    Well, that's because Smalltalk was designed as an OOP, as an extension to a non-OOP language.

    Of course, you could use something like Objective-C, which extended C with Smalltalk-like messaging and run-time dynamism.

    If anything, C# has

    Or, you could use Objective-C, which adds the Smalltalk message passing

    Fact of the matter is that Smalltalk and C# are examples of reflective programming paradigms, which is a superset of object-oriented programming...
     
    #27     Jun 12, 2009
  8. jprad

    jprad

    Actually, Smalltalk was influenced by Simula, which was the first programming language that had objects and other OOP constructs.
     
    #28     Jun 12, 2009
  9. #29     Jun 12, 2009
  10. jprad

    jprad

    It's trivial for a C programmer to learn Objective-C, because Smalltalk only has six keywords. Well, psuedo-variables...

    But, it's going to be a lot harder for a Smalltalk programmer since they're going to have to learn C and the procedural programming model that it uses.
     
    #30     Jun 12, 2009