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)
Ответ на: комментарий от bread

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

Там изучали теорию, а не практику. Это можно хоть на брейнфаке изучать.

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

В топе сейчас нлп

Зомбируют людей пистоном?

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

весь питонячий тормоз я уже переписал и выкинул

Продолжай сообщать нам

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

Никакой разницы. Просто питон форсит своё форматирование, а c-like - нет.

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

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

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

Такие условия в развитых странах сложились ещё к концу 1990х, и таким языком стал PHP. Потом его подвинул JavaScript (не знаю, вследствие появления node.js, или наоборот, его популярность породила node.js). Через 20 лет всех привлекает Питон.

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

питонщики нынче форматируют код вручную,

Учи матчасть. Синтаксис питона специально продуман так, чтобы легко делалось автоформатирование в редакторах. Дополнения вносятся с учётом этого требования: https://www.python.org/dev/peps/pep-3103/

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

Именно что успел побывать. В конце 1990х. В Британии ходила шутка, что школьники повально увлекаются PHP, а родители думают, что это новый наркотик. Естественно, из страны, где и диалап стоил запредельно, это было плохо видно. Индусы включились уже позже.

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

Это я к тому, что термин «развитая страна» (developed country) - рудимент уходящей эпохи. А сейчас он выглядит даже смешно.

Что касается популярности питона, то вопрос, кто и как ее считал? Популярность, конечно, наличествует, но это действительно 3-й по популярности язык в мире? Большой вопрос. Многих программистов питон просто бесит как язык программирования.

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

Он довольно популярен, и его популярность растёт. Другие языки или менее популярны в силу возраста (Rust, Go), или им уже некуда расти (C#, Java).

Можно считать число вопросов на Stackoverflow, число и объём проектов и коммитов на Гитхабе, число веб-серверов, предложения о работе... Ссылок под рукой нет, но помнится, везде Питон наверху списка. Хотя может кратно уступать лидерам.

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

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

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

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

Вообще-то, полгода работал. Но позже. А шутка гуляла в прессе и по интернету.

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

после такого заряда любому уважающему себя человеку будет с тобой западло работать.

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

Что касается популярности питона, то вопрос, кто и как ее считал? ...
Многих программистов питон просто бесит как язык программирования.

«There are only two kinds of languages: the ones people complain about and the ones nobody uses.»

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

между синтаксисом php и java нет почти ничего общего кроме скобочек

Конкретно синтаксис похож как два близнеца. Особенно после того как в пых завезли ООП слизанное с жабки под копирку.

разве эти же «недостатки» не применимы к синтаксису, скажем, паскаля

Да, конечно. С отступами там всё хорошо, но в целом паскаль - это представитель той же идеи, что и питон, хотя и в урезанном виде. Т.е. питон лучше сравнить с алголом или pl/1 - жирный неповоротливый кусок говна со специальным сахарком на каждый чих и претензией на «читаемость», которая понимается в смысле «программа выглядит как английский текст».

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

Хоть с 1000. Все это время ты зорко следишь за отступами, и правишь каждую копипасту вручную вместо того, чтобы полностью переложить это дело на редактор и форматирующую под требуемый стиль утилиту.

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

Все это время ты зорко следишь за отступами

Не слежу и не следил никогда

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

«There are only two kinds of languages: the ones people complain about and the ones nobody uses.»

Полностью согласен. Вот, мне Haskell очень нравится, но сколько здесь ненавистников... Да и сам за собой замечаю иногда нелюбовь к тому или иному языку. Такая селяви.

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

Вот, мне Haskell очень нравится, но сколько здесь ненавистников...

Haskell — это просто тот язык, который всем нравится, но писать на нём по разным причинам не получается.

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

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

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

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

breadятина какая-то. Во-первых автоформатирование возможно в некоторых ограниченных пределах, там где это однозначно. Да и не нужно оно для Python. При том что редакторы позволяют спокойно писать и не думать о пробелах. Я так вообще на Python с табами пишу и нередко вижу код где тоже табы

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

Может было неоптимизировано должным образом? Я тебе и на C++ написать так могу, что будет чудовищно медленно, поверь я умею писать медленный корявый говнокод ;)

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

Динамическая типизация - результат непонимания и/или невежества

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

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

Во-первых автоформатирование возможно

Под автоформатированием понимается не возможность поменять количество отствупов в валидном коде, а когда можно отформатировать автоматом такой код

if (x) {
foo()
bar() }
baz()
В питоне
if x:
foo()
bar()
baz()
отформатировать можно только руками, и то, если ты знаешь a priori где должен кончаться if. Сколько можно отрицать объективную реальность?

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

Да и не нужно оно для Python

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

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

Я так вообще на Python с табами пишу

Еретик! Кстати, отличный способ плюнуть питонисту в тарелку: подмешать ему немножко табов в пробелы.

bread
()

LOL. Видел тред на 21 странице.

Аргументы по поводу форматирования слишком преувеличены. За больше чем год, проведенный за баранкой этого драндулета, я не страдал по этому поводу ни разу. И даже повода не было.

Вот список того что напрягло несколько раз:

  • не замечал запятую в конце строки и получал tuple. Очень «удачный» синтаксис. Его строит выпилить нахрен.
  • итерировал по строке там где ожидал список строк - достаточно редкий случай когда надо бегать по строке. По идее лучше иметь адаптер для итерации по строке, а по дефолту падать.

Также мешанина unicode- и byte-строк в легаси вызывает боль.

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

я часто вижу как статическая типизация делает многие финты, возможные в Python, попросту нереальными или крайне трудно выполнимыми

Еще статическпая типизация делает возможными многие финты, невозможные (не трудновыполнимые, а просто невозможные) в Python. И делает невозможным класс ошибок.

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

Реальность не отрицаю, суть проблемы очевидна. Но... зачем форматировать заранее идеально отформатированный код? Это ж вам не Сиси всякие где можно и так и эдак код раскидать. Не спорьте со мной, добавьте в игнор, я не понимаю питонохейтеров, хотя сам таким был но повзрослел

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

Еретик! Кстати, отличный способ плюнуть питонисту в тарелку: подмешать ему немножко табов в пробелы

У меня даже примитивный редактор такое детектит и исправляет, гыгы

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

Еще статическпая типизация делает возможными многие финты, невозможные (не трудновыполнимые, а просто невозможные) в Python. И делает невозможным класс ошибок

Я согласен. И это и есть ответ на вопрос - был ли Гвидо ленивой жопой раз не сделал типизацию статической. Не ради «целого класса ошибок» же.

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

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

зачем форматировать заранее идеально отформатированный код

Тред не читай сразу отвечай? Затем что «идеальный код» сразу пишется только у питономакак. Волшебный язык, чо, тут уже задвигали про это.

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

Идеально-форматированный-код != идеальный-код. Первый без проблем, второй в мечтах.

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

Также мешанина unicode- и byte-строк в легаси вызывает боль.

Туда же строки и массивы байтов. В 2 это было одно и то же, в 3 нужно явно приводить один тип к другому.

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

был ли Гвидо ленивой жопой

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

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

Но... зачем форматировать заранее идеально отформатированный код?

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

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

«идеальный код» сразу пишется только у питономакак

Да когда-то давно прикалывались уже на тему read-only language. Пистонщики сразу отливают в гранит, не то что мы, быдлокодеры на скобкоте.

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

Давай пример, который не ловится при запуске.

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

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

«Если вы не живете, вам и не умирать» (ц)

Я думаю, про статически типизированные Python-подобные языки можно забыть. mypy для типизации, mypyc для сборки типизированного в нативный бинарь. Говорят, что уже сейчас ускорение в 3-4 раза.

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

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

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

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