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



Последнее исправление: Edward_I (всего исправлений: 3)
Ответ на: комментарий от 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)

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

Ответ прост:

Что-то низкоуровневое - Си, 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 ★★
()
Ответ на: комментарий от bread

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На питоне это не так.

На самом деле вариантов всего два: код либо пишется, либо копипастится. Так вот, если код пишется, то на питоне он пишется сразу с красивым форматированием, иначе он и работать не будет. А если код копипастится, то он копипастится с сохранением форматирования — это даже vim умеет ([p и ]p). Переформатировать в питоне просто нечего.

В общем-то, на других языках так же. Я не знаю языков, на которых принято писать код в одну строку, а потом форматировать её волшебной кнопкой. Код всё равно форматируют при наборе. А копировать с сохранением форматирования тоже можно на любом языке.

У питона много проблем, но форматирование и отступы — это точно не одна из них.

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

При вставке бывает съезжает уровень индентации, даже если приняты все меры к сохранению форматирования. И потом, питонокод хрупок даже при наборе: дернул бэкспейс лишний раз, и уже на другой уровень вылетел. С разбиением длинной строки тоже не все гладко. Ну и зачем весь этот хоровод вокруг невидимых символов, когда можно отдать все на откуп автоматике и вообще не париться. А цена: пара скобочек, вообще ни о чем.

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

Я не знаю языков, на которых принято писать код в одну строку, а потом форматировать её волшебной кнопкой.

В Go приблизительно так

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

Почему в списке в первом посте нет Perl?

Perl - язык процессинга текстовых данных, созданный человеком с филологической степенью.

Относительно прочих постулатов согласен. Python - язык, адаптированный для понимания тупыми солдафонами. Создавался просто как замена Ada для тех, кого только пуля в голову исправит.

DRVTiny ★★★★★
()

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

Вообще-то для R их больше, для Julia их чуть меньше, но язык в 100 раз лучше и явно быстрее пихтона.

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

Termux, там есть пм, можно поставить clang. Повышение привилегий не требуется, всё работает от юзера. Рекомендую.

WitcherGeralt ★★
()

Использую Python в бэкенде, он довольно удобен, код на нём легче читаем, чем в PHP и JS, по крайней мере для меня, и есть много готовых либ.

Gargamel
()

1. Легко начать на нем работать. Очень.

2. batteries included - очень много библиотек для всего на свете.

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

Короче python это такая джава которую не унесло в абсурд с миллионами фреймворков. Быстро накропать что нибудь работающее на питончике очень легко.

dyasny ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.