A lot of Python Unfamiliar people , Think Python The rise in recent years is just luck . This article helps you review the past ten years Python Of 3 Secondary growth and corresponding historical background .
Python The characteristics of the design , Including easy to learn and use , And as a glue language . Easy to learn and easy to use is a hard thing to quantify , But at least most of my friends agree Python It is simpler to learn and use than most languages . Some people don't agree Python It is not generally believed that Python It is more difficult to learn than other languages , But think Python The running speed of is slow , Or the common problem of dynamically typed languages . As for glue, the language is narrower , There are very few languages designed for glue , The impression is only Lua It's the last one . the other one Python The advantage over other languages is string processing .
The following is an introduction Python Get development 3 Secondary opportunity period .
2006 Years of searching /NLP:2006 Years ago, the development of search engine companies broke out . That year Google China's Li Kaifu launched the closed door disciple program , Baidu has also made many advertisements , For example, Baidu knows more about Chinese series . At that time, search engines were IT High tech in the industry . Not long after , Alibaba also made a ASC( Alibaba search technology research center ), Later, it was renamed after the trend for many times , It has always been the cutting-edge R & D department within Alibaba .
and Python Used as a search engine and NLP It has a long history . In the early Google stay 90 In the s, the search engine crawler was developed using Python Realized . And even now , Developing crawlers ,Python It is basically the first choice . Many people study Python Is also a crawler . and Python The key to developing crawlers is Python String processing is very convenient .
That is from 2006 Beginning of the year , The domestic python-cn The mailing list is flooded with new people , And take the reptile as an example to start in-depth learning Python.
2010 Year of WEB The wave of entrepreneurship :2010 Year begins , A new wave of entrepreneurship has emerged at home and abroad , We develop a variety of websites . At this time WEB Development ,Python Has gradually become the mainstream WEB One of the server development options . Compared with the contemporary Java and PHP etc. , It has the advantage of development efficiency .
Because early startups need rapid iteration and trial and error , Make this era Python It has become a good option . And let more engineers begin to learn Python.
That is, from this period , More and more companies will recruit openly Python The engineer . Recruit before Python Advertisements for engineers are very, very rare .
2014 Year of Deep Learning: from 2014 The in-depth study that began to catch fire in ,Python The advantage of is almost absolute . The mainstream development languages for deep learning are C++ and Python Two kinds , Other languages can be considered as having no decent space here at all . All mainstream Deep Learning frame , It is also directly provided by the government C++ and Python Two interfaces . And because the C++ Difficulty of development , At present, there are quite a few professional engineers who directly use Python Complete the relevant steps of deep learning .
This time, Python The growth period is more unknown Python Of people think it is Python Shit luck . But the logic behind it is very solid . The reason is that Python It's a good glue . The initial starting point is numpy library .
numpy It's encapsulated BLAS Scientific Computing Library of .BLAS It's right CPU Vector instruction set highly optimized mathematical operation library . adopt BLAS Scientific computing can achieve top-level computing performance , This computing performance is better than that without vector instruction set optimization C The program can be several times faster . and numpy Another important feature of is , hold buffer Do the packaging , bring buffer There is no need to Python To deal with the , Instead, it is actually handed over to a specific software library ,numpy Only responsible for maintaining the buffer Life cycle of , Shape and other metadata . This makes numpy The computing performance of will not be affected Python Influence , But at the same time, you can use Python Easy to learn and easy to manage buffer Life cycle of .
numpy Yes buffer The ease of use advantage brought by the management of has been greatly developed later . As follows :
OpenCV: stay opencv-python Is to use numpy.array To manage image data , It's not like C++ Interface Mat. Same top performance .
PyCuda/PyOpenCL: It's also used numpy.array To transparently transfer data to GPU Do high-performance computing . In particular, it integrates JIT, So that it can be passed as a string kernel function, No longer like C++ You should compile it independently .
Caffe/TensorFlow: Also used numpy.array, And used PyCuda/PyOpenCL Integration of .
So I found it all the way down , from Python It's a good glue , It really sticks together a number of good libraries in the whole process . In terms of process integration, it is a top-level performance , But not Python Loss of performance , At the same time, it brings very good usability .
Compared with other languages , For these C/C++ The library is played by first encapsulating a layer of objects , The front and back of the package are not aligned . And because most languages are not designed for glue , Development C Interfaces are very difficult . Naturally, it is difficult to combine with these high-performance computing libraries . Add up to Python There is a gap .
The above is all the content shared this time , Want to know more python Welcome to official account :Python Programming learning circle , send out “J” Free access to , Daily dry goods sharing