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

Ответ на: комментарий от tailgunner

От тебя ждать ещё инфу, как ты по двадцать ошибок на дню в типах делаешь? Или ты всё?

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

От тебя ждать ещё инфу, как ты по двадцать ошибок на дню в типах делаешь?

Нет, конечно. Какой смысл разговаривать с пришельцами из другой реальности.

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

Поскольку в питоне сильная типизация...

Чйоооооо? O_O Может отсыпите? Хотя нет, не надо, с такой дури кукушка уедет и не вернётся.

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

Нет, конечно. Какой смысл разговаривать с пришельцами из другой реальности.

Ну свисти дальше, чо.

anonymous ()
Ответ на: комментарий от anonymous
In [1]: 2=='2'
Out[1]: False

In [2]: 2>'2'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-80e9b1acf4d3> in <module>
----> 1 2>'2'

TypeError: '>' not supported between instances of 'int' and 'str'

In [3]: 'a'+2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-d64ed49d0894> in <module>
----> 1 'a'+2

TypeError: can only concatenate str (not "int") to str
pawnhearts ★★★★ ()
Ответ на: комментарий от anonymous

Пой дальше про одну ошибку за пять лет. И припевом - про get, возвращающий any.

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

HOLYWAR: мешанину тут устроить решил?!

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

Пой дальше про одну ошибку за пять лет.

Я тебе всё спел. От тебя никакого обоснования 20 ошибкам в день не нашёл. Слив засчитан или ты таки что-то скажешь? Мне интересно, да.

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

Это в последнее время поправили, а раньше было так, как я описал.

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

Чо, правда уйдешь? Врешь ведь.

Разбежался. Но с тобой у нас разговор вроде закончен.

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

Давай до свиданья.

Чо, правда уйдешь? Врешь ведь.

Разбежался.

Аонимус - прощается, но не уходит.

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

Это случаем не вы рассказывали, что $ из PHP - это хорошо, так как можно использовать зарезервированные слова. Мол в питоне нельзя создать переменную list.

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

Мол в питоне нельзя создать переменную list.

Можно же. Вот if - нельзя.

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

Давай до свиданья.

Чо, правда уйдешь? Врешь ведь.

Разбежался.

Аонимус - прощается, но не уходит.

Не знаешь, до чего доколебаться - доколебись до звезд.

Звук слышишь? Мууу. Это чья-то корова мычит.

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

Разве? В любом случае претензия того пациента была именно в этом. Тред не найду уже.

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

До Python 3 даже True можно было присвоить значение :) Правда, не припомню никакой пользы от этого.

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

Я для примера привёл, чтоб простой и понятный был, для сравнения.

Вот тебе rev (написал на коленке чисто чтоб тебе показать, это можно написать лучше и элегантнее разумеется, да и компактнее наверное тоже):

perl -pe '$_=join q//, reverse grep {$_ ne qq/\n/} split //g, $_;$_.=qq/\n/'

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

А как же имена функций, без всяких $? И падение потом, когда либу доставил к PHP и всё поднасралось в глобальное пространство имён и начало конфликтовать с твоим кодом?

anonymous ()
Ответ на: комментарий от anonymous
perl -pe '$_=join q//, reverse grep {$_ ne qq/\n/} split //g, $_;$_.=qq/\n/'

А я сотону этой штукой не призову? Разбирал я как-то перловую прогу, читающую с ком-порта... Короче читаемость перла мне однозначно не нравится.

anonymous ()

из за новичков: я видел как даже на этом форуме питон пихали люди даже туда, где можно обойтись одним пайпом. Просто потому что им видите-ли «понятнее». Вероятно, им просто нравится чувствовать что они что-то накодили... на питоне, даже херню. Вот и пихают его везде. Новичков много. Вот и результат.

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

Одна строка на перле и 10 страниц документации, объясняющих что эта срань делает.

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

из за
Новичков много.

Ага, особенно по части русского языка.

RazrFalcon ★★★★★ ()

Тему не читал.

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

В Бейсике, в частности майкрософтовском (под ДОС) это работало, но стандартная реализация была ограничена текстом и относительно простой графикой. Ну и программы больше 1-2 тысяч строк становились крайне тяжёлыми для понимания.

Потом появился VB, но там просто перенесли нужные конструкции из более строгих языков, для Beginners это было слишком сложно. VB и его двойник VBA так и остался специализированным языком для работы с продуктами Microsoft.

А Питон радикально упростил структурное программирование. Я ненавижу его выделение блоков отступами, но для тех, кто никогда не писал ни begin-end, ни { }, это очень простое и понятное решение.

Интересно, никто не реализовал для Питона конструкции Play и Draw c Microsoft Basic? Особенно первую, это для 80-х вообще бомба была, целая фоновая мелодия одной строкой.

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

обойтись одним пайпом

Одним пайпом и заклинанием на каком-нибудь перле/авк/регулярных выражениях?

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

но для тех, кто никогда не писал ни begin-end, ни { }, это очень простое и понятное решение.

Писал и begin и {. Когда начал учить питон, удивлялся, нафига там двоеточие, раз отступы уже есть.

Я ненавижу его выделение блоков отступами,

Это рационально, есть обоснование? Слышал аргументы типа «там легко ошибку сделать» (не согласен) и «в русском переводе книги отступы забыли».

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

Что не так?

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

это не чисто абстрактное ремесло, чтобы всё прятать за упрощениями Python’a

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

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

Ага, особенно по части русского языка.

мне русский нужен на уровне, чтоб общаться с малочисленной русскоязычной аудиторией.

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

Слышал аргументы типа «там легко ошибку сделать» (не согласен) и «в русском переводе книги отступы забыли».

Оба аргумента вполне весомы. И не только в русском переводе. Вообще набрать текст с книжки становится рисковым мероприятием.

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

Одним пайпом и заклинанием на каком-нибудь перле/авк/регулярных выражениях?

ну да. В питоне же все равно импортировать регулярки нужно для сравнения по шаблону. Или паттерн-матчинг завезли?

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

кстати о документации, в питоне with open(file) as f: все также оставляет дескриптор открытым? А что говорит документация?

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

Начиная с происхождения

Чем деда Вирт перед тобой провинился?

богомерзкого синтаксиса

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

области применения (всё что угодно, только не никсы)

Double Commander? Нет, не слышали.

и заканчивая толпами говнокодеров и некрофилов, которые на нём пишут, не зная ничего другого.

Говнокодеры сейчас как раз больше либо по питону, либо по JS.

В общем, 4 раза мимо.

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

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

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

Так и в шелле тогда. Есть инструменты, не обязательно perl/awk/sed/etc.

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

Так list считай что такая глобальная переменная. Но вообще замечательный такой способ выстрелить в ногу.

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

Оба аргумента вполне весомы.

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

И не только в русском переводе. Вообще набрать текст с книжки становится рисковым мероприятием.

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

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

Ошибку действительно легко сделать. Не раз встречал промахи с идентацией у младших разработчиков. И более того. Буквально на той неделе мне понадобилось набросать скрипт, который в черновом варианте оказался простынкой на 350 строк, в которой я так промахнулся дважды, и это при том, что я познакомился с питоном в 2009 и переодически активно на нём пишу с середины 2010. Закончив, я скрипт прочитал и, конечно, все косяки сразу заметил, но тем не менее.

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

все также оставляет дескриптор открытым?

Втф? Это когда такое было?

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

в которой я так промахнулся дважды

Помнишь в каких местах? И в чём пишешь?

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

Любой linter/ide будет на это ругаться. Хотя, вероятность выстрелить не так велика, на самом деле, только в этом же скоупе.

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

Чем деда Вирт перед тобой провинился?

Тогда это был не деда, а ещё молодой них-синдромщик и любитель желтых заголовков, обиженный на алгол.

всяко красивее сабжа

Разве что для обладателей альтернативного чувства прекрасного.

Double Commander? Нет, не слышали

Ты серьёзно какой-то ненужной гуйнёй хочешь аргументировать? Это не просто не серьёзно, это всерьёз смешно.

Говнокодеры сейчас как раз больше либо по питону, либо по JS

Это ньюфаги. До того трешака, что царит в дельфинарии им ещё предстоит дорасти.

А по-моему, все 4 в точку.

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

Говнокодеры сейчас как раз больше либо по питону, либо по JS.

Ага, при этом оба языка на редкость нетерпимы к говнокодерам.

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

Это разве простыня? Глянь на исходники mirage(такая смотрелка картинок на pygtk, есть в любом дистре), там вообще все в одном файле. И, вроде, даже в одном классе. Тысячи строк. И xml интерфейса там же, в этом же классе.

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

Оба раза после циклов. Пишу в VSCode с подключенным pylint. Линтер там никак не мог угадать, что я имел ввиду.

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

Встречал такой способ самоубийства у одминов при правке скриптов через vi локально на сервере. Но там переопределяли str.

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