[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Tomasz is right, stick with C++ apps



PureBytes Links

Trading Reference Links

Steve,

Thank you for posting. It will come helpful in the future when 
somebody will ask to go .NET way :-)

Some background for those who may not be aware about C# story: C# was 
actually Microsoft response to Sun's Java.
Microsoft had some conflict with Sun about MS Visual J++ (which was 
MS-Java). So Microsoft thought that they will come with something 
that looks like Java, works like Java (is platform independent) but 
it is Microsoft's own and they don't need to worry about Sun's 
intellectual property. So they came up with C# that "borrows" most of 
ideas from Java including the fact that it is translatted to similar 
platform-independent "byte-code" (CLI in MS-speak) that is later 
interpreted at run-time.
As execution of such program involves interpretation in run-time it 
just runs slower. Yes both Java and .NET now have on-the-fly byte 
code compilers that are supposed to deliver native speed but practice 
shows that the CLI/bytecode is slower than real native code.
This comes as no surprise to me. Especially considering the fact
that C/C++ allows going down to assembly level (working with direct 
machine code). I did machine-code level optimizations for basic 
arithmetic operations in AFL and this resulted in significant speedup 
in AFL execution. This would not be possible with Java.
In C# it is possible to mix parts in "unmanaged" code for speed - and 
this "unmanaged" code is exactly what good old C/C++ produces
but the practice shows that C# makes programmers lazy and they rarely 
bother about coding parts in tight unmanaged code because there is 
always pressure to deliver program "for yesterday" and "we will 
optimize it later" but the "later" never comes because there is next 
version that must be shipped in the hurry.
I have seen that in many software companies and there is never time 
to perfect little parts of the code.
Fortunatelly with AmiBroker the story is quite different.
I have no "managing board" telling me what I should do or that I 
should hurry up. I can spend 2 weeks on 20 lines of code if I want to 
and nobody is able to say "stop wasting time on this little 
optimization because we passed the deadline".
I can say "no" to .NET even if everybody is evangelizing how "modern 
and fast to develop in" it is. 

Yes C/C++ is slow to write in, but it does not make you lazy and it 
forces you to think. The only way to get quick effects in C/C++ is to 
think alot prior to start coding. If you have well-thought concept,
you can write in C/C++ pretty fast.

Best regards,
Tomasz Janeczko
amibroker.com

--- In amibroker@xxxxxxxxxxxxxxx, "scourt2000" <stevehite@xxx> wrote:
>
> 
> I've been playing around with some "other charting packages" out 
> there and there's one theme that runs through all of them:  if the 
> charting package is based on .Net, it's going to be a performance 
> dog compared to a C++ native code-programmed app.
> 
> THANK YOU Tomasz for not getting on the .Net bandwagon.  For real-
> time stock market and futures charting, it may be easier to program 
> in C# than C++, but your end-users will suffer the consquences of 
> that decision.
> 
> It won't matter when computers are twice as fast as they are now, 
> but now, there's a noticeable difference in performance and 
> responsiveness.  I'm not even talking about being clever about 
> backtesting speed-ups and the like.  I'm talking about basic data 
> retrieval, plotting and user manipulation of the charts.
> 
> Anyway, had to get that out of my system.  Kudos to you Tomasz!
> 
> Steve
>




Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/