Considering all that you have stated in your question, and you are willing to take the leap of faith. I think I have the answer :
Myself being a python-django developer, I won't prefer python
in the first place because of the problem that you are dealing with.
In a geo application that will be a part of a very big system, you will have concurrency and optimization issues the moment you end up implementing the first phase of your application.
I think you should go for node.js
with no doubts in mind [It might take time to implement it but will be the best solution], here is why :
In a nutshell,
Python
works synchronously by design, and tornado
and Twisted
allows it to go async
with tricky threading - Why not choose a technology which inherently comes with solution to the very problem that you are targeting ?
Its true that I won't prefer node.js
upfront for a website development considering the developer's productivity. But I would say we should use node.js
where it really solves a problem i.e. come as a solution then a technology (as you quote in your question).
Its a question like why use a nosqldb
when you have a great relational database like postgres
? You know the answer you can-not do stuff with postgres
that you can do with nosqldb
like mongo and vice versa.
So, your problem area is native to node.js
so there seems no point of trying to re-invent the wheel with python
.
Considerations :
- You will face initial friction with
node.js
since its a new technology to you.
javascript
can be harder to maintain for a python developer initially.
- Leap of faith is a must since you target long-term goals with this, rather then short term benefit of saving time on tried and tested technology.
As an Example :
- Facebook uses
php
for all its webpages, but it uses the inherently concurrent erlang
for its chat.
- Considering
erlang
would have been more logical then considering python emulations.