The author of Python no longer leads the development. Will this language make it better or worse?

Published on October 05, 2018

The author of Python no longer leads the development. Will this language make it better or worse?

    The entire Python community hopes that it will not adversely affect the ecosystem. But this alone is not enough. For example, we consider it important to support the community and, as one of the events, we are holding a large conference called Moscow Python Conf ++. There we can discuss this and other important issues. In the meantime, I’ll partially introduce you to the Program Committee. And he asked them a few questions that will open their views on the ecosystem and tell people about their professional achievements.

    In addition to the title question, I asked this:

    • What would you recommend for dependency management?
    • What is the best way to do now backend?
    • TensorFlow still rules for Machine Learning, or is it time to learn something new?
    • Why does your junya need to learn Python, not JavaScript?
    • They say that the web backend is no longer needed. Is it so?
    • 3.x or 2.7?
    • How does a good Python developer differ from a bad one?

    Spoiler: The provocation "3.x vs 2.7" failed, the answer is unequivocal. It seems to be too early to refuse the backend, and on what to do it depends on the task - who would have thought.

    I also give my answers along with a brief reference, why not.

    Grigory Petrov
    Grigory Petrov is a developer of a wide profile, a technical evangelist of Voximplant and one of the organizers of the MoscowPython community. He likes Python, JavaScript, C ++, web, unit tests and big projects. When he speaks at conferences, he talks about Miller’s Wallet and why writing software is a pain.


    - The author of Python no longer leads the development. Will this language make it better or worse?
    There is an expression: “The collective mind thinks very well, but makes very bad decisions.” I suppose if the developers manage to agree on important decisions to be made by a smaller group of visionaries, this will only benefit the language.

    - What would you recommend for dependency management?
    I am for the time-tested combination of pip and virtualenv. Now there are a lot of new developments, but I don’t see any of them to be sufficiently stabilized.

    - What is the best way to do now backend?
    Very dependent on the task. If you need to quickly make a one-page website with admin panel and do not need thousands of hits per second, then Django is out of competition. Front end part to taste, I prefer VueJS . But if you need an API, high load and other interesting things, the range becomes very wide and you need to look at the requirements. What about AIOHTTP?

    - TensorFlow still drives for Machine Learning, or is it time to learn something new?
    As a low-level library, it still steers. Google pours an infinite amount of resources into it, it solves a lot. But good wrappers and high-level libraries are now in the range and you can find something right "for yourself."

    - One sentence: why does your junna need to learn Python and not javascript?
    The best documentation in the world.

    - They say that in the web backend is no longer needed. Is it so?
    Web web discord. A single-page business card can really be assembled using Webpack on VueJS, compile Nuxt and lay out as static on CloudFlare. And for simple work with data GraphQL is great in the direction of Firebase. For something more serious, a full backend is needed. I wrote "serious." I wrote "full". Please put the node back on the shelf. Yes, I love her too, but not yet time.

    - 3.x or 2.7?
    If a new project - then definitely 3.x and types. If Legacy - you need to carefully look. The best solution is not always “let's rewrite everything under the latest versions” . Act on the circumstances.

    - How does a good Python developer differ from a bad one?
    Each programming language is not only syntax and ecosystem, but also its own small world called “as it is accepted here”.

    A good Python developer writes in Python. And not on "Java in Python syntax" or "PHP in Python syntax". It is appreciated by colleagues.

    Vladimir Filonov
    Vladimir Filonov is also one of the organizers of the MoscowPython community. Loves Python, Erlang / Elixir, asynchrony and TDD. He likes to dig in the guts of libraries, and then talk about it.


    - The author of Python no longer leads the development. Will this language make it better or worse?
    Of course, the answer is definitely difficult. Guido, after all, was the main ideologue of the language. On the other hand, not all his decisions were unequivocal. It seems to me that now everything will depend on whether we, that is, the entire Python community, can build a more efficient strategic decision-making process.

    - What would you recommend for dependency management?
    Locally, I use pip + virtualenvwrapper, but this is more likely due to inertia. And so I would recommend pyenv.

    - What is the best way to do now backend?
    And here it depends on what this backend is for.

    I always say - language is just a tool.

    Not very convenient with the same tool and nails to hammer, and do engraving. Even universal languages ​​(like Python, for example) cope with some tasks better, but worse with others. But, if we talk about the average web backend, then I choose Python in most cases.

    - TensorFlow still drives for Machine Learning, or is it time to learn something new?
    TensorFlow undoubtedly taxis. But it’s not bad to start learning the language Julia =)

    - One sentence: why does your junna need to learn Python, and not JavaScript?
    If you do not go into the debate about architectural maturity, then I would say that Python is much more elegant syntactically and easier to understand.

    - They say that in the web backend is no longer needed. Is it so?
    Well, they say that programmers will soon not be needed - the AI ​​will write the code itself. But so far, both of these are very dubious concepts.

    - 3.x or 2.7?
    Only 3.x. 2.7 still, of course, will live in projects for many years, but this is already legacy. Therefore, it makes no sense to create something new on a dead-end version of the language.

    - How does a good Python developer differ from a bad one?
    You can answer without Python - how a good programmer is different from a bad one. I think the main thing here is curiosity.. Interest in how this or that technology works. Now the developer is given a lot of everything ready - take and rivet from ready-made blocks. And one of the problems of the industry is that many are satisfied with this riveting, not understanding how the mechanism they use is arranged. And if you need to take a step away from the examples described in the documentation, then the problems begin.

    Not all of the Program Committee participated in the blitz survey , some were so busy with applications and preparing reports that they did not have time to answer. Forgive them - for us they try.


    Zlata Obukhovskaya
    Zlata ObukhovskayaI've been familiar with the Python ecosystem for ten years, during which time I tried different things: from Data Science to the development of highload projects and leadership teams. He teaches Learn Python, is interested in distributed systems and building technical communities. He likes to talk about the technological culture that should be fueled by strategy.


    - The author of Python no longer leads the development. Will this language make it better or worse?
    Guido did a lot for Python, dedicated his life to it. His work has borne fruit, in the ecosystem there are many talented people with strong vision who are ready to move the language further. Whether they manage to organize and successfully choose a direction is an open question. Further development of the language will reveal the potential of the Python community, however this potential may turn out to be.

    - What would you recommend for dependency management?
    Interesting project poetry.

    - What is the best way to do now backend?
    Depends on the task.

    • For CRUD applications, this is Django.
    • For loaded APIs that work with multiple data sources, these are asynchronous frameworks Tornado, aiohttp.
    • For a relatively simple API with a good load, Flask will do.

    - TensorFlow still drives for Machine Learning, or is it time to learn something new?
    It always makes sense to try relatively young and even less adapted frameworks for production, for example, PyTorch. Just to be able to compare design solutions for working with data.

    - One sentence: why does your junna need to learn Python and not javascript?
    Owning Python, you can learn JavaScript, on the contrary - more difficult.

    - They say that in the web backend is no longer needed. Is it so?
    Depends on the task. Wherever it is necessary to enrich data online, or the speed of response and the bandwidth of the data source matter, a backend is needed.

    - 3.x or 2.7?
    3.x of course!

    - How does a good Python developer differ from a bad one?
    A good developer always thinks how I can be better tomorrow than yesterday. This applies to development in any language. The level of knowledge and experience is unimportant.

    Alexander Hayorov
    Alexander Hayorov heads the Ingram Micro Cloud development department, loves Python and sneaks in on it. And as far as public clouds are concerned, Kubernetes, Istio and DevOps / SRE practices are passion and an area of ​​unlimited interest.


    - The author of Python no longer leads the development. Will this language make it better or worse?
    Guido said that he was leaving the post of BDFL (Benevolent dictator for life) and this is certainly a significant event for the community. But I do not think that this will negatively affect the development of the language as a whole. I expect the battles around the new PEP will be as stormy. Show must go on.

    - What would you recommend for dependency management?
    Now definitely pipenv , and why and why I recently described in detail, watch the videohere .

    - What is the best way to do now backend?
    Definitely on that tool that meets your functional requirements. Python is very good for a quick start . For more demanding technical cases, there are elegant asyncio and sanic. Django is still good and attracts with a wealth of batteries and a wide community of sympathizers.

    - TensorFlow still drives for Machine Learning, or is it time to learn something new?
    I am a bit far from machine learning, but focusing on industry conversations, TensorFlow is exactly in the cage, although Keras is increasingly mentioned. Theano is again well optimized for a pair of CPU / GPU and convenient for numerical tasks.

    - One sentence: why does your junna need to learn Python and not javascript?
    Not a single JavaScript ...

    - They say that the backend is no longer needed on the web. Is it so?
    Of course, no longer needed, just do not tell anyone about it.

    - 3.x or 2.7?
    There is no doubt: version 3.6.6 is the crown of creation . Just look at  change log 3.6 and everything falls into place.

    - How does a good Python developer differ from a bad one?
    Pure karma and pragmatic approach to the implementation of the tasks, focus on business logic and biting humor.

    Ivan Tsyganov
    Ivan Tsyganovprograms in Python, speaks at conferences for programmers and testers. He was preparing the largest information security conference in Russia - PHDays. Slowly but surely gathers himself a truly smart home.


    - The author of Python no longer leads the development. Will this language make it better or worse?
    The Python language is no longer young, all the processes have long been debugged and work fine. I think that in principle nothing will change, because proven people are at the helm . In any case, Guido is watching the process and if madness begins to happen - he will definitely intervene. At least I believe it.

    - What would you recommend for dependency management?
    I'm used to pip, I miss it.

    - What is the best way to do now backend?
    If you need to quickly and easily get a working prototype - Django, admin out of the box. Then we fasten the Django REST Framework to it and rework the UI humanly.
    And in other cases - it all depends on the task.

    - TensorFlow still drives for Machine Learning, or is it time to learn something new?
    If the Machine Learning topic is interesting - it is useful to keep track of everything and try everything new! I, unfortunately, did not come across suitable tasks, therefore I am somewhat far from this area.

    - One sentence: why does your junna need to learn Python and not javascript?
    Because my juna will have to write in Python

    - They say that backend is no longer needed on the web. Is it so?
    How so backend is not needed? This web we do not need this!

    - 3.x or 2.7?
    Only 3, because there is all the most delicious. Yes, and  it's time to say goodbye to the old man 2.7 , he did his job.

    - How does a good Python developer differ from a bad one?
    The desire to learn new things.

    On this optimistic note, I invite you to  Moscow Python Conf ++ 22 and 23 October. In the program, and new, and curious, and about the language, and about the ecosystem, and about Machine Learning - I will tell you about everything in order, and you can see a list of accepted reports here .