|Python Development Trends|
|Written by Janet Swift|
|Wednesday, 16 May 2018|
Results from a Python-specific study gives insights into the Python development ecosystem and an update on the Python 3 versus Python 2 situation. It also shows marked differences between those using Python for web development and for data science.
We have already taken one look at the results the Python Developers Survey 2017 from JetBrains and the Python Software Foundation, see What Makes Python Special?. In that article we cover what the survey tells us about Python developers, their roles and what they use Python for. Among the findings reported there is that among those for whom Python is their main language more developers (54%) were using Python for web development than for data analysis (51%), something I commented on as being surprising.
The situation appears even more extreme from looking at the question "What do you use Python for most?".
Web development again comes top with a 29% share among those for whom Python was main language versus a 17% share for Data analysis. However adding Machine learning (8%) to Data Analysis to give a Data science grouping (25%) evens things up. Indeed, looking at the results for the survey as a whole, that is adding in those for whom Python is a secondary language, the Data Science share of 27% narrowly exceeds that of Web development at 26%.
In looking at the way Python is part of an ecosystem of tools and technologies the survey reports results for All Python devs, Web developers and Data scientists, revealing some big differences.
The burning question for Python has to be:
What is the current Python 3 adoption rate?
At last we have an answer that shows Python 3 to have a clear majority share of 75% - up from 40% in a comparable survey in 2016. Web developers are however lagging in this respect with only 70% adoption, whereas among data analysts 77% use Python 3, and for Machine learning specialists an even higher 83%. The survey report speculates:
A probable explanation is that some web developers still have lots of legacy code to maintain while transitioning to Python 3. On the other hand, many data analysts and machine learning specialists have joined the Python ecosystem just recently and went straight to the latest Python 3.
With regard to installation and upgrade, 70% install Python from python.org or with OS-provided package managers like APT and Homebrew:
Respondents were allowed multiple answers to the question What frameworks do you use in addition to Python? which resulted in the following distribution:
While Django topped the list overall among Data scientists it came third with 31% behind, in first place with 65%, the scientific packages such as NumPy, scipy and pandas and, in second place with 38%, neural network libraries Keras / Theano / TensorFlow /scikit-learn. Django was used by 76% of web developers with Requests (53%) in second place and Flask (49%) third. Scientific libraries were used by 29% of web developers which might be thought surprising except that, as discussed in our previous article on this survey, Python developers seem prone to combining Web Development with other roles, including Data Analysis.
The wide variety of development roles among survey respondents and the overlap between them is also reflected in the answers (again multiple choices allowed) to What additional technology(s) do you use in addition to Python?:
Overall Jupyter Notebook, formerly IPython, is the most popular technology used together with Python, but not among the Web developers where Docker (47%), ORM (46%), redis (40%) Cloud platforms (39%) and DecOps tools (30%) all outstrip its 27%. For Data Scientists Jupyter Notebook has 52% with Anaconda (47%) a close second. Docker comes third with 23% followed by Cloud Platforms with 20%, only half as many as among the Web developers.
Among developers who selected Cloud Platforms to, the top provider by far is Amazon's AWS; Google App Engine, Heroku and Digital Ocean come next with Microsoft Azure coming in a poor fifth.
The survey included the question, What editors/IDEs have you considered for use in your Python development? (with multiple answers) and again there's a big disparity between Web developers and Data scientists:
Sublime Text is the only editor in common and whereas almost half of Web Developers favor it, only just over a quarter of Data scientists do. For Data Scientist Jupyter Notebook comes first and Pycharm Community Edition second. Vim and Atom are editors that Web Developers have considered - even though in practice they are not widely used.
When it comes to the IDEs and editors in actual use the top two are the Professional and Community Editions of JetBrains PyCharm which between them account for a third of all respondents. There's an big divide even here with 30% of Web developers using the Professional edition and only 12% the Community Edition whereas more Scientific developers use the Pycharm Community Edition (17%) and only 12% the Professional edition. The percentages don't sum to 100% and the shortfall is greater among Scientific developers - more of whom use Jupiter Notebook and therefore have no need for an IDE.
Our currently selected xkcd cartoon makes a wry comment on the fragmentary nature of the Python ecosystem and these finding do seem to show that lots of tools are competing for attention.
Click for larger image
More cartoon fun at xkcd a webcomic of romance,sarcasm, math, and language
or email your comment to: firstname.lastname@example.org
|Last Updated ( Tuesday, 09 October 2018 )|