HN user

luzifer42

16 karma
Posts1
Comments13
View on HN

You really need a good reason to choose a non native language (e.g. not JavaScript for the Browser). One reason might be that you target other platforms too (cross-platform). In that case, you are outside of the browser anyway and you need to come up with solutions to these problems. Implementing those in a consistent way across all platforms for your product is not generally a bad idea. The alternative is an inconsistent but native UX for each platform.

The canvas is a powerful tool, especially if you do a lot of graphical work. Rendering the entire UI yourself, gives you complete freedom of layout management. Plus, you avoid any DOM manipulation, directly or through a myriad of JavaScript frameworks. Remember: there is no silver bullet. Example: https://www.isochart.com

Hello, I've made a charting tool for time-series.

I was frustrated with existing charting tools for many reasons:

  - Too complex to setup
  - Too complex to use
  - Too expensive
  - Too slow
  - Not interactive
  - Not flexible/programmable enough
  - Difficult to integrate with other datasources/tools
  - Inconsistent time-axis labels
  - Looks like Omega SuperCharts from the 90s
But the most annoying for me:
  - Limited Zoom. What can you conclude without the full picture or the details?
  - And irregular time axis. I don't know if this is normal in the excel/finance world, but drawing straight lines on charts with irregular x-axis makes no sense to me.
That's why I build my own tool. Currently, my main use case is to analyze financial data and the data which influences it.

On the technology-side I've made some bold decisions:

  - Cross-platform, web-first.
  - WebGL 2.0: stable/boring.
  - Java: stable/boring. Integrate easily financial calculation libraries.
  - libGDX: stable/boring. More than just a game framework.
  - No fancy JavaScript framework needed: Look at the DOM, there's just a canvas. Frameworkless.
  - Backend: This PWA runs offline in your browser. Serverless for real.
N.B.: Browsers have limited network access due to CORS. (access-control-allow-origin, https://developer.mozilla.org/docs/Web/HTTP/CORS) E.g. Yahoo does not allow direct reuse of their API, so you cannot open it as URL. However, you can try to open it as file, as your OS might download it to a temporary file and hand it over to the browser. (e.g. https://query1.finance.yahoo.com/v7/finance/download/BAC?per... )

P.S.: Chrome-based browsers are probably faster than Firefox, because Firefox still has some WebGL performance issues.