Разработка
Ekaterina Kushnir
53 418

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

Команда Mail.ru Cloud Solutions перевела колонку Rhea Moutafis «Why Python is not the programming language of the future». Автор перевода не всегда разделяет мнение автора статьи.

В закладки

Python появился в мире программирования довольно давно, но с начала 2010 годов переживает бум — он уже обогнал по популярности C, C#, Java и JavaScript. До каких пор будет сохраняться тенденция роста, когда Python заменит какой-то другой язык и почему?

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

Что делает Python популярным прямо сейчас

Популярность языка программирования можно отследить по динамике количества тегов на самом востребованном у разработчиков ресурсе — Stack Overflow. Так, судя по графику, рост Python начался с 2010 года, а стремительным он стал в 2015 году. В то время как R в течение последних нескольких лет находится на плато, а многие другие языки находятся в упадке. У такой популярности Python есть причины.

Популярность языков программирования на Stack Overflow

Время существования

Python можно смело назвать довольно старым языком — он появился в 1991 году, то есть практически 30 лет назад. За это время он постепенно собрал вокруг себя большое сообщество.

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

Простота

Python можно смело рекомендовать как первый язык программирования. И дело не только в том, что он существует давно и поэтому по нему есть много хороших учебников. У него понятный синтаксис, похожий на обычный, «человеческий» язык. и еще он прощает ошибки.

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

Если вам когда-либо приходилось программировать на C++, вы знаете, как это печально, когда программа не компилируется только потому, что вы где-то поменяли число с плавающей точкой на целое число.

Код Python довольно просто читать. Просто сравните синтаксис Python и C++.

Универсальность

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

  • Для многомерных массивов и высокоуровневых матриц используйте NumPy.
  • Для расчетов в инженерном деле подойдет SciPy.
  • Для исследования, анализа и манипулирования данными попробуйте Pandas.
  • Для работы с искусственным интеллектом изучайте Scikit-Learn.

Если вам нужно решить какую-то вычислительную задачу, вероятно, что для нее уже есть специальная библиотека Python. Это позволяет языку оставаться в тренде последние годы, что видно по всплеску его использования в машинном обучении.

Недостатки Python, которые могут уничтожить этот язык

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

Скорость

Python медленный — в среднем, на операции на нем понадобится в два, а то и в десять раз больше времени, чем если бы вы выбрали другой язык. Для этого есть разные причины. Одна из них в том, что Python — язык с динамической типизацией. То есть на нем не нужно заранее определять тип данных, как в других языках. Конечно, это удобно разработчику, но такой подход требует большого резерва памяти для каждой переменной, чтобы она работала в любом случае. Соответственно, больше памяти означает больше времени на вычисления.

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

Конечно, вы можете возразить — кого сейчас волнует эта скорость, ведь компьютеры и серверы стали такими мощными, что в итоге «медленно» означает выбор между загрузкой приложения за 0,01 секунды или 0,001 секунды. Действительно, конечному пользователю нет разницы.

Области видимости

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

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

Питон пытался перейти к статической области видимости, но ничего не вышло. Обычно внутренние области видимости — например, функции внутри функции — могут видеть и менять внешние области видимости. В Python внутренние области могут только видеть внешние области, но не менять их. Такой подход приводит к путанице.

Лямбда-функции

Несмотря на всю гибкость, использование лямбд в Python ограничено. Они могут быть только выражениями (expressions), но не инструкциями (statements). С другой стороны, объявления переменных и statements и есть инструкции. Проще говоря, добавление statements сделает лямбду многострочной, а синтаксис Python не позволяет так сделать.

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

Пробелы

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

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

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

Пробелы делают код более читаемым, но менее удобным в сопровождении Irvan Smith на Unsplash

Мобильная разработка

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

В Python такая возможность как бы есть — пакет под название Kivy. Но нужно учитывать, что Python не был создан для мобильных устройств. Использовать его можно, результат будет даже приемлемым, но зачем, когда можно взять более подходящий язык, созданный для разработки мобильных приложений. Например, фреймворки для кроссплатформенной мобильной разработки: React Native, Flutter, Iconic и Cordova.

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

Ошибки во время выполнения (Runtime Errors)

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

