Linux Kernel -> in C Windows 2000 system -> large % in C (core), rest C++ X-Window system -> C MatLab -> C The programs stated above are some of todays better (well, I would be ready to negotiate about the win kernel) & more complex software applications. The list could be easily continued and should state that non-objective programming is still favourable in many sectors.
I don't have numbers, because I don't take peformace measurements of different platforms for a living. Just through my experience with IB, I know that thier platform is not good. It works but has a lot of drawbacks like speed and stability. Maybe thier programmers are second rate, but using java doesn't help either. And maybe it was BECAUSE thier programmers are second rate, they decided to use the WRONG programming language... Here are some examples: - It's slow to start up (especially the browser login) -> Due to java, it has to initialize, set up VM every damn time... Not the programmers fault - When I put in an underlying symbol for an option, it opens up another window (which takes forever to load and is slow to scroll through) -> Partly programmer fault for designing it like that but java doesn't help either - If I click on anything it takes forever -> Spill the java - In last 3 mo, its crashed on me twice -> I guess thats not so bad
Of course they were written in C, Java wasn't even around or was in its infancy when the first versions of those programs were created!
1. Not Java's fault, not IB's fault. The function is accessing IB's database via internet, which causes slowness. 2. Actually true, but only light slowdowns. 3. Did not happen to me. However, I see some more serious issues: 1. Memory usage - I bet there are some memory leaks in TWS causing increasing memory usage during runtime 2. Java Runtime Component incompatibilities with some display drivers and some network drivers
1a. Even on AOL 9.0 optimized!!!?? j/k...What if you have a cable modem (which I have)? Or is it slow because it takes a while to search through the database? 1b. Doesn't java have automatic garbage collection?
1a. The speed depends on how fast IB's servers respond to your requests. I think IB throttles connection speeds on their servers. 1b. Yes. But automatic garbage collection does not need to be 100% effective, if you allocate memory dynamically and do not abandon it until program termination, this won't help either. (e.g. in pointer arrays)
Isnt't the slow TWS "pre-startup" due to the "jts.jar" (java archive) decompression process ? I think that with some trick (which I do not remember) you could store that archive uncompressed on your harddisk.
FX, you can decompress the .jar with winzip. In fact, .jar is only a substitute for .zip The slow startup process is due to the VM nature, the decompress is done in native machine code and therefore it is fast. If you experience very slow startup, it may be due to slow TWS version checking. Just disable Port 80 for javaw.exe, it will stop it from update-checking
It is a front end of the brokerage system that resides on IB servers. This system is 100% C++ and it is damn fast. There is nothing wrong to have a Java front end. The bottleneck in performance is elsewhere. Well, I am not sure about charting performance of course.