Building a data tool: Python vs. JavaScript
Last week we did Svelte v React, today let's do Javascript v Python.
When we rebooted Latitude I strongly pushed the team to use Python as our main language. It was an obvious choice: It has amazing community support, all DBs have first-party clients for it, it has the largest ecosystem of data-related libs, it supports all large data formats, it even has a freaking official spec for db connectors.
I had suffered building a data product not with Python (Ruby) for the last 2 years, and didn't want to go through that again.
However, Latitude is also a full stack framework.
We wanted to allow developers and data engineers to not only build dashboards in the web, but to build state-of-the-art, modern applications that could easily be extended with all the tools and primitives the current web offers.
This strongly pushed us to base our approach on existing web frameworks, and since we had chosen Svelte for the templating syntax, Sveltekit became the obvious chose.
Moreover, it is not like Javascript has bad support for data-centric work; It has in fact the second largest ecosystem of data libraries after Python. It has first-party clients for all major DBs.
It has excellent support for all major large data formats. It even has good support for dataframes via the excellent Polars. Combine it with an experience to build frontend experiences that's leaps and bounds ahead of Python, and you have a strong case for using Javascript.
So, there you have it. Time will tell if we made the right choice, but so far I have little regrets on the path chosen.
Latitude is an open-source embedded analytics framework designed with developers in mind. It integrates seamlessly with your database or data warehouse, leveraging SQL and straightforward frontend components.
You can check out the repo here.