4 ms·
> Python’s Mysql and Postgres database drivers required compilation. This made both developer machine setup as well as deployment more complicated than it reall
by vosper 11y ago
> Python’s Mysql and Postgres database drivers required compilation. This made both developer machine setup as well as deployment more complicated than it really needed to be.
Am I missing something - this was really a such a problem that it was a factor in switching languages?
- willvarfar 11y agoIt matches my own experience too. Libraries that need to compile c are a deployment nightmare. Installing Oracle client is even worse though ;)
- kilink 11y agoIsn't that what Python Wheels are for though? http://pythonwheels.com/ http://pythonwheels.com/
- willvarfar 11y ago(pythonwheels doesn't do mysql nor postgres nor sqlalchmey nor ... most DBs in fact?)
- eterm 11y agoI've started interpreting a lot of these "Why we use X" posts as less 'bragging' and more these companies trying to justify their own choices. In part because it perhaps makes them feel less isolated in their choices, and in part also because by hoping that others follow them they'll find it easier to recruit, something that is easily underestimated especially outside of major hubs such as NY, SF, or London. Perhaps I am being uncharitable. I note with interest they say, "However, we had a strong aversion to using Java itself", but don't explain why they had that aversion, or whether it was based on anything but the fact that Java isn't trendy.
- salsakran 11y agoOff the cuff, I'd estimate that between the team members at the time, we'd shipped perhaps 100k+ LOC of java into production systems at past jobs. It didn't seem interesting to rehash why we didn't want Java's verbosity in a small team.
- salsakran 11y agoIt sounds innocuous, but we were planning on supporting a lot more databases, and when you start needing to build drivers for MySQL, Postgres, SQL Server, Oracle, Redshift, etc etc anything that makes this step more brittle starts to add up. There are a lot of things that are mostly painless if you're deploying and supporting a single instance that become nightmares at the scale hundreds or thousands of installations you don't control.
- astine 11y agoIt might be if you were planning to deploy to end user's machines.
- salsakran 11y agoprecisely. (author of the post)
- jeffmk 11y agoYes. It's also a problem when you're deploying to, for example, EC2 instances that are too limited -- say a t2.tiny for proof-of-concept work -- to compile the Python lxml library. That's after you figure out which 50 different *-dev libs you have to sudo apt-get install, in a tedious process of trial-and-error, ./configure, make, and error. With Clojure this is a non-issue. lein will download what dependencies you need. And they're all already compiled into .jars. This is a benefit of the JVM infrastructure, but we're comparing Python here, so. And of course you can upgrade the EC2 instance, but an annoying and time-consuming process, since you're not in control of the AWS account yourself, and the entire issue doesn't exist if you're using Clojure.
- peedy 11y ago> to compile the Python lxml library. If you have to do it very often, I've had good success with keeping compiled python wheels around.