I work as a financial futures trader, and the main software I use for order management and viewing market data is being discontinued in favour of a new version.<p>The old software* has been around since the early 2000s, and is a Windows application written in c++. The newer one<i></i> has a C++/Linux backend, but the UI is basde on Javascript/HTML5/Chromium.<p>Having tried the new software, the UI performance is appalling - it feels slugggish, much like playing a video game on an underpowered PC, so seeing a generally too low framerate, which at key points drops even lower. Is this likely to be due the technologies used? I don't know much about UI coding, but would've assumed that a C++ application would perform better than one based on Javascript and Chromium.<p><pre><code> * https://www.tradingtechnologies.com/trading/xtrader-platform/
** https://www.tradingtechnologies.com/trading/tt-platform/</code></pre>
For updating grids, you can achieve very fast performance using batched transactions:<p><a href="https://medium.com/ag-grid/how-to-test-for-the-best-html5-grid-for-streaming-updates-53545bb9256a" rel="nofollow">https://medium.com/ag-grid/how-to-test-for-the-best-html5-gr...</a><p>If that's not fast enough, there are canvas based grid which can improve the refresh rates faster. Hypergrid is a canvas based grid, though it's not the easiest to work with:<p><a href="https://github.com/fin-hypergrid/core" rel="nofollow">https://github.com/fin-hypergrid/core</a><p>JPMorgan has release Perspective, which demonstrates streaming updates using WebAssembly:<p><a href="https://perspective.finos.org/" rel="nofollow">https://perspective.finos.org/</a><p>Really comes down to your specific situation what approach is best.
As someone who used xtrader a lot in the past, I'm a little sad to see it get claimed by the web-based movement. That was some really fine software.<p>To get a sense of the tradeoffs taking place that leave you with a noticeably slower UI, see here:
<a href="https://www.forbes.com/sites/tomgroenfeldt/2019/02/12/openfin-builds-an-os-for-traders-on-high-performance-html5/#28bfd2f837be" rel="nofollow">https://www.forbes.com/sites/tomgroenfeldt/2019/02/12/openfi...</a><p>PSA: It may be a good idea to hire a programmer and customize your software. TT has a nice API. If you have idiosyncratic workflows or views, or if you just want a few particular things to be faster, it's not too hard to use this API to make the tradeoffs and optimizations that work best for your own supplemental UI screens. We did this with a F# + WPF UI where the fill feed and responsiveness was just as snappy as TT's own UI (the old, c++ one).
I've personally written grids that update in real-time and handle millions of updates over the course of a day. The stack was based on React as the frontend, websockets as the delivery mechanism and Java on the backend and it scaled fine.<p>So, IMHO, it's mostly a bad architecture or a sub-optimal design
It’s possible but unlikely. The most likely reason is just bad code.<p>I’ve seen trading web ui that were as fast as native TT going back lots of years.<p>The most likely reason is that the ui designers do not understand the problem domain & therefore underemphasized refresh latency for something else.