5 reasons Python is powerful enough for Google
Article 5 translation Reasons why Python is Powerful Enough for Google
Or, to reformulate this question: you are looking for work, what language do you need to learn ?
From the title of this article, you can guess that I think Python is the right answer. But why?
The answer is that Python is a powerful language. But what does it mean? What makes a programming language powerful?
Today, tons of intellectual energy is spent on Big Data (both for its analysis and its processing). The more data you need to process, the more important it is to manage the memory you use.
Python provides both expression and function generators .
Generators allow iterative processing of things, one item at a time. This does not seem to be fantastic until you begin to understand that a list is required for normal iterative processing of the list. The list takes up memory. A very large list takes up a lot of memory.
Where it is especially convenient (when you have a long chain of processes), application to the data set is necessary. Generators allow you to simultaneously capture the source data for one element and transmit them along the entire process chain.
I often encounter the need to transfer data from one site to another. Some of the sites I transfer have ten-year histories and gigabytes of data. Using migration tools based on the collective.transmogrifier generator , I can read site data, make complex, interdependent data updates, while it processes, creates and stores objects on the new site in read-only memory.
For applications in which you deal with even larger data sets, such a tool can be indispensable. David Beasley hasexcellent presentation , which contains some pretty convincing examples of using generators for system tasks. Take a look and you’ll see your imagination run wild!
OK OK. I hear a snort. Python is an interpreted language, isn't it? Aren't they slow?
The thing is, amazing work has been done in recent years to improve Python performance.
The PyPy project aims to speed up Python in general (and does an excellent job of this ).
Numba can offer an amazing increase in speed by simply adding decorators to the code that you already have.
So, I want to say that if you want to do high-performance computing, Python today is a viable option.
Python has been around for quite some time and is used in almost all areas of activity. The Reddit thread has created a “how do you use Python at work” survey , in answers to tasks ranging from system automation, testing and ETL to games, CGI and web development.
Disney uses Python to support its creative process.
Mozilla uses Python to explore its vast code base and releases many of the open source packages built into Python.
Checking PyPi , the public package directory for Python, shows 40,000 add-ons available in nearly 300 of these categories .
Basically, if you want to do something in Python, there are pretty good chances that someone already has it, and you don't have to start from scratch.
I recently read a post about why there are so many different kinds of Python .
The author believes that Python is not really a language, it is a description of the language. This means that you can implement Python in any way.
Python, which most people interact with, is CPython, an implementation written in C. One of the features of CPython is that it offers pure integration with code written in C, so the implementation of wrappers around C libraries is relatively simple.
But there is Jython that offers deep integration with Java code, Iron Python for working with C # and .NET code, PyObjc for writing Python code using ObjectiveC tools, and evenpajs , which offers to compile your Python for JavaScript.
Thus, if you already have a software stack in one of these languages, it’s quite simple to include Python in your work environment so that you can get the most out of all its features.
Python has a reputation for being easy to learn. The language syntax is for reading. There is much debate about this , but the facts speak for themselves.
Much of Python's popularity is concentrated in areas such as scientific computing . People working in this field are primarily scientists and only then programmers (if they are at all).
Advanced systems, such as NumPy and SciPy , were not founded by teams of software engineers, but by domain experts who created the tools necessary to complete the work.
Think about that.
If you are creating a new project and working in some specialized field, whom do you want to entrust to deal with what problems should be solved? Of course, you can hire specialists in this subject area and developers (and in the end, you will need them). You can even teach them to talk to each other (and ultimately, you will need this too). But if you are just starting out, what is the best thing for you to do?
I believe that you need to choose a language that empowers your experts directly.
Choose Python.
You are getting ready to start a new project. Which language should you choose for development?
Or, to reformulate this question: you are looking for work, what language do you need to learn ?
From the title of this article, you can guess that I think Python is the right answer. But why?
The answer is that Python is a powerful language. But what does it mean? What makes a programming language powerful?
Python efficient
Today, tons of intellectual energy is spent on Big Data (both for its analysis and its processing). The more data you need to process, the more important it is to manage the memory you use.
Python provides both expression and function generators .
Generators allow iterative processing of things, one item at a time. This does not seem to be fantastic until you begin to understand that a list is required for normal iterative processing of the list. The list takes up memory. A very large list takes up a lot of memory.
Where it is especially convenient (when you have a long chain of processes), application to the data set is necessary. Generators allow you to simultaneously capture the source data for one element and transmit them along the entire process chain.
I often encounter the need to transfer data from one site to another. Some of the sites I transfer have ten-year histories and gigabytes of data. Using migration tools based on the collective.transmogrifier generator , I can read site data, make complex, interdependent data updates, while it processes, creates and stores objects on the new site in read-only memory.
For applications in which you deal with even larger data sets, such a tool can be indispensable. David Beasley hasexcellent presentation , which contains some pretty convincing examples of using generators for system tasks. Take a look and you’ll see your imagination run wild!
Python fast
OK OK. I hear a snort. Python is an interpreted language, isn't it? Aren't they slow?
The thing is, amazing work has been done in recent years to improve Python performance.
The PyPy project aims to speed up Python in general (and does an excellent job of this ).
Numba can offer an amazing increase in speed by simply adding decorators to the code that you already have.
So, I want to say that if you want to do high-performance computing, Python today is a viable option.
Python is widespread
Python has been around for quite some time and is used in almost all areas of activity. The Reddit thread has created a “how do you use Python at work” survey , in answers to tasks ranging from system automation, testing and ETL to games, CGI and web development.
Disney uses Python to support its creative process.
Mozilla uses Python to explore its vast code base and releases many of the open source packages built into Python.
Checking PyPi , the public package directory for Python, shows 40,000 add-ons available in nearly 300 of these categories .
Basically, if you want to do something in Python, there are pretty good chances that someone already has it, and you don't have to start from scratch.
Python is not Python
I recently read a post about why there are so many different kinds of Python .
The author believes that Python is not really a language, it is a description of the language. This means that you can implement Python in any way.
Python, which most people interact with, is CPython, an implementation written in C. One of the features of CPython is that it offers pure integration with code written in C, so the implementation of wrappers around C libraries is relatively simple.
But there is Jython that offers deep integration with Java code, Iron Python for working with C # and .NET code, PyObjc for writing Python code using ObjectiveC tools, and evenpajs , which offers to compile your Python for JavaScript.
Thus, if you already have a software stack in one of these languages, it’s quite simple to include Python in your work environment so that you can get the most out of all its features.
Python is easy
Python has a reputation for being easy to learn. The language syntax is for reading. There is much debate about this , but the facts speak for themselves.
Much of Python's popularity is concentrated in areas such as scientific computing . People working in this field are primarily scientists and only then programmers (if they are at all).
Advanced systems, such as NumPy and SciPy , were not founded by teams of software engineers, but by domain experts who created the tools necessary to complete the work.
Think about that.
If you are creating a new project and working in some specialized field, whom do you want to entrust to deal with what problems should be solved? Of course, you can hire specialists in this subject area and developers (and in the end, you will need them). You can even teach them to talk to each other (and ultimately, you will need this too). But if you are just starting out, what is the best thing for you to do?
I believe that you need to choose a language that empowers your experts directly.
Choose Python.