Это приводит к низкой производительности, временным затратам и большому количеству тестов. Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности.

Что может заменить Python в будущем

На рынке языков программирования есть несколько его конкурентов:

  • Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана. Но за счет концепции владения и заимствования в Rust решена проблема с производительностью. Кстати, именно Rust разработчики называют самым любимым языком.
  • Go стоит рассматривать начинающим разработчикам. Он довольно прост в освоении, поддерживать код тоже не трудно. Плюс разработчики на GO сейчас одни из самых высокооплачиваемых.
  • Julia подходит для крупномасштабных технических вычислений. Раньше для этого нужно было использовать Python или Matlab плюс библиотеки C++. После выхода Julia потребность в жонглировании языками отпала.

На рынке есть масса других полезных языков, но именно эти три закрывают слабые места Python. Rust, Go и Julia подходят для инновационных технологий, особенно для искусственного интеллекта. Сейчас их доля на рынке еще невелика, судя по тегам Stack Overflow, но тенденция роста уже есть.

Динамика роста на Stack Overflow

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

Какой из языков это будет — Rust, Go, Julia или новый язык будущего — пока трудно сказать Но учитывая проблемы с производительностью, которые являются основополагающими в архитектуре Python, каждый из новых языков найдет свое место.

Что еще почитать по теме:

{ "author_name": "Ekaterina Kushnir", "author_type": "self", "tags": [], "comments": 93, "likes": -1, "favorites": 33, "is_advertisement": false, "subsite_label": "dev", "id": 133406, "is_wide": true, "is_ugc": true, "date": "Thu, 11 Jun 2020 10:41:52 +0300", "is_special": false }
Объявление на vc.ru
0
93 комментария
Популярные
По порядку
Написать комментарий...
10

Единственная верная предъява это скорость.
Но почему проблемой являются отступы вместо скобок или динамическая типизация? Отступы в любом случае придется делать, иначе код станет не читаемым. 
Компилятора нету? А как же Numba или PyPy? Да пускай не идеальные компиляторы, но питон на скорость не претендует. 
Runtime error это вообще смех, да грех, вы два раза написали о том, что питон интерпретируемый язык? 
    Go не заменит питон, так как он строго типизированый и далеко не такой простой как python про julia уже более правдеподобно, но ближайшие года julia будет только набирать обороты. Как Rust может заменить python, если это конкурент c/c++, а не python. 
    Статья бредовая. 

Ответить
0

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

Проблема отступов для управления блоками кода:

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

2. Могут быть проблемы при банальном мерже: Например у вас есть функция один разработчик вставил в начало условие - все тело +1 отступ, другой в середину функции добавил оператор - у него отступы были старые. Автоматической слияние пройдет отлично, но код работать не будет.

Ответить
1

PEP 8 не просто так создан. 

Ответить
0

А также юнит тесты, статические анализаторы, код ревью, CI/CD - и много других хороших вещей.

Но реальность она такова, что люди часто этим пренебрегают, особенно на с большой текучкой кадров. Если у вас есть достаточное количество джунов или разгяльдяев на проекте - к гадалке, не ходи будут нарушать PEP8. И если в С++ будет просто некрасивый код, то Питоне он может быть невалидным.

Ответить
0

Ты шутишь? Ты серьезно думаешь, что джун не знает pep 8? Я когда начинал учить питон по курсам нам с 10-ого урока про PEP 8 Рассказали и порекомендовали использовать pycharm который подсвечивает pep 8 ошибки, а если говорить про крупные компании то все там использут PyCharm.

Ответить
2

1. Знает и строго следует - это как бы разные вещи, А ещё есть люди которым тупо пофиг, он привык к табам и фигачит табы, хоть в проекте приняты пробелы. А еще есть старые проекты в которых по фиг пойми каким причинам принят code style отличный от официальных рекомендаций. А ещё иногда надо править код не в IDE а "блокноте".

2. Есть случаи когда и PEP8 не поможет, я уже привел пример.

Ответить
0

Есть люди, есть люди. Говнокод они пишут для себя на работе без знания элементарного pep 8 тебя работадатель даже за джуна не воспримет. 

На счет цифры 2 я не понял где он не поможет, когда код превращается в легась?  Тогда это не зависит от того, как пишешь ведь pep 8 был придуман давно со времен python 2, а если ты про +1 отступ то PEP 8 говорит: ЧЕТЫРЕ ОТСТУПА ВЕЗДЕ ПОСЛЕ УСЛОВИЯ, ОБЪЯВЛЕНИЯ ФУНКЦИИ, И МНОГОГО ЧЕГО ДРУГОГО. Ну сделайте четыре отступа на таб, это делается за два клика, в атоме, саблайме, а в пайчарме это по дефолту, либо делайте auto indent, в нормальных IDE он есть. 

Ответить
0

Так об этом и речь, чем старее проект и больше разного народа на нем работало, тем выше шанс что там будут нарушения пресловутого PEP8. Я например видей проекты в котором были файлы в которых были строки с \n  и строки \r\n (в одном файле). Поэтому все эти  "без знания PEP8 тебя джуном не возьмут", это конечно хорошо, но смахивает на детский максимализм.

Речь идет о +1 уровень отступа, а не буквально 1 пробел.

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

Ответить
0

А как по мне, вещи, вроде "ставь вручную четыре пробела" это тот еще идиотизм, и не всегда легко заметить, что кнопка не прожалась.
Вы можете сказать, что разные фреймворки, или даже Notepad++ могут добавлять нужное количество самостоятельно, но с тем же успехом он может делать более читаемым и частично автозаполняемым все, от c++ и до php, разве что Java ничего не поможет :^) Единственное реальное преимущество Питона, это то, что большинство команд написаны на английском. Внезапно все еще меньше половины наших разработчиков знают английский на достойном уровне, а тем, кто знает его плохо, абсолютно пофигу, какие операторы запоминать.

Ответить
0

"ставь вручную четыре пробела" это тот еще идиотизм,

Вы из тех, кто считает сцену из Silicon Valley, где девушка Ричарда долбит по пробелу и его бесит, забавной шуткой?
В реальном мире люди изобрели клавишу Tab.

Ответить
0

Я из тех, кто считатет, что на Stack Overflow слишком много вопросов по Python-у плана "как удалить лишние пробелы"
А фильм вообще не смотрел.

Ответить
0

"Единственное реальное преимущество Питона, это то, что большинство команд написаны на английском. "
А че на жабе или си плюсах не на английском? Абстракция не в английском измеряется.

Ответить
6

ох уж эти жёлтые заголовки
питон очень сильно ушёл в data science и стал чем-то вроде пыхи в плане порога вхождения
никто его уже там не заменит в виду тонн кода и библиотек и будущее питона именно за ds
одновременно сильно сдал позиции в веб, из-за чего я сам перешёл с него на java

Ответить
0

D может заменить. В общем он сейчас на это и претендует.

Ответить
3

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

Ответить
–2

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

Ответить
2

Здравствуйте! Заинтересовала статья. Я не являюсь python разработчиком, однако в последнее время возникла необходимость разобраться со скриптами на этом языке (open vino). Я бы добавил существенные замечания. В плюсы: скорость прототипирования и отладки алгоритмов. В минусы: - 1) неудобный ide и полное отсутствие инфраструктуры для серьезной разработки и отладки. Хотя это, возможно, вопрос привычки.  2) нестрогие языки, тем более интерпретируемые, всегда отнимают много времени на поиск ошибок. Даже в c# часть проблем я нахожу уже на этапе дебага. В си++ большинство ошибок находиться на этапе компиляции. 

В целом python показался очень полезным нишевым языком. Что то типа power shell, только ниша гораздо шире. К тому же специальные библиотеки типа numpy сильно расширяют возможности разработчика. 

Ответить
5

Чем же не угодил PyCharm? В питоне строгая типизация, просто она динамическая. Не нужно смешивать эти понятия.

Ответить
0

По вопросу PySharm я указал что могу ошибаться. По типизации - именно динамическую типизацию я и считаю минусом. Понятно что основной минус - скорость. Я лишь добавил ещё один. Плюс этого момента наверное для новичков, осваивающих программирование. 

Ответить
1

А в чём собственно говоря приемущество отсутствия строгой типизации и нормального форматирования кода в виде фигурных скобок?
Типы в питоне и так есть, просто в нормальных яхыках, вы читаете код, вы понимаете где и какой тип возвращаеться, а в питоне пойди угадай, что возвращает функция GetVasia(). Т.е. я абсолютно не понимаю, какую проблему решает тот факт, что не надо объявлять типы? Вы всё равное не сможете совершать операции над разными типами данных, ибо это приведёт в исключению выполнения, какой тогда в этом смысл? С каких пор int x = test.GetVal() стало блин хуже чем x = test.GetVal() ???
Фигурные скобки.... серьёзно.... я конечно понимаю, что типичный код пайтон-разработчика - подключить 1000 библиотек, и написать something = DoAmazingThings(), но вы попробуйте на пайтоне написать больше 30-50 строчек кода.... у вас глаза на лоб вылезут, пока вы поймёт где какой отступ был сделан, и какая часть кода к какому "блоку" относиться. В чём сложность использования нормальных фигурных скобок для визуального разграничения блоков кода?
Ну так вообще, у пайтоне есть своя ниша, это ХэллоВорлд приложения с использованием очень богатых библиотек, т.е. как язык что бы показать своей бабушке, какой у неё умный внучек, какие нейросети делает - самое то. Но когда я вижу +- серьёзные приложения на пайтоне..... бууээээ. Понятия не имею, зачем это делают.
ах да, в качестве первого языка брать пайтон - хреновая идея. Это как учиться ездить на машине сразу с автомата - ездить уметь будешь, но посади тебя за механику, повесишься.

Ответить
2

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

Уже три года пишу на питоне, и никогда не возникало проблемы с отступами. Если уж совсем всепечально, есть прекрасные IDE (например, PyCharm), который все делает за Вас. 
С++ код не требует соблюдать отступы, чтобы код работал, но все нормальные разработчики их делают, причем стараются соблюдать конвенцию (2 или 4 пробела, например) и почему-то никто не кричит о том, что: "Ааа, это кошмар, попробуй уследи за всеми этим отступами!"

Долгое время я писал на C++ и никакого дискомфорта не испытываю от того, что в Питоне скобок нет. На мой взгляд наоборот очень классно, что блоки выделяются пробелами, и этого достаточно. Философия Питона - это практичность. Зачем тогда добавлять ещё одну сущность в виде скобок для выделения блока?

Насчёт ниши Питона... Ну тут даже комментировать нет никакого желания, просто дам реплику: Java для тех криворуких, кто не смог освоить С++ и управление памятью вручную. (Сарказм, ага)

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

Ответить
1

Не путаете соблюдение отступов в питоне и в срр. В срр это не влияет на работу, а в питоне от этого зависит логика. В срр и в других языках форматированием занимается сама IDE. Написал код, нажал сочетание клавиш и все. Все отступы и конвенция соблюдены.

Ответить
1

Отступами в Питоне IDE с тем же успехом занимается. И никаких проблем не возникает.

Ответить
0

Отступы - это в питоне логика. Пробелы определяют блок. IDE тебе не поможет логику починить

Ответить
2

Ни когда не понимал почему python сравнивают с C++? Это абсолютно разные языки и с разными сферами применения! 
Синтаксис это конечно самое важное в ЯП! Пливать на производительность и уровни разработки(извиняюсь может не верно выразился я про низкоуровневое программирование). Да в вебе он сейчас в топ 3 залез! Но плюсов в вебе почти нет! Так как и python в десктопе и дравах( про драйвера на с++ возможно загнул). А как начсет встраиваемых систем?

Обошел в топе? А ни че что топы эти строятся на вопросах и запросах о язык, то есть сколько новичков задали вопросов? Лично я учу асм потоп с/с++ но я еще не одного вопроса не задал на форумах! Тогда получается минус % от рейтинга асм?
Мне одному кажется что это бред?

Или может возьмен выкенем си и будем оси на питоне писать ? Опытные программисты пишут такой бред это жесть

Ни чего против переводчика не имею против критика чисто к авторам))))

Ответить
0

Тем не менее тот же D нынче хочет потеснить Python в области Data Science, хотя они сами признают, что без поддержки крупными компаниями это будет трудно.

Ответить
2

Когда говорят о скорости python, то имеют в виду скорость его интерпретатора cpython. В подавляющем большинстве случаев скорость cpython - достаточная, а когда нет, то дело вступают библиотеки, написанные на си или собственный ffi. Остальные претензии высосаны из пальца. 

Ответить
–4

Вот же бредятина. Только про скорость верно, да и это решим. Точки с запятой и фигурные скобки... Очередной майловский идиот, хочешь используй и в пайтоне все это. Что плюсы, что шарпы ничего в них супер сложного нет. Первый язык был Шарп. Не увидел разницы с пайтоном. Вот такие спецы и работают в майле, которых все терпеть не могут. 
Вывод тс делал по второй версии. И там нае''лся

Ответить
4

Кретин, это перевод статьи, а не мнение мейл ру, о чем написано в первых же строках. Откуда вы, такие кретины, только беретесь. Короткую статью внимательно прочитать не способны, а кукарекаете. 

Ответить
0

П - перевод...

Ответить
–1

Да все верно производительно. Я иза этого и не выбрал питон, потому что он медленный ! Потом будут его выкидывать и заменять другим !

Насчёт поддержки почему, потому что комментировать код сложно. Добавьте работу с системой контроля версии и вуаля, закоменьировал ты код или нет, к какому begin end относится? И сиди гадай.

После пхп и джаваскрипта лучше бы чтобы питон тоже умер. Динамическая типизация просто порой ужасна. Как она мне надоела ! 

Ответить
–3

Питон хорош для одного для бизнес логики и анализа данных, для другого это мастадонт. Тут уж наверное и вылезают проблемы платформы. Питон это как sql. Хорош только для одного для анализа данных. А машин лернинг могут и другие языки предоставить! Короче питоон в топку ! 

Ответить
8

"Потом будут его выкидывать и заменять другим !"
После пхп и джаваскрипта лучше бы чтобы питон тоже умер." 
Ясно, профессиАналы в треде. 
И да, сейчас бы бизнес-логику целиком на питоне писать. Совет на 10/10.
Про поддержку чужого кода - вообще не понял. Работаю с чужим кодом в крупнымх проектах с кросс-зависимостями. В 90% случаев вообще никаких проблем с читабельностью. Нет, конечно, если вы делаете 12 вложенных ветвлений и 30 функций внутри main() - проблемы будут. Но тогда, извините, это не язык - говно, а код. 

Ответить
–2

Если вам надо комментировать ваш код, у меня для вас плохие новости..

Ответить
0

Это такой жирный наброс или это мнение джуна ничего кроме хеловорлдов не писавшего?

Ответить
0

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

Ответить
0

Жаль, так хотел на питоне программировать будущее.

Ответить
0

Статейка то желтушная. Единственное верное серьёзное замечание - проблема со скоростью работы. И та лечится cython'ом. 

Ответить
0

a,b=b,a

А слабо написать код короче, чем этот код на Пайтоне?! 

Ответить
0

Я могу написать программу - видеоплеер, код которой будет в 400 строк на Delphi. Программа работает на любой Винде и имеет возможность сборки под Линукс, мак и андроид. Слабо такое написать на питоне короче?
https://youtu.be/5yGNsoNEZ74

Ответить
1

А я могу в одну строку. Работает на винде, линуксе, маке, ios, андроид и Bolgenos. Слабо написать на Delphi короче?

<video src="cat.avi" controls></video>

Ответить
0

И да, могу. 
WebBrowser.HtmlText := '<video src="cat.avi" controls></video>';
И получу независимое приложение.

Ответить
0

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

Ответить
0

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

Ответить
0

Здорово, не в тему, но здорово.

Ответить
0

Код на руби в среднем короче

Ответить
–1

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

Ответить
0

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

Ответить
0

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

Ответить
0

А какую альтернативу вы видите? Си? Для школьника или студента без опыта - один только синтаксис усложнит восприятие в разы.

Ответить
0

Не усложнит. А ещё есть Паскаль

Ответить
0

Паскаль морально устарел давным-давно. Про ООП просто смешно. Давайте учить школьников пихать классы везде, где можно и нельзя,при том, что в 70% случаев ООП спокойно заменяется тем же функциональные программированием без потери в производительности/читабельности.
По типизации согласен, но это не значит, что нужно сразу учить ради этого C/C++. 

Ответить
1

Чем устарел паскаль?

Ответить
0

Как минимум тем, что есть более быстро развивающиеся аналоги, которые не дадут ни Object Pascal/Delphi, ни его не-ООПшному старшему брату занять сколь-нибудь значительную нишу на рынке. 
Я согласен, что для изучения алгоритмов и самой базы Паскаль хорош, однако только на этом самом базовом уровне. 
В Delphi я со своей колокольни вижу пока только один плюс - наличие нативного конструктора, который таки неплох (и опять же, есть сильный аналог в виде Qt). 

Ответить
0

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

Ответить
0

Ну на "ты" мы, вроде, не переходили.
Конечно, я не работал ни с Borland Pascal, ни с Object Pascal, ни с Python. Просто так зашёл в комментарии повыделываться. 
Вот незадача, абсолютное большинство проектов на питоне спокойно имеет себе кроссплатформенность. В некоторых случаях для этого даже не требуется pyinstall. Сомневаюсь я в Вашем реальном рабочем опыте, ох сомневаюсь. 

Ответить
–1

Кроссплатформенность питона обеспечивается исключительно тем, имеется ли интерпретатор на целевую платформу. В то время как на Delphi программы работают независимо от того, что установлено. Питон - это просто скрипт. Он в принципе не зависит от платформы. 
Но ты действительно не понимаешь о чем говоришь.
Особенно на это указывает то, что ты сравниваешь Turbo Pascal и Delphi. Это совершенно разные языки. С совершенно разными возможностями. 
 Для того, чтобы что-то вам хоть отчасти понимать, погуглить RAD Studio. Посмотрите часть возможностей. FMX, нативность и отсутствие зависимостей исполнительных файлов. 
Я профессионально занимаюсь программированием на Delphi, разрабатываю программы для интернет провайдера и занимаюсь сторонними проектами. 
Так что посмотрите для начала на этот язык, а потом пробуйте что-то аргументировать.  

Ответить
0

О, ну хоть к середине сообщения мы таки вернулись хоть и не к уважительному тону, но хотя бы к "вы".
Ну конечно, а билд для кого придуман? Конечно, это не компиляция в привычном понимании, но вполне сносная альтернатива.
Так, ещё раз. Разговор шёл изначально про Pascal, а не про Delphi. Извольте тогда оперировать нормальными понятиями, а не от балды. 
И повторюсь, я имел счастье работать с Delphi, не надо читать через строчку. Ничего не имею против, однако на рынке он практически не имеет веса. Соответственно, возникает вопрос - а так ли надо его учить? То, что Вы работаете - это здорово. Но сильно просто будет поменять место работы, когда на хэдхантере +/- 100 вакансий по Москве? 

Ответить
–1

Все дело в том, что паскаль хоть и отличается от Delphi, но всё равно полностью совместим в сторону Delphi. Раз ты работал, то должен это понимать.
Однако ВЫ ни где не упоминали, что работали с Delphi. И более того, придерживаетесь того, что он не может занять какую-либо нишу. Всё потому что вы реально не работали с ним и, повторюсь, не понимаете того, что он может. А может он исключительно всё. Нейросети, 3д графику, универсальность под разные платформы, бд, низкоуровневое программирование, ассемблерные вставки, написание драйверов, веб-сервер, веб-страницы, веб-сервисы и  т.д. У него масса фреймворков и даже в базовой комплектации среды позволяет уйму вещей.
Вакансий не прибавится, если ВЫ и дальше будете такого мнения о языке. Однако, я без проблем нашёл работу на Delphi в разных городах (так получилось). Находил в крупных и нашёл в крайне маленьком городе.

Ответить
0

А D можно сразу учить?)

Ответить
0

Я же и сказал как СТАРТ для обучения программированию. Никто не говорит, что вы учитесь на питоне, а с завтрашнего дня переходите на c++. Но практика такова, что дети сейчас начинают с него.

Ответить
0

Python в 1991 и старый, Haskell 1990 и новый. Великолепно

Ответить
0

Статья бредовая, написана просто чтобы написать. Единственная нормальная предъява - ошибки выявляются только после компиляции. Какой нафиг Go заменит питон? При чём тут то, что нельзя для телефонов что-то писать? А при чём здесь минус в пробелах и в том, что не надо точки с запятой(далее - точки) ставить? Вообще никогда не понимал, почему в языках программирования надо ставить точки, если тот же С# сам тебе пишет, мол, надо поставить точку с запятой, дружок.

Ответить
0

как они правду не любят))) Питон рулит))
а визуальный питон всех  в позу ставит

Ответить
–2

Как можно вообще сравнивать интерпретатор и компилятор?
Полнвя профанация. 
Что пайтон, что javascript, что php, что perl и т.д. Это все птичьи языки. Они всегда будут медленными в силу того, что они работают через виртуальную машину. 

Форсатирование пробелами и отступами, это вообще за гранью добра и зла. Это как ехать по многополосному автобвану с кучей развязок без разметки и знаков. Все определяется на глаз. 

Для обучения нужны именно жестко типизированные языки. Типа паскаля (он для этого и был придуман). 
Чтобы бить по рукам. Иначе получиися что и с остальными. Низкий порог входа, куча ошибок и говнокода. 

Ответить
2

Питон пихуют в всюду, вот и сравнивают

Ответить
0

и потому    програмистов нет и не будет ,люди не разумны и ленивы, одного програмиста на всех не хватить и никто ему платить так много не станет ,потому будет    еще проще   что бы было дешевле

Ответить
–1

Странное мнение, что питон такой медленный только из-за динамической типизации. Возьмем, например, JavaScript (язык с динамической типизацией) и движок V8, он в 2-10 раз быстрее питона. Да даже тот же движок PHP на порядок быстрее питона.

Ответить
0

Откуда информация, что JS быстрее Py? Ссылочку, мне интересно, реально

Ответить
0

Из интернетов, поищи тесты производительности.

Ответить

Комментарий удален

Комментарий удален

–1

Нафиг питона . Я его синтаксис в гробу видал 

Ответить
–2

Не являюсь IТ-специалистом, да и вообще мало смыслю в этой теме. Но считаю, что ответ один - потому что время идёт. Когда-то Паскаль и Бертран считались самыми используемым языками. А теперь где они? Разве что в средних школах на допотопных компах. То же самое будет и с Питоном, Джавой, С и прочими. А на смену им придут новые языки. 

Ответить
–1

Паскаль до сих пор преподают как начальный язык, а Delphi (это паскаль на максималках) сейчас позволяет делать такие вещи, которые не то что питону, но и с# сложнодостижимы.

Ответить
2

Так и запишем, некрофилия и отсутствие кругозора.

Ответить
–1

Ты - идиот? Во-первых, я пишу на разных языках. Во-вторых, это ты не понимаешь, что такое Delphi. Который обновляется, к сведению каждые четверть года. Недавно вышла новая версия среды. RAD Studio 10.4. Delphi сейчас кроссплатформенный язык. Это у тебя кругозор сужен. Иди почитай о возможностях языка или новости посмотри.

Ответить
1

Да мне этого достаточно

Ответить
–1

Так и запишем, "идиот".

Ответить
0

Почему идиот?

Ответить
1

Ну вот смотри. Кто-то, а возможно и ты сам, придумал приложение. Классное и пока уникальное. Что ты будешь делать? Правильно, писать.

Или вот. Клиент хочет приложение, даёт тебе тех. задание и требования само-собой. 

Где в этих случаях определяется конкретный язык?

Тебе это будет важно в твоём проекте? Например, Delphi. Ты пишешь программу на FMX. Отлаживаешь её под виндой с полноценным отладчиком. Далее, компилишь её под андроид, иос, линукс. Готово. Проект будет работать везде, не требуя ни каких предустановок. Ни дот нет, нужной версии, ни qt библиотек и будет весить мегабайт 20 на винду (на остальные платформы зависит от самих платформ)

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

Ответить
1

Странно, что общество не ценит такой замечательный язык. Работы мало, в индексах популярности плетётся на последних местах.
http://pypl.github.io/PYPL.html

Ответить
1

Потому что компания, которая имеет монополию на язык и на среду (в тот момент Borland Delphi 7) была выкуплена, а один из основателей языка был перетянут Microsoft, кстати именно он сейчас работает на C#. Новый владелец долгое время ничего не делал, а среда, которая кстати до сих пор работает, кем-то используется и всё ещё позволяет создавать приложения не получала развития. Никакого. Были какие-то выпуски, но лишь для смены визуала самой среды. И эксперимент в виде .NET версии среды (странная дичь).
А буквально лет 6-7 назад, компания таки начала активную разработку самой среды и нововведений в сам язык. Сделали упор на кроссплатформенность и всего за пару лет добились работоспособности на всех популярных платформах. 
Сейчас среда обзавелась массой возможностей, нативные скины под VCL, гибкая система скинов под кросплатформ (FMX). Возможность разработки разных компоновок окна под разные платформы, размеры или DPI. И всё это единственным проектом и одной кодовой базой. Ничего не нужно переписывать или дописывать под конкретную платформу. 
Например, я буквально за 2 дня написал плеер для вк, без рекламы и других ограничений, под винду и андроид. Многопоточное, универсальное приложение с OAuth2 авторизацией, без костылей и всяких проблем. 

Ответить
0

истенно так ,потому что даже Юнити - это по факту собственость макрасофт .выбора особоа нет ты или раб макрасофта ли рабыня гугла плея....или визуал студия или СДК Андроид

Ответить
0

Ну я могу все это из Delphi делать. Там даже есть живая настройка сцены как в игровых средах.
Без прямой привязки к Android SDK. Хотя без него конечно не соберёшь проект, но он нужен косвенно.

Ответить
0

Ну если он так хорош, то люди подтянутся. В общем время рассудит.

Ответить
0

Где-то я это уже читал... На Хабре по-моему.

Ответить
0

1. стоит ли париться об абстрактном будущем тем, кто до него не доживёт? :)
2. не существует точных прогнозов. Чисто случайно всегда УГАДЫВАЕТ кто-то из всего спектра прогнозирующих

Ответить
0

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

Ответить
0

Понимаю, что это перевод, но уверен, что тут есть люди, разбирающиеся в теме.

Объясните, почему "Python может выполнять только одну задачу за раз" и почему в этом виновата динамическая типизация? Получается статическая типизация в языке, на котором написан веб-браузер, сама по себе дает запускать десятки потоков?

"Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана"
a = 1
a = "1"
Что я делаю не так?

"Но за счет концепции владения и заимствования в Rust решена проблема с производительностью". Почему это противопоставлено предыдущему предложению? Видимо то, что переменная не может быть случайно перезаписана, понижает производительность, но замечательная концепция это компенсировала. Действительно ли концепция владения и заимствования сыграла ключевую роль в производительности? Давайте введем эту концепцию в интерпретируемый язык.

Почему корень всех зол - это динамическая типизация (- производительность, - память, - десятки потоков), но автор советует Julia (https://docs.julialang.org/en/v1/manual/types/)?

Ответить
–1

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

Ответить
–1

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

Ну и кроме того, скорость не является проблемой для питона всё равно. Она либо достаточно, либо решается библиотеками, либо Cython-ом. Если бы проблема с производительностью существовала, то люди бы активнее использовали Jython или PyPy, но этого не происходит.

Ответить
0

3 язык в мире    не станет - это смешно)

Ответить
0

Кстати говоря про динамическое ограничение видимости... серьезно?  Вот пример прямо со страницы, куда ссылается автор https://www.geeksforgeeks.org/static-and-dynamic-scoping/ . При интерпретации его на Python (если вызывать не в main, то ничего не поменяется. это просто для наглядности) выводит... 10! То есть статическое ограничение видимости. 
—--—--—--—--—--—--—
x = 10

def f():
return x

def g():
x = 20; return f()

def main():
x = 30; print(g())

main()
—--—--—--—--—--—--—

Еще очень странным считаю "недостаток" lambda-функций. Как я видел, все остальные "недостатки" уже обговорили. lambda-функция это упрощенная функция, small anonymous function. Другими словами она позволяет записать какую-то короткую функцию в одну строку и, возможно, не придумывать ей имя. Это примерно как списочное выражение! И это преимущество. 
Это прямо как сказать — у них есть маленькие яблони для дома, как круто. Но это их "недостаток' ведь такие яблони дают меньший урожай. 

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарии