Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Популярность Питона

Автор Devorator linguarum, сентября 27, 2020, 20:03

0 Пользователи и 1 гость просматривают эту тему.

Easyskanker

Цитата: RawonaM от ноября  4, 2020, 10:07
Цитата: Easyskanker от ноября  4, 2020, 10:07
Без прямой связи вспомнилось, как преподша на третьем-четвертом курсах долбила нас мантрой "полиморфизм, инкапсуляция, наследование". Вместо прикладного программирования второго курса стали изучать какую-то эзотерическую философию, это была катастрофа.
Конечно, эти вещи только с опытом понимаются, начинать с них как-то странно.
Мы ими заканчивали, как будто. Но лучше бы она просто учила нас программировать, и не на скоро сдохшем Дельфи, а на сишарпе или крестах.

Цитата: RawonaM от ноября  4, 2020, 10:08
Помнится, что я пытался осилить книгу Страуструпа в 95-ом году и тоже ничего не понимал.
Я не уверен, что преподша сама толком понимала, а не всего лишь ретранслировала. По крайней мере, тогда она повторялась бы меньше, не каждую пару.

RawonaM

Цитата: Easyskanker от ноября  4, 2020, 10:11
Цитата: RawonaM от Помнится, что я пытался осилить книгу Страуструпа в 95-ом году и тоже ничего не понимал.
Я не уверен, что преподша сама толком понимала, а не всего лишь ретранслировала. По крайней мере, тогда она повторялась бы меньше, не каждую пару.
Вполне возможно, ведь в школы скорее всего только троешницы попадают, да и реального опыта нет.

kemerover

Цитата: RawonaM от ноября  4, 2020, 10:00
Инкапсуляции нет, значит нет ООП.
Инкапсуляция не в языке, а в голове. Никакие средства для неё вообще не нужны. Ни в Питоне, ни где либо ещё.

Это как сказать, что в C невозможно структурное программирование, потому что там есть goto. Ну есть и есть, а вы не используйте. И в Питоне к полям, начинающимся с "_" не обращайтесь, вот вам и инкапсуляция.

RawonaM

Цитата: kemerover от ноября  4, 2020, 10:44
Инкапсуляция не в языке, а в голове.
Ну правильно, инкапсуляция в голове, и ООП в голове тоже, а в языке нет :)

Абстракции тоже толком нет. Полиморфизм и наследование в некотором роде присутствуют.

rounin

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

Например  при перегрузке операторов (a > b) и (a < b) не должны возвращать True одновременно.
Или - одна из наиболее категоричных конвенций - из деструкторов нельзя вызывать исключения.

Инкапсуляция - такая же конвенция. Питон знает, что такая конвенция существует,
и недвусмысленно напоминает об этом программисту (просто так к члену __x обратиться не получится).

Ну, а если хочется явно нарушить конвенцию - так и в С++ есть reinterpret_cast<>.
У человека есть неотъемлемое право выстрелить себе в ногу.

Python

Действительно ли питон предназначен для ООП? Да, он это может, и в некоторых случаях это полезно или даже необходимо. Многие вещи сделаны достаточно интуитивно и логично (напр., переопределение операторов). Есть некоторые интересные фичи (напр., ромбическое множественное наследование с линеаризацией классовой иерархии при инициализации), которые, впрочем, редко используются.

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

Безусловно, для чисто процедурного кода без классов питон тоже не предназначен. Но описаниям классов место, скорее, в библиотеках, которые будут использоваться много раз в разных программах, а обычная программа, где эти классы будут использованы, более тяготеет к процедурному стилю. Начинать основной код любой программы со слова class — не по-питоновски.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Karakurt


RawonaM

Цитата: Python от ноября  4, 2020, 13:35
Но вот костыльность работы с классами как бы намекает, что здесь им не рады. Это не джава с принудительным ООП и автоматической проверкой любого отклонения от множества предусмотренных правил — в питоновских классах можно как-угодно нарушать общепринятые правила, и весь этот треш будет синтаксически валидным. Пропустил параметр self, забыл вызвать инициализацию предка? Да пожалуйста — питону все равно. Возникает ощущение, что работаешь не с собственно объектно-ориентированным языком, а с какими-то макросами, которые это имитируют, и если где-то что-то напутал — твои проблемы.
Все так, согласен :)

kemerover

Цитата: Python от ноября  4, 2020, 13:35
Действительно ли питон предназначен для ООП?
Он не предназначен для Enterprise OOP, как в Java, когда у вас тысяча человек работает над различными фабриками фабрик с кодовой базой в миллионы строк. До недавнего времени даже нормальной типизации не было.

Цитата: Python от ноября  4, 2020, 13:35
Но вот костыльность работы с классами как бы намекает, что здесь им не рады. Пропустил параметр self, забыл вызвать инициализацию предка? Да пожалуйста — питону все равно. Возникает ощущение, что работаешь не с собственно объектно-ориентированным языком, а с какими-то макросами, которые это имитируют, и если где-то что-то напутал — твои проблемы.
Всё-таки есть разница между тем, что язык предоставляет слишком много свободы и тем, что какие-то вещи в языке нельзя сделать или сделать очень сложно. В Питоне по сравнению с другими ООП-языками требуется некая избыточность в лице self и декораторов, но всё равно он не черезчур многословен, тем более по сравнению с Java. Согласен, что от self в теории можно было бы и избавиться, но решение его оставить рационализируется тем, что это делает язык более прозрачным в плане того, как на самом деле работают функции.

kemerover

Цитата: Karakurt от ноября  4, 2020, 14:59
Может ли Юля вытеснить змея?
Я думаю, что может со временем вытеснить R, Python и Matlab в области научного программирования. Многие университеты уже начинают учить численным методам, используя Julia. Но Python также используется во всех других областях программирования, как то: написание серверов, веб-скрапинг, автоматизация действий на компьютере. С этим Julia сильно не поможет.

Karakurt


Karakurt


Bhudh

Цитата: Karakurt от ноября  9, 2020, 09:15А что с рубином? Он лучше?
Он ещё жив? Рельсы, по-моему, все уже переплавили и перешли на узелки.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Karakurt


Karakurt

Цитата: Bhudh от ноября  9, 2020, 09:17
Цитата: Karakurt от ноября  9, 2020, 09:15А что с рубином? Он лучше?
Он ещё жив? Рельсы, по-моему, все уже переплавили и перешли на узелки.
Да, упала популярность.

Mass

Что характерно, по рейту TIOBE старенький Си нынче топ-1.
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Mass

Причем Python, хотя он и на втором месте, прилично отстаёт от топ-1: 12,12% против 16,21%.
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Mass

"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Mass

Цитата: kemerover от ноября  4, 2020, 16:37
Я думаю, что может со временем вытеснить R
Который, кстати, в этом году неслабо подпрыгнул: https://www.tiobe.com/tiobe-index/r/
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Mass

"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Rachtyrgin

С# могу порекомендовать каждому. Отличный язык!
Всякому остановленному фашисту для захвата его в плен можешь еще крикнуть:
«Хэндэ хох!» (Руки вверх!)
«Вафи хинлеги!» (Бросай оружие!)
«Абгезэсен!» (Слезай! — С машины, с лошади, с повозки.)
Если фашист не сразу исполняет твое приказание, крикни грознее и добавь:
«Бай флухтфэрзух вирт гэшози!» (Побежишь — буду стрелять!)
А. Афанасьев. В помощь партизану. Москва, 1942 г.

Bhudh

Шо там за пик страшенный в декабре восьмого⁈ Это когда Rails 2.2 вышли?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Mass

Не присутствовал :-\ Подозреваю, был оверхайп по поводу 2.* в принципе, который благополучно сдулся.
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Aequam memento rebus in arduis servare mentem.

Jumis

для Светланы

На одном весьма неплохом канале совсем недавно выложили цикл "пижамных" расширений Питона. Это чтоб не "черепашкой единой" внука в карантине мучить ;)

Первый видос цикла вот:



Остальные, при желании, найдутся там же без проблем.
Ужасный чудными делами
Дзержинец мира искони
Он нашими решил судьбами
Себя прославить в эти дни

Rachtyrgin

Всякому остановленному фашисту для захвата его в плен можешь еще крикнуть:
«Хэндэ хох!» (Руки вверх!)
«Вафи хинлеги!» (Бросай оружие!)
«Абгезэсен!» (Слезай! — С машины, с лошади, с повозки.)
Если фашист не сразу исполняет твое приказание, крикни грознее и добавь:
«Бай флухтфэрзух вирт гэшози!» (Побежишь — буду стрелять!)
А. Афанасьев. В помощь партизану. Москва, 1942 г.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр