LINUX.ORG.RU

Зачем Python?

 , ,


5

5

Обычно, ЯП - это инструмент, заточенный для решения задач в какой-то определенной сфере. У создателей ЯП была для него ЦЕЛЬ, которая наполняла смыслом бытие ЯП. Или же ЯП оказался обладателем таких характеристик, которые позволили эффективно решать определенные задачи, даже если изначально на него были другие планы. Это также объясняет необходимость существования ЯП.

Что-то низкоуровневое - Си, Rust, Ada; сервер - PHP, Go (а где-то Java, JS); клиент - JavaScript; энтерпрайз - C#, Java; скрипты для CLI - bash, lua (хотя сойдут PHP или JS); математика - R, Fortran; мобильные приложения - Java, Kotlin, Swift; начальное обучение - Basic, Pascal (можно Lisp, но лучше не стоит). Всё ясно, понятно.

А какие специфические задачи решает Python? В чём его смысл? Вот в (https://youtu.be/KnFrdzG79ak?t=532) МФТИ на информатике говорят, что Python - это классная штука, так как на нём можно всё (и в web, и в смартфон), мол универсальный. Но, имхо, это скорее минус, чем плюс. Это как швейцарский нож - может многое, но всё не очень качественно. В (https://youtu.be/bX3jvD7XFPs) MIT'e перевели обучение с эльфийского (Scheme) на Python. Ну для педагогических целей, для первокурсников, может Python и выглядит лучше. Хотя как аргумент в его пользу - ну так себе.

Пока я вижу, что в реальном мире Python (объективно) нужен для двух задач:

1. Поддержка legacy-кода, уже написанного адептами Python'а. Например, какие-нибудь скрипты для иксов, скрипты для сис.админов и т.п.
2. ML. Просто потому, что под ML были написаны нужные библиотеки (в нужном кол-ве и кач-ве) именно на Python. По неизвестным причинам написаны.

Сфера для (эффективного) применения Python'а очень мала, или мне показалось?

При этом, повсеместно говорят о популярности Python, как это модно-молодежно, его мол и учите. Закрадываются подозрения. А не является ли широкая популярность (или слухи о ней) Python исключительно маркетинговым явлением, когда ЯП, опять же по неясным причинам, проталкивают сверху? Если это так, то для чего это делают? А если не так, и он объективно эффективно решает какие-то задачи (почему его добрые люди и советуют), то объясните какие это задачи, какова целевая сфера применения Python'а, каков его смысл, цель???

когда ЯП, опять же по неясным причинам, проталкивают сверху?

Причины вполне ясны. Относительно простой для обучения макак, которые используются, например, Интелом в компьютинге.

RedEyedMan4 ★★★★★ ()

Обычно, ЯП - это инструмент, заточенный для решения задач в какой-то определенной сфере.

в реальном мире Python (объективно) нужен для
...
ML. Просто потому, что под ML были написаны нужные библиотеки (в нужном кол-ве и кач-ве) именно на Python. По неизвестным причинам написаны.

Смотри, как интересно получилось — когда Python создавался, ML был на уровне research (и совершенно точно не авторами Python), а спустя 20 лет Python стал стандартом в этой области. Это как раз признак качества языка. Антипример — упомянутый PHP. От него отказываются даже в той области, для которой создавался, не говоря уже о других.

Crocodoom ★★ ()

Затем, чтобы ты спросил. Ну и питон старше всего тобой перечисленного и при этом сочетает всё лучше среди конкурентов. Если ты не умеешь, не заморачивайся по поводу своей неполноценности особо. Это отличный инструмент позволяющий решать задачи «вчера» с минимумом затрат, не более того.

Правда то, что ты намешал в кучу совершенно разные вещи из разных областей, намекает о том что ты, вероятно, понятия не имеешь ни о чём из перечисленного, но при этом мнение имеешь. Продолжай в том же духе. Могу предупредить, что от этого у тебя будут только проблемы.

anonymous ()

Автотесты пилить на нем удобно - букав мало.

TaV0x222 ()

А не является ли широкая популярность (или слухи о ней) Python исключительно маркетинговым явлением, когда ЯП, опять же по неясным причинам, проталкивают сверху?

Маркетинг? Дайте, пожалуйста, телефон отдела маркетинга языка Питон.

проталкивают сверху?

Сверху это откуда? Начальник городского парткома вам позвонил и заставил юзать Питон?

Alve ★★★★★ ()

Да, совсем забыл:

Пока я вижу, что в реальном мире Python (объективно) нужен для двух задач

Чтобы не газифицировать лужи, такие фразы нужно снабжать информацией о себе, например:

Пока я, школьник 7-го класса, позавчера поставивший линукс, считаю, что Питон в реально мире нужен для [подставить своё ценное мнение]

или

Пока я, программист с 20-летним опытом коммерческой разработки, сертифицированный админ RedHat, считаю, что Питон в реально мире нужен для [подставить своё ценное мнение].

Чуете разницу? :)

Alve ★★★★★ ()

модно-молодежно

модно-молодежно было лет 10 назад

для чего

простота + мощность. лаконичность, как ни странно, но в меру

MyTrooName ★★★★★ ()
Ответ на: комментарий от Alve

программист с 20-летним опытом коммерческой разработки, сертифицированный админ RedHat

звучит как пятирукий семиух

MyTrooName ★★★★★ ()

Лично я использую его для автоматизации. Вспомним Ansible, SaltStack все написано на python. Кроме того гибкий шаблонизатор Jinja2 может закрывать широкий круг задач в автоматизации вплоть до метапрограммирования, например генерации terraform-файлов)

najar ()

Быстрое написание кода. Цель. А под капотом - простая обёртка над Си. Для питона расширения на Си пишутся легко и непринуждённо (для руби тоже, но руби как язык более навороченный).

menangen ★★★★★ ()

Норм позиция. У каждого языка есть своя ниша. А для питона я этой ниши не вижу. Правда парой абзацев ниже я таки назову сразу несколько ниш, которые занял питон, но это плохо и вообще, эти ниши херовые да и не ниши вовсе! Бтв, хотел спросить нащот

универсальный. Но, имхо, это скорее минус, чем плюс. Это как швейцарский нож - может многое, но всё не очень качественно

Пруфы будут? Типа вот это вот и вот это реализовано плохо и виной тому универсальность языка потому-то и тому-то. Или чуйка подсказывает?

Reineke ()

Обычно, ЯП - это инструмент, заточенный для решения задач в какой-то определенной сфере

Нет, обычно ЯП - это универсальный инструмент. Так что всё остальное что ты написал - чушь.

Сфера для (эффективного) применения Python’а очень мала, или мне показалось?

Показалась. Она на данный момент, пожалуй, самая широкая из всех ЯП.

slovazap ★★★★★ ()

Так «кряк, бряк и в продакшн».
Завтра все забыли, что ты там написал, нахерачили заново.
Зачем заморачиваться с «серъёзно стью», про которую завтра никто даже не вспомнит.

TomBOY ()
Ответ на: комментарий от menangen

Для питона расширения на Си пишутся легко и непринуждённо

Ох, не скажите. На C++ да, но точно не на C с ручным рефкаунтингом.

slovazap ★★★★★ ()
Ответ на: комментарий от anonymous

Ну и питон старше всего тобой перечисленного

Старше Си и Fortran'a?

Edward_I ()
Ответ на: комментарий от Reineke

Правда парой абзацев ниже я таки назову сразу несколько ниш, которые занял питон, но это плохо и вообще, эти ниши херовые да и не ниши вовсе!

legacy-код и необходимость юзать библиотеки для ML, которые могут быть написаны на любом другом ЯП (при этом, как заметили выше, Python не создавался для ML) ? ну ok. ниши так, ниши

Edward_I ()

У создателей ЯП была для него ЦЕЛЬ

Да у них была цель - создать новый ЯП. Кстати, кроме офигенного пайтона есть ещё не менее офигенный гамбас, очень рекомендую.

энтерпрайз - C#, Java;

В этой стране энтерпрайз - это «язык 1С» и «progress 4gl».

King_Carlo ★★★★★ ()

скрипты для CLI

lua (хотя сойдут PHP или JS);

ОП немного странный человек.

oldstable ()
Ответ на: комментарий от Crocodoom

Антипример — упомянутый PHP. От него отказываются даже в той области, для которой создавался, не говоря уже о других.

Кто отказывается? Где??? Мои наблюдение за рынком (вакансии) и продуктами (кто на чем их пишет) показывают, что слухи о смерти, мягко говоря, преувеличены.

Поэтому я могу логично предположить, что и популярность Python'а - может быть таким же слухом (только в другую сторону).

Особенно интересно слушать про PHP после 7-ки. Посмотрите бенчи ;)
Да, есть связки-дополнения с Go/Java. Но отказываются. Помилуйти.

Edward_I ()
Ответ на: комментарий от Edward_I

То есть то, что язык вполне активно используется для изучения программирования, ты не говорил? Как и того, что из выступления кого-то из МФТИ ты услышал от выступающего перечисление сфер, где питон так или иначе используется.

Reineke ()
Ответ на: комментарий от oldstable

скрипты для CLI

lua (хотя сойдут PHP или JS);

ОП немного странный человек.

#!/usr/bin/env

не?

Edward_I ()
Ответ на: комментарий от Reineke

То есть то, что язык вполне активно используется для изучения программирования, ты не говорил?

Как минимум: динамическая типизация, специфическая ООП и синтаксис, по-моему, делают его не столь интересным для обучения. В MIT'е это прогресс, но прогресс по сравнению с чем? Они бы и на Pascal перешли бы - всё было бы для студентов лучше.

Как и того, что из выступления кого-то из МФТИ ты услышал от выступающего перечисление сфер, где питон так или иначе используется

Вот это "так или иначе" меня смущает.

Edward_I ()
Ответ на: комментарий от Edward_I

Если CLI-скрипты на JS я видел, то на Lua и PHP их могут писать только очень странные люди.

oldstable ()

Сфера для (эффективного) применения Python'а очень мала, или мне показалось?

То-то почти вся инфрастуктура на linux дистрибутивах написана на PHP ... А еще PHP применяют в разных научных областях или machine learning ...

Jopich1 ()

Ответ односложный: обучение. Этот ЯП создавался насколько это получалось простым и чтобы что-то по-возможности решалось там одним возможным способом, чтобы было просто обучать людей программированию. Всё.

anonymous ()

Да, у питона достаточно узкие ниши: скрипты автоматизации и язык-клей. Из-за условной легкости написания программ, он завоевал большую популярность и его стараются тащить в разные сферы, а из-за хреновых показателей по производительности, его нередко обкладывают матом пользователи.

anonymous ()
Ответ на: комментарий от anonymous

Ответ односложный: обучение
чтобы что-то по-возможности решалось там одним возможным способом

лол, это точно про питон?

vvn_black ★★★★ ()
Ответ на: комментарий от Edward_I

динамическая типизация

и чем динамическая типизация делает язык непригодным для обучения?

специфическая ООП

здесь могу отчасти согласиться в силу того, что полноценного ООП таки не завезли - правда

синтаксис

по-моему как раз таки неоспоримый плюс. Синтаксис питона даёт ему отличную читаемость изкаропки, благодаря чему для понимания кода достаточно уметь читать на английском банально. Я уже не говорю о выделении блоков отступами, что заставляет писать код сразу форматируя его

Вот это «так или иначе» меня смущает

так или иначе здесь из-за огромнейшего спектра задач, которые выполняют на пихтоне, и среди них да, достаточно таких, где пихтон вряд ли уместен. Но это ровно никак не отменяет того, что в том же вебе достаточно крупных проектов на питоне, типа того же ютуба, спотифая, пинтереста и прочего (не гарантирую, что питон конкретно сейчас занимает там значительную роль, но это было не так давно). Так и того, что питон достаточно активно используется в различных системных утилитах. И не сказал бы, что тот же, допустим, ансибл - это легаси, доставшееся от предков. Даже в микроконтроллеры питон залез вполне успешно со своими micropython и circuit python, насколько я могу судить, хоть и не фанат скриптоты на МК.

Reineke ()
Ответ на: комментарий от vvn_black

Мы не говорим о том, что в итоге получилось, а о том, как это задумывалось. Но вообще к этому стремятся. Даже всякие ФП штуки тщательно выпилили куда-то в сторону, func-tools или что-то такое там было, где вот это вот всё, композиция, map-ы, reduce-ы и прочие fold-ы из мира Haskell. А для написания лямбда-функции нужно целое `lambda x:` написать ещё не начав описывать тело функции, т.е. сделано всё, чтобы это было неестественно и не особо комфортно, так что идите писать свои for-loop-ы или генераторы списков вместо map-ов.

anonymous ()
Ответ на: комментарий от anonymous

А для написания лямбда-функции нужно целое `lambda x:` написать ещё не начав описывать тело функции, т.е. сделано всё, чтобы это было неестественно и не особо комфортно

Дело привычки, читай, нескольких задачек на ФП.

vvn_black ★★★★ ()
Ответ на: комментарий от anonymous

лямбда-функции нужно целое `lambda x:`

Все нормальные люди просто объявляют вложенную функцию рядом. Лучше б вспомнили по отсутствие паттерн-матчинга или хотя бы номального свитча.

oldstable ()
Ответ на: комментарий от Reineke

За синтаксис пайтона в контексте назначения его для обучения тоже заступлюсь. Приучает юных и незрелых правильно расставлять блочные отступы и не мешать табы с пробелами в одном модуле, иначе это ломается и не работает. Когда вижу у нюфагов Си-код с 15-ю уровнями вложенности и всё «плоско» прибито к стенке (т.е. вообще без блочных отступов) - просто осаживаюсь и не понимаю как это читать, приходится долго объяснять почему так делать не надо. А Python это вводит как аксиому и устраняет этот вопрос как опцию, важность которой нужно разжёвывать, что сложно для человека, который пока пишет скрипт на 20-30 строк и не видел в глаза ещё файлика строк на 300 со сложной логикой, которую нужно изучить и понять по коду.

anonymous ()

А какие специфические задачи решает Python

Заменить бейсик для 12-летних.

В чём его смысл

Гвидо чесал ЧСВ. Пистон заполонил интернеты, как майнкрафт ютуб. (И контингент тот же).

А если серьёзно, то питон взлетел по двум причинам - 1.простота биндингов к Си 2.в определённый период времени альтернативы не было. Ну т.е. как небыло... был лапшевидный перл, марсианский тикль и убогий на тот момент пых. Причём для работы с Си во всех них нужно было пердолиться на самом Си (см.п.1). В настоящий момент особых преимуществ у пистона нет, ибо вместо того чтобы полировать интерпретатор они там запиливают 100500 ненужных фич из-за которых пистон становится ещё жирнее и тормознее. Даже Гвидо свалили из этого шапито.

no-such-file ★★★★★ ()

просто форсят Python

в надежде, что сформируется разнородная технологическая экосистема, в чём-то похожая на Java, и через некоторое время будет достаточно дешёвых и взаимозаменяемых программистов на Python

anonymous ()
Ответ на: комментарий от oldstable

Объявлять на пайтоне вложенную функцию рядом - это также громоздко и неудобно как и писать лямбда-функции на пайтоне. А паттерн-матчинг в пайтоне просто не имеет смысла с такой беспонтовой системой типов, если это вообще можно назвать системой типов. Что там матчить-то? Булеаны и списки внутри котрежей? Вот были бы алгебраические типы данных, но это слишком много для детских кубиков, которые учат императивному программированию на for-loop-ах.

anonymous ()

На лоре пополнение? Брат saahriktu? Мне не нужно - никому не нужно (с)

популярность Python'а - может быть таким же слухом

Рептилоиды подсуетились, не иначе.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Рептилоиды подсуетились, не иначе.

А я то думал, почему на лого языка рептилии. Еще и в такой вычурной форме - явно же окультизм какой-то

Reineke ()
Ответ на: комментарий от anonymous

Объявлять на пайтоне вложенную функцию рядом - это также громоздко и неудобно как и писать лямбда-функции на пайтоне.

Чем громоздко и неудобно? Одним def? Суть та же, только сбоку.

oldstable ()
Ответ на: комментарий от RazrFalcon

лучше питона тупо нет

Лучше в чём? С биндингами до сих пор не везде всё гладко, но во многих сферах применения (в т.ч. в вебе) это не принципиально. Зато в других языках есть нормальный ООП, ФП, или высокая производительность (в т.ч. многопоток). А то и всё сразу.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от oldstable

Чем громоздко и неудобно? Одним def?

Да. Лямбда как бы и нужна чтобы использовать её по месту, без выдумывания имени. Например при удобных лябмдах не нужны были бы comprehensions.

no-such-file ★★★★★ ()
Ответ на: комментарий от oldstable

Тем, что получается многословно и по нескольку строк, что может уложиться в несколько символов. Когда такого становится больше чем 2-3 штуки приходится мотать скроллом, хотя казалось бы, нужны какие-то пустяки.

anonymous ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)