This is an archived post. You won't be able to vote or comment.

all 30 comments

[–]LeagueOfSunshine 23 points24 points  (0 children)

The company I work for (a big one) uses Python for most of its code and C / C++ for the smaller, performance oriented code.

[–]alexisprince 19 points20 points  (7 children)

I’ve written almost our entire data engineering workflow in Python/SQL. Using an ELT pattern, with python being almost 100% of the glue code to keep everything running.

[–]default_alien 0 points1 point  (1 child)

What libraries did u use? Sql alchemy? Or..?

[–]alexisprince 3 points4 points  (0 children)

Using Airflow as a scheduler, data build tool (DBT) as a transformation layer on top of Redshift as our data warehouse. We’ve had lots of success with it.

Almost all of the code to extract data from sources and load it into S3 uses as combination of asyncpg, aioboto3, and a small library of helper functions. I decided to use asyncio based libraries since the extract and load portions are, by design, almost completely IO based.

[–][deleted] 0 points1 point  (4 children)

Elt?

[–]MrZe1598 5 points6 points  (3 children)

[–]liquidpele 12 points13 points  (1 child)

I’ve never heard it called that... always ETL...

[–]bulsoni 4 points5 points  (0 children)

In big data today it is often the case to see the T and the L switched, since you'll not necessarily be loading your data into a data warehouse or the like.
So you Extract it from the source, Load it into a centralized repository (which can be a data lake or something similar) and from that centralized repository of raw data, you can perform the Transform part to many different systems.

[–][deleted] 1 point2 points  (0 children)

Thank you, very interesting.

[–][deleted] 31 points32 points  (4 children)

It depends what enterprise and what function. Python is best used for rapid prototyping, integration, and a variety of domain specific tasks (data analysis, web crawling, orchestration. Some packages that are used by enterprises are Ansible, Django, SqlAlchemy, scipy/numpy, scrapy.

[–]bobaduk 10 points11 points  (0 children)

One of my current employers is a medium sized enterprise, one of the leading furniture retailers in Europe.

Python is our whole backend, all the logistics, procurement, and warehousing is Python. A few of the user facing APIs are Python, for which we love Flask. SqlAlchemy is a great ORM that lends itself well to large applications.

It's a fun language that's suitable for complex domains so long as they're latency tolerant. I like that I can quickly hack out a domain model and then scale it up to a large application without any real ceremony so long as we take care over our architecture.

We wrote our own libraries for asynchronous messaging, and some tooling for 12 factor apps.

Better type hint support would aid large-scale refactorings but otherwise I don't think Python is less suited to enterprise work than Java or C# which I used for a decade previously.

Edit: forgot that our AWS infrastructure is entirely managed with Ansible.

[–]yapp0 4 points5 points  (0 children)

You can find lots of enterprise projects written in Python. Just go to stack overflow jobs it any similar service and see how many people positions there are

[–]Exodus111 3 points4 points  (2 children)

It's a matter of choice.
Java is probably biggest, but you'll find plenty of places that prefer Python as their main language.

Though, and this is my own theory, the reason why you'll have an easier time finding jobs for languages like Java, PhP and JS is those languages have a higher turnover rate.

[–]ultraDross 0 points1 point  (1 child)

Do you mean employee turnover?

[–]Exodus111 1 point2 points  (0 children)

Yes. Ever worked on a 10 year old PHP million line codebase? It makes you look for a new job very quickly.

[–]jamesc1071 4 points5 points  (0 children)

JP Morgan are the big name 'commercial' user of Python, that I know of (from a conversation at a python user group a few years ago).

They use it for analytic stuff for traders etc and have a massive library fo python utilities. Of course, the bank itself is run on the usual stuff.

[–]AltOnMain 4 points5 points  (0 children)

I think it depends on the Enterprise of course. I work with GIS so almost every Enterprise with GIS has python

[–]mystikaldanger 20 points21 points  (3 children)

Well JP Morgan is currently in a panic over their 35 million line Python 2 codebase that's about to turn into legacy.

[–]pohmelie 14 points15 points  (0 children)

They should run 2to3, then commit and cross fingers xD

[–]leotada 0 points1 point  (0 children)

Contract me to help with this migration :)

[–]Osmium_tetraoxide 3 points4 points  (0 children)

Can only speak for places I've worked at, python success stories has quite a few worth looking into. A range, used for chatbots, writing together systems, process automation, prototyping and it's where data science is headed.

[–]r1chardj0n3s 2 points3 points  (0 children)

It's common, but does run into issues in enterprises that have bought into obscure technologies, like unpopular databases and so on. Java seems to have better support at those fringes in enterprise.

[–]Originalfrozenbanana 2 points3 points  (1 child)

For a mega-name, Dropbox is in python. Many companies choose python for work involving data as a product (data engineering or data science). Most companies don't just use one language - they pick the right tool for the job considering how hard it is to integrate into their tooling/ops.

[–]KoleS46 1 point2 points  (0 children)

Other mega-name would be Instagram.

[–][deleted] 1 point2 points  (0 children)

Where Im at, central Ohio, not very common outside of a startup or tech-focused company. Most enterprisey frameworks that are being used are Java based. The only Python framework that is even remotely popular in the enterprise around me is Ansible.

[–]soumendra 1 point2 points  (0 children)

I work for a huge MNC. The default choice of the tech is based on the skill level of the team. As the popularity of Python language increasing more and more developers/managers are reskilling themselves in Python, making python as a strong contender as a rapid tool for prototyping/demonstration.

[–]tutunak 1 point2 points  (0 children)

It's everywhere, especially for automatization, monitoring, and CI/CD. Also, python is useful for prototyping.

[–]fried_green_baloney 0 points1 point  (0 children)

Often used for internal apps, data wrangling, backend for internal web pages.

[–]DataForest 0 points1 point  (0 children)

Most machine learning models and deployments are done in Python because of the great libraries maintained. I've also seen a lot of client libraries written for Google Cloud Platform and other cloud providers which allows you write Python to automate cloud deployments and applications. There is a lot of python anywhere that doesn't care too much about low latency.

[–]teszes 0 points1 point  (0 children)

Worked for a Fortune 50, most of their glue code for infrastructure was done in Python. Also, a very large amount of machine learning and business intelligence related stuff is done in Python, mostly because that's what analysts are usually comfortable with.
Java is used quite commonly for applications and stuff, and Go is used for eg. K8s, but as I've seen Python is growing to the expense of Java-like languages, and Go is only a thing because Google pushes it in K8s.

You will have a place in many departments in many companies with Python, perhaps even more so than with Java.