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'а, каков его смысл, цель???

Ответ на: комментарий от I-Love-Microsoft

то, что в c++ можно выстрелить себе в ноги и оторвать голову я в курсе.

Суть(ТМ), что там и оптимизировать то нечего - в скрипте просто пачка примитивных операций (если так можно назвать поиск в строке по регекспу)

Ford_Focus ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Про Nim и Boo все в курсе

Проверил статус nim - кажется горе-разработчики начали что-то подозревать и обещают выкатить первую версию, надо только подождать чуть-чуть, совсем немного…

Посмотрел на Boo - интересная штука, было бы живо - взял бы и начал на нем писать, жаль, что оно сдохло…

shkolnick-kun ★★★ ()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от Ford_Focus

Суть(ТМ), что там и оптимизировать то нечего - в скрипте просто пачка примитивных операций (если так можно назвать поиск в строке по регекспу)

Тогда всё ясно - ты нас обманул всех тут :) Значит неэффективна конкретно реализация регулярок или что там, которая небось на плюсах же и написана под капотом.

На заре C# мне жаловались как медленно оно работает со строками, а какая-то плюсовая либа работала быстрее гораздо (кажись Qt5, но не ручаюсь). Очевидно это не говорит ни о медленности ни о шустрости того или иного языка, в данном конкретном случае работы со строками.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

я и не говорил, что это единственная проблема бидона, с которой я столкнулся - просто эта проблема запомнилась особенно хорошо

На заре C# мне жаловались как медленно оно работает со строками

с# и сейчас в среднем в 2 раза медленнее крестов

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 1)

Python нужен, чтобы сделать Раби нинужным

pineapple ()

Это можно написать почти про любой яп

Ответ прост:

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

Это все умеет Python

p.s. а за php скрипты в cli нужно бить палкой

daminatorus ()
Ответ на: комментарий от shkolnick-kun

это как путен 20 лет просит подождать и потерпеть и вот-вот заживем

tz4678 ()
Ответ на: комментарий от I-Love-Microsoft

Он гонит в питоне регулярки работают быстрее, чем, например, в perl

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

Видел такие тесты несколько лет назад и удивился. Сейчас глянул, примерно одинаково.

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

Делал замену unicode-emoji в поcтах на текстовые расшифровки, почему-то работает медленнее, чем лемматизация…

shkolnick-kun ★★★ ()
Ответ на: комментарий от tz4678

Скорее как наши доблестные либерасты, «вот еще полгодика и точно все обвалится»

annulen ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

На заре C# мне жаловались как медленно оно работает со строками, а какая-то плюсовая либа работала быстрее гораздо (кажись Qt5, но не ручаюсь). Очевидно это не говорит ни о медленности ни о шустрости того или иного языка, в данном конкретном случае работы со строками.

В до диезе строки неизменяемы, как и в питоне и многих других ЯП. В этих языках операции, изменяющие строки, требуют обязательного копирования и могут работать медленнее, чем в С/С++, в частности невозможен in-place парсинг

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

Python нужен, чтобы сделать Раби нинужным

Почему вы все называете его Раби? Потому же почему и Яваскрипт?

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

В до диезе строки неизменяемы

Есть стригбилдел и прочие костыли. Там даже с указателями можно работать в unsafe блоках.

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

Есть стригбилдел и прочие костыли

Стрингбилдер не может ускорить конкатенацию двух строк, не говоря уже о вырезании подстроки и т.д.

Там даже с указателями можно работать в unsafe блоках.

А вот это уже похоже на дело

annulen ★★★★★ ()

мне вот скорее непонятно, почему компиляторов под питон толком нету?

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

Есть же mypyc. Но тебе придется расставить аннотации по всей кодовой базе, попутно превратив питон в недожабку. А иначе во что прикажешь компилировать динамический код, который в рантайме дописывает себя и узнает типы.

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

Nuitka тогда уж не лучще будет? Но вопрос был за то, почему их из коробки нет, и вообще так мало?

Я както никаких принципиальных проблем невижу в создании компилятора для любого интерпретирующего языка. Равно как и еаоборот..

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

Раби, пайтон, бэш, си плас плас и т.д.) Скорей всего из-за rust-раст, ruby-раби) Звучит ужасно.

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

Ну так и обваливается же. В буквальном смысле. Пол-России в аварийных сараях живет. Куски штукатурки в школах и больницах сыпятся на бошку. А еще прорыв в будущее^W^W труб...

Некоторые трубы в Петербурге не менялись с 1981 года. Изношенность труб в городе составляет около 90 процентов.
От полученных ожогов двое молодых людей скончались на месте.
Самый трагичный случай произошел два года назад в Петропавловске-Камчатском. Три восьмилетних мальчика погибли, упав в яму с кипятком.

Денег на ремонт труб нет. Все украли.^W^W «Вы держитесь там!»

denton ★★★★★ ()
Последнее исправление: denton (всего исправлений: 1)
Ответ на: комментарий от bread

Я что-то не вижу доминирования питона ни в одной отрасли.

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

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