Question

Me and my friend are developing a web-app in Python + Flask + PostgreSQL. We have...

Me and my friend are developing a web-app in Python + Flask + PostgreSQL. We have been working on it for the past few months and have developed a lot of schema/use-cases specific to Python + Flask + PostgreSQL. Now, all of a sudden, we plan to move to another NoSQL database (Neo4j) because it somehow fits better to what the core of our web-app is going to be. Python supports Neo4j through embedded/rest api bindings, but uses a technology JPype, which is rather unmaintained, to say the least.

So, this question of using Scala arose today. Ours is going to be next-to-realtime application, so we can't afford to have the lag/overhead of having intermediate steps of Python->Java requests (Neo4j standalone server is based on embedded Neo4j). So, whereas I am in favour of spending a month or two and learning Scala/Lift, he is in favour of carrying on with Python and porting to Scala whenever need arises, even though when we know that Python+bindings will be a bit slower as compared to the native Neo4j support for Java.

In the past few months, we had done a lot of work in Python + Flask + PostgreSQL already. If we port to Scala, we will need to port all of it to Scala.

Would it be wise to port now? Are there any personal experiences or advices from you all? Or is this just premature optimization?

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Obviously you're not going to get a definite answer here, because it really depends on your individual case and, in particular, who's working on the project. I'm not sure what you intend to gain though, but it sounds like you would have to throw away a lot of work.

Scala is slightly more buzzword-compliant these days, but Python is no slouch when it comes to functional programming either. Still, it all depends on the specifics of your workload.

Just remember Knuth's advice about premature optimization; he's a pretty bright guy. I'd say if you're even remotely close to finishing, then don't change. It's far more important to get some working code as quickly as possible than to "do it right" the first time. Because you simply don't know what you will have done wrong until you can test it.

Then, once you know what your choke points are, design something that addresses your real concerns.

Add a comment
Know the answer?
Add Answer to:
Me and my friend are developing a web-app in Python + Flask + PostgreSQL. We have...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT