Why is Wealth-Lab's Programming Language C# Rather than Java?
Author: joannakim
Creation Date: 11/19/2010 8:17 AM
profile picture

joannakim

#1
There seems to be more Java programmers and demand for Java programmers out there than for C#. Why did WLP choose C#? thanks.
profile picture

Eugene

#2
Long answer:

There seem to be more non-programmers than programmers out there, why did Wealth-Lab creators choose to include a programming language in WLP?

This month, demand for C++ programmers topped demand for Java programmers. Should Fidelity start worrying about building WLP7.0 with C++ as the language of choice for WealthScript?

Short answer:

Wealth-Lab 5 (6...) is based on the .NET framework where C# is like "mother tongue".
profile picture

Cone

#3
Wealth-Lab 5/6 is written in C#, so it doesn't seem like a stretch to expect that the built-in compiler is C#. Nonetheless, if you prefer to program strategies in Java.NET, you can do that too. Compile your Java.NET strategies and target or drop them in the Wealth-Lab installation folder. Hope this helps!
profile picture

joannakim

#4
Referring to Eugene's comment about C++, I thought C++ was an older language from which C# developed and that that is not a modern language like C# is, so why is anyone asking whether wlp should be going back in time with C++? My question was why C# over Java because there seems to be more Java programmers and demand for Java programmers out there in the market place now. So it would be more helpful for me if I could obtain "this month" comparison between Java and C#. Do you know the answer to that particular question? Thanks.
profile picture

Eugene

#5
Re: back in time - Java is also behind C# because as of .NET 4.0 and even 3.5, C# has more language features. Since WLP/D is mainly positioned for desktops rather than some cross-platform corporate environment, C# and .NET fits this better.

There are different sources for estimations which, I'm sure, you'll discover by googling:
profile picture

joannakim

#6
Thanks all. A picture says a thousand words.
profile picture

thodder

#7
Joanna,

C# is a widely used language for Windows based applications. It is typically the standard language that application developers use these days if the application is being designed to run on Microsoft Windows base machines. Most developers that write code in Java are writing software for non-Windows based platforms or need to write code that can run on any operating system.

The syntax for Java and C# are very similar, so once you learn one you’ll have an easier time learning the other.

If you have trouble understanding C#, you'll absolutely hate trying to learn C++. The syntax looks similar, but C++ requires a lot more understanding of software design.

If you want to write strategy code, C# is the language you need to learn. Using any other language will only make things more complicated for you as you'll need to learn how to use other tools besides Wealth-Lab to develop your software library, and then you'll need to figure out how to integrate the two. For professional software developers, writing outside Wealth-Lab is a very nice option, but for someone learning to develop code, it only makes the process more complicated.

If you don't want to write code, write strategies as rule based instead.
profile picture

joannakim

#8
Hi Tim and all. I am currently learning C#, went to some MSFT events, reading books,etc., and do not have problems with learning C#, but some of my Geek friends were asking why I was making such significant time investment like this in a language which has less demand in the market place in their opinion and often pay less. They make big bucks as programmers, and from their points of view, C# is a much less lucrative language. I told them my use of WLP, and they understood my position better, but still seem to think that that is "too bad." The think in $$$$, and that is pretty much it.

Also I thought one of the reason d'etre of C# was that it was designed to run on any platform and on any machine larger than a calculator: kind of like Java: Microsoft's answer to Sun's flagship language since they also apparently had some legal problems when they tried to make changes to Java, and hence came up with C#. So I don't understand when you said that C# did not run on any platform like Java did. I thought that was one of the main reasons behind the creation of C#.
profile picture

Eugene

#9
QUOTE:
A picture says a thousand words.

In my 1st reply, 1st paragraph, I was merely trying to give a hint how strange your question looked. If there's greater demand for Java programmers in corporate environment, what does it have to do with the language of choice of a Windows desktop application? Java has little to no place on desktops.
QUOTE:
a language which has less demand in the market place

Excuse me, Wealth-Lab is not a tool to leverage your "market capitalization" as a professional programmer. It is a technical analysis application with a scripting language to help traders design trading systems.
profile picture

joannakim

#10
I know. Like I said, I told my friends that I was learning C# because I needed to develop strategies in WLP, but they are programmers who are used to being programmers...... So they were expressing their points of view which I thought was interesting, and I believe that they were doing it because they genuinely had my best interest on their minds.
profile picture

thodder

#11
C# and the .NET framework were designed by Microsoft. Java was designed by Sun who builds Unix machines. Which language do you think would be best for a Windows based application -- a language originally designed for Unix or Windows?

This should be a discussion on the best language to use for writing strategies with Wealth-Lab. In my opinion, the simple answer is C#. If you need to learn a language, that's the one you should learn. Don't waste your time with 'what-if' scenarios.
profile picture

joannakim

#12
Ok Tim. I agree. And the link that you emailed me that had some C# learning sites have been helpful. One of them: "Getting started. C# Basics- Beta 2" seems to be more helpful for me although it was written quite a while ago: when C# was still new. Other sites that were written more recently weren't as helpful to me because of the way they were written, etc. The outdated reference to the features in the older versions of Windows etc., are getting in the way somehow, but I figured the basics of C# would still be the same. I hope you agree because I don't want to learn things that are no longer valid. A more recent book on C# ( 2010) is still in the mail, and i hope to receive it in the next several days or so. i also looked at what Eugene recommende: .net Pearls, but I think that site will become more helpful after I learn some basic principles of C#.

If people have suggestions for beginners on C#, please post.

profile picture

torpedo333

#13
Hi All,

If I want to write my own trading programs, should I learn C#? Please advise, thanks.

Torpedo
profile picture

thodder

#14
Joanna,

I don't think the links you mentioned was an email from me. I did send out an email pointing to the Wealth-Lab Wiki page on recommendations...

http://www2.wealth-lab.com/WL5WIKI/kbFAQStrategy.ashx (scroll down to "How do I start with C# ?")

That was my first recommendation for learning C# to write Wealth-Lab scripts.

Most books will discuss writing Windows applications (i.e. Forms) which you don't need to understand for writing trading strategies. The book will still be helpful, but there may be some material you'll want to skip over.

The basics of C# should be the same for older releases. I am using books that were written for .NET 2.0 which is one of the earlier versions of C# (latest is 4.0). I believe Wealth-Lab is based on the 2.0 release.

Btw, C# is part of the .NET framework.
profile picture

joannakim

#15
Hi Tim. Sorry, that must have been a site that I found through Google or something. I did visit the links that were in the WLP link that you just sent, and did benefit. Thanks. Rob Miles' Yellow Book was helpful in someways but were a little cumbersome because he was British writing in British context, etc. Other sites had their forte and weaknesses in terms of helping me learn. I realize that C# is the main language within .net and that I could possibly write code in other .net languages in wlp, but I have a full plate learning C#. It seems like MSFT is saying that Windows Forms is the present and the past but not the future and that Microsoft Presentation something rather is the future. But it seems like I won't have to worry too much about that since my learning is focused on coding within WLP.
profile picture

thodder

#16
Joanna,

I believe you can only use C# with the Wealth-Lab editor. If you wish to use another one of the .NET languages, you would have to use a development tool to build a library outside of Wealth-Lab. That would make things a lot more complicated. You don't want to do that. Stick to C#. It sounds like you are on the right track pursuing C#.

As you say, Microsoft is moving away from the Form class, but you do not need to learn that to develop trading strategies.

* * *

For anyone else monitoring this and debating on what language to use for writing strategies with Wealth-Lab, I recommend C# due to the following:

1) All examples are written in C#. If you use another language, you'll need to port the code to that language before using it. Why create more work for yourself?
2) Wealth-Lab editor only works with C#. (Someone correct me if I'm wrong.)

It seems like a no brainer to me. Yes, you can use another .NET language if you build a library (requiring Microsoft Visual Studio to build it), but you are only making it more difficult for youself. If you are not a professional software developer, don't go that route. It's not worth the hassle.
This website uses cookies to improve your experience. We'll assume you're ok with that, but you can opt-out if you wish (Read more).