Hacker News new | past | comments | ask | show | jobs | submit login

> 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?




I'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.


Off 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.


Yes. 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.


> 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.


It 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.


It matches my own experience too. Libraries that need to compile c are a deployment nightmare.

Installing Oracle client is even worse though ;)


Isn't that what Python Wheels are for though?

http://pythonwheels.com/


(pythonwheels doesn't do mysql nor postgres nor sqlalchmey nor ... most DBs in fact?)


It might be if you were planning to deploy to end user's machines.


precisely.

(author of the post)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: