Yes. Use what you already know and make your project fast.
Today, after some large projects, I miss strong typing but not enough to change everything. You need more tests, but I can live with it.
We integrated with a large retailer in a complex project with only two developers and I think Python was the reason to it. Too many open source things already done and fast iterations.
Scaling is highly dependent on what you're building. For many web applications the app server isn't really the bottleneck, it's the database; switching to JVM won't help with that.
For other applications Python is way too slow... although PyPy helps a lot.
As for things like static typing and maintainability, it's certainly possible to do with Python. You also have the power to write horrible unmaintainable code. Unit testing tends to be much more more important in Python. And you can add static typing to Python these days, via external tooling.
This is the key piece of information based on which I will give you my advice. If you know Python and use it already, then go build it in Python.
If you do grow to that level of scale, python will be the least of your worries. You will figure it out then. Just build in python and release the damn kraken.
"startup aiming to build a sustainable SaaS " This is the key piece of information based on which I will give you my advice. If you know Python and use it already, then go build it in Python. If you do grow to that level of scale, python will be the least of your worries. You will figure it out then. Just build in python and release the damn kraken.
I want that last sentence on a coffee cup. Or tee-shirt I guess, but I have too many at the moment.
> Python as the main language in a potentially large-scale project This is the flaw in your thinking, the word Potentially . Good engineering means you worry about actual problems and not potential problems (within reason ofc). Your actual problem is that you haven't written the web application, so you do that first. For doing that, Python is an excellent choice. "But what about web-scale?" Well, chances are your pro…
Good point, that adjective changes everything. In regards to scaling, yes I haven't met performance scaling issues with Python web applications, even when needing long running asynchronous tasks by relying on the ever popular celery and redis, because I've never had somewhat even moderate traffic. In hindsight, I am guilty of over-engineering previous web applications "to deal with potential scaling issues", especially at the infrastructure level, leverage clusters of containers when I could of got away with Heroku.
JVM is fast and supports productive languages (including Jython) which can easily interop without service abstractions. You leave more options on the table.
But like others have said, it's tempting and typical for developers to obsess about details that at worse will be a good problem to have (... like having to super scale). Worth making sure you're not one of them.