Page 1 of 2

NeoTicker: C# versus Delphi

Posted: Mon Jul 24, 2006 10:32 pm
by michal.kreslik
JPT wrote:Michal, AspTrader recommended Delphi but you are sticking with C#. Since C# is free, I guess I am with you.

I need to go to Fry's and find a C# for dummy book!!!! Thanks


C# is in my opinion much better tool than Delphi.

Microsoft did choose C# as their flagship programming language. They are showing what their .NET platform can really do on C# examples very often.

Delphi seems to me to be just a "better Pascal with added objects". C#, on the other hand, is a language that has been written from scratch several years ago and is based on the best features from C++, Java and several other languages.

You can write incredible things with C#. In Visual Studio 2005, there are SQL "connectors" that make it EASY to write an application that uses SQL in a matter of minutes, no prior exhaustive knowledge required. Just have a look at the learning videos in the "important links" topic in this forum.

The new NeoTicker optimizer (the GO - Grid optimizer) uses SQL, too and allows users to pick data, construct multiple objective fitness functions etc. etc. with SQL. That is revolutionary. Tradestation is 100 years behind in this respect.

It will not be easy to master all the possibilities NeoTicker brings, but definitely worth the effort.

By the way, today I have bought the Neo monthly subscription finally.

Posted: Mon Jul 24, 2006 10:57 pm
by eudamonia
Michal,

Congratulations. Please keep us posted. I'm still behind on learning C# and getting onboard with NeoTicker but I'm finally going to start moving in that direction.

Edward

Michal - Please convince me. (Slap) Thanks I needed that.

Posted: Wed Aug 16, 2006 1:36 am
by Han
I have a niggling sense that despite having dived into NeoTicker and Delphi in Feb 2006, I should seriously re-examine the pros and cons of C# vs. Delphi for Neoticker development. You give some good arguments. Pull all your stops and convince me to give up these Delphi pros, which seem to outweigh all the other issues.

1. All the knowledgable NT developers who share and support on the NeoTicker forum code in Delphi. e.g. theperm (WaveRunner), whitmark (Grail GO interface), asptrader (AutoforksRT programmer), tazman (good trader I hear, Merlin and trhodes (shared their trading frameworks), not to mention chief NT system engineer Lawrence Chan. Without that kind of community support and mutual troubleshooting progress would be very slow indeed without a concerted effort by C# programmers to break the way for a supportive C# community to emerge for troubleshooting and exploiting NeoTicker's strengths.

2. Same as 1

3. Same as 1

In other words, if C# is superior (I'm told by a skilled and knowledgeable Delphi NT user it plainly is) and speed differences prove insignificant, what is the possibility that despite the current default toward Delphi and strong Delphi group support, one could get enough support from the outerworld, and from you and hopefully a few other C# mavens, not to be lost alone in the dust working through the perplexities of learning and writing C# to NeoTicker. Though I may sound dubious, something tells me that with enough community support, as a relative newcomer to NT, that I should learn to develop in C# instead of Delphi. Please do your best to convince me how efficiently I can learn C# and in the long run be glad I switched early to C#. I'm perishing in indecision and agony of decision, knowing I have spent and will spend hundreds of hours developing in NeoTicker. I'm serious. How did you learn C#. How would you recommend a crash course to learn only that part of it that relates only to NeoTicker development?

Han :?

Posted: Wed Aug 16, 2006 5:47 pm
by Luke
The differences are rather small. What you have spent so much time learning is the object model of NeoTicker. If you weren't a programmer before you might have also had to spend some time learning how to make object declarations, using if-then statements and comparison operators. If I were you, I would start by converting an existing Delphi IDL indicator into a C# indicator. This would by far be the best way to learn. The benefit of C# is in the existing .Net framework which has numerous abilities in solving advanced programming tasks. You probably won't use many of them at first but when your indicator development advances, you will have all that to pull from. You can slowly pick up new C# knowledge as you develop but by no means do you need to know everything before you start to develop indicators in C#.

Simple differences you would have to learn.
Object declarations / assignment
//Delphi
intVar : int;
doubleVar : double;
intVar : = 48;
doubleVar : = 34.34;
//C#
int intVar;
double doubleVar;
intVar = 48;
doubleVar = 34.34;

As you can see the differences are small. I think in general you will find C# much easier and intuitive once you get the hang of it.

This link has a much more complete comparison of syntax differences:
http://www.gekko-software.nl/DotNet/Art01.htm

Posted: Thu Aug 17, 2006 1:41 pm
by michal.kreslik
In sharp contrast to C sharp :), Delphi is not fully object-oriented. That means, it's legal to write a code without any objects involved at all with Delphi. That sometimes produces a spaghetti-like code which is hard to manage, test and debug, especially if your projects exceed certain size.

Thank to its strict object-orientation, C# code is much better organized visually, too. Logical and functional units are enlosed with {block symbols} and if you look at any random code row, you can always tell which functional unit it belongs to.

The principal aim of object-oriented programming is to split the problem into smaller separate problems (objects) and implement every object so that it has got a clearly defined behavior and ideally, it's reusable elsewhere. Then if something doesn't work, you can easily track the trouble down to the disobedient object :) and either correct it, rewrite it or use an existing object that does the same thing from elsewhere (internet..). You can't enforce such a modularity in a programming language that is not strictly object-oriented (like Delphi).

Michal

Posted: Sat Aug 19, 2006 3:50 pm
by Knight09
Recently, I have fallen in love with Ruby. (I know I should get a life!) it is the ultimate in OO languages, in it everything is an object, including simple numbers. But I am told I cannot use Neoticker with Ruby, so for the moment I will slog on with TS and its EL.
FYI, I have to use Ruby in my other business.
Cheers
Knight09

Posted: Sun Aug 20, 2006 1:09 am
by michal.kreslik
Knight,

Ruby is said to be the textbook etalon of a pure OOP language. Well actually I've good news for you. You absolutely CAN use Ruby in NeoTicker :)

Ruby.NET compiler:

http://plas.fit.qut.edu.au/Ruby.NET/

http://weblogs.asp.net/bleroy/archive/2 ... 40442.aspx


Guess what's amazing with NeoTicker: you can use any progamming language that supports .NET.

Michal

Posted: Sun Aug 20, 2006 2:36 pm
by Han
Michal and Luke,

I gather from other NeoTicker developers that someone always has to "break trail" to work through idiosycracies of NeoTicker to smooth out the interface with whatever programming language is being used. theperm for example eventually wrote some of his own objects to handle those idiosyncracies, and of course asptrader has spearheaded quite an educational sub-forum for delphi developers. To what extent to either of you (or anyone else) visualize your involvement in advancing the C# community of NeoTicker users? Are you disposed to holding sub-forum webinars in C# and sharing frameworks for aspiring C# NT developers?

Han

Posted: Sun Aug 20, 2006 7:10 pm
by Knight09
Thanks Michal for the refs, I will check them out..

Posted: Sun Aug 20, 2006 8:00 pm
by Luke
Han,

I'm a relatively new trader. I can't say I will be doing this for ever. I'm trading my own account; I don't have a hedge fund to keep me going. If I am unable to find a consistently profitable system then I will not continue. Based on statistics, the odds are 9-1 against me.
What I can say is that as long as I'm developing in NeoTicker I will use C# to write my indicators with and I will try and answer fellow NeoTicker users' questions and help out when I am able. I will not be a comparable resource to aspTrader. But everything he has given you and the community is still applicable in C#. The object models are the same for Delphi and .Net.