Job Recruitment Website - Job seeking and recruitment - Is Python that amazing?
Is Python that amazing?
Python's design features, including easy to learn and use, and as a glue language. Easy to learn and easy to use is difficult to quantify, but at least most of my friends agree that Python is easier to learn and use than most languages. Some people don't agree that Python is usually not that Python is more difficult to learn than other languages, but that Python runs slowly or is a common problem of dynamically typed languages. As for the glue language, it is narrower. There are few languages designed for glue, and only Lua can be counted as one in my impression. Another advantage of Python over other languages is string processing.
Here are three opportunities for Python development.
Search/NLP: 2006/NLP: Around 2006, the development of search engine companies just broke out. That year, Kai-Fu Lee of Google China launched the Closed Disciple Program, and Baidu also made many advertisements, such as Baidu knows more about Chinese series. At that time, search engines were high-tech in the IT industry. Shortly after, Alibaba also established ASC (Alibaba Search Technology Research Center), which has been renamed many times and has been used as the frontier research and development department within Alibaba.
Python has a long history as a search engine and NLP. In the early 1990s, Google developed a search engine crawler using Python. Even now, Python is basically the first choice for developing reptiles. Many people's introductory programs for learning Python are also reptiles. Moreover, the key that Python is suitable for developing reptiles is that Python's string processing is very convenient.
That is, from the end of 2006, a large number of newcomers poured into the domestic python-cn mailing list and began to learn python in depth with reptiles as an example.
WEB Entrepreneurship Tide in 20 10: Since 20 10, there has been a new wave of entrepreneurship at home and abroad, and people have developed various websites. At this point, Python has gradually become one of the mainstream WEB server development options. Compared with contemporary Java and PHP, it has the advantage of development efficiency.
It is precisely because early startups need rapid iteration and trial and error that Python in this era has become a good option. Then let more engineers start learning Python.
It is from this period that more and more companies will openly recruit Python engineers. In the past, there were very, very few advertisements for Python engineers.
20 14 deep learning: Python has almost absolute advantages in deep learning since 20 14. There are only two mainstream development languages for deep learning, C++ and Python, and other languages can think that there is no decent space here at all. All mainstream deep learning frameworks also directly provide C++ and Python interfaces. However, due to the difficulty of C++ development, there are indeed many practitioners who directly use Python to obtain the relevant steps of deep learning.
This growth period of Python is considered by more people who don't know Python to be Python's dumb luck. But the logic behind it is very solid. The reason is that Python is a good glue. The initial starting point is the numpy library.
Numpy is a scientific computing library that encapsulates BLAS. BLAS is a highly optimized mathematical operation library of CPU vector instruction set. The top computing performance can be obtained by scientific computing through BLAS, which is several times faster than C program without vector instruction set optimization. Another important feature of numpy is that the buffer is encapsulated, so that the contents of the buffer need not be processed by Python, but are actually handled by a specific software library. Numpy is only responsible for maintaining the life cycle, shape and other metadata of the buffer. This makes the computing performance of numpy unaffected by Python, but at the same time, Python can be used to manage the life cycle of buffer.
The advantages of ease of use brought by numpy to buffer management have been greatly developed in the future. Such as the following points:
OpenCV: In opencv-python, numpy.array is used to manage image data, but unlike the C++ interface, Mat is used. The same top performance.
PyCuda/PyOpenCL: numpy.array is also used to transparently transfer data to GPU for high-performance computing. In particular, the integration of JIT makes it possible for kernel functions to be passed as strings instead of being compiled independently like C++.
Caffe/TensorFlow: numpy.array is also used, and the integration of PyCuda/PyOpenCL is used.
So I found Python is a good glue, which really sticks many useful libraries together in the whole process. It is the top performance in process integration, without the performance loss of Python, and brings very good usability.
Compared with other languages, the gameplay of these C/C++ libraries is to encapsulate a layer of objects first, and the encapsulation is not aligned before and after. And because most languages are not designed for glue, it is very difficult to develop C interface. It is difficult to combine nature with these high-performance computing libraries. Accumulated, there is a gap with Python.
The R language spoken by the subject is a domain-related language, which is used in the field of statistics and also has Matlab for scientific calculation. If the output of the program is just a report, or even a statistical chart, it is not a big problem. But to become a product, the integration with other systems becomes a problem. General server deployment products will not choose such an unprofessional language in engineering. Therefore, in practical application, engineers are still responsible for extracting algorithms and transplanting them to product-level languages and platforms. For example, although R can access MySQL database normally, and so on. However, in the product-level system, memcache, kafka, etcd and so on are involved, but there is no R language interface. Therefore, it is ok to write some small programs running on your own computer in languages related to these fields, and there is no hope of entering the product.
Moreover, because universality has always been difficult to cross its own domain, the life cycle of such languages is generally not too long, and will soon die without the strong support of its own domain. Therefore, it is suggested that the topic owner spend some energy to look at some commonly used languages in the industry.
- Previous article:Is Tongji in Tang Dynasty better than Longzhou Middle School?
- Next article:Is Guangxi Liugong a state-owned enterprise?
- Related articles
- Mianchi county institution treatment
- How to evaluate the accounting major of Shanxi University?
- How about oriental tulips? OK or not? Is it worth buying?
- A cover letter for a middle-aged person
- Where can I recruit internal towing drivers for Nanwei Wharf in Nansha, Guangzhou?
- Excuse me, is renhuai city Hospital a secondary hospital? Are there interns every year?
- Can plant protection major take the Tobacco Bureau exam?
- Which is closer to Gao Qi Airport, Xiamen North Railway Station or Xiamen Railway Station?
- Is it easy for Zhonghui to pass the written test?
- Can the online education college of China Medical University apply for pharmacy pharmacists?