OberonCore
https://forum.oberoncore.ru/

против питона
https://forum.oberoncore.ru/viewtopic.php?f=7&t=5913
Страница 1 из 5

Автор:  Info21 [ Понедельник, 10 Октябрь, 2016 15:32 ]
Заголовок сообщения:  против питона

Коллеги, нужно собрать конкретные аргументы в тему, почему питон хуже Оберона/КП для обучения программированию.
Хуже не только по мелочам, но и с точки зрения единой сквозной системы вводных курсов, о которой говорится в Информатике-21.

Конкретные фичи, конкретный опыт.

Систематизируем потом, сначала нужно собрать в режиме мозгового штурма.

В Минобразе уже начались перемены, и нужно использовать шанс, чтобы вписаться в эту струю.

Автор:  prospero78 [ Понедельник, 10 Октябрь, 2016 17:06 ]
Заголовок сообщения:  Re: против питона

1. Питон поощряет бестолковый стиль кода.
2. Питон поощряет бездумную смену типа объектов во время работы.
3. Питон не является единой нефрагментированной платформой для "малого" и "большого".
4. После питона сложно выправить вывихи сознания в восприятии правильных подходов.
5. Питон 2 и 3 ветки расколол сообщество на два лагеря: до и после. Причём после, по многим параметрам хуже чем до.
6. Питон имеет обширные привязки к серьёзным инструментам, но по отношению к ним -- является ведомым и всегда догоняет.
7. Питон -- это попытка исправить злокачественную генетику Си. И потому, после него обучаемый неизбежно пойдёт в Си.
8. Питон в чистом виде -- не может послужить основой для серьёзного программного обеспечения. Как по объёму, так и по качеству, так и производительности. Придётся осваивать либо расширение, либо отдельный язык.
9. Питон идёт по пути, который невозможно контролировать. С каждым годом всё тяжелей, и на пятки ему наступают более легковесные декларативные мини-языки.
10. Питон не является промышленным стандартом, а значит в будущем школьники будут вынуждены со временем отказываться от приобретённых навыков. Труд учителей и средства налогоплательщиков будут потрачены впустую.

Автор:  Info21 [ Понедельник, 10 Октябрь, 2016 17:11 ]
Заголовок сообщения:  Re: против питона

Здорово для затравки.

Но частично неконкретно.

Коллеги, кто может подраскрыть пункты, не стесняйтесь.

Автор:  Info21 [ Понедельник, 10 Октябрь, 2016 17:16 ]
Заголовок сообщения:  Re: против питона

Ещё хорошо бы иметь с прицелом на будущее свидетельства типа
я пытался применять питон в некоем проекте, и бякнулся фейсом в ... etc.

Автор:  Илья Ермаков [ Понедельник, 10 Октябрь, 2016 17:27 ]
Заголовок сообщения:  Re: против питона

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

Из мейнстрима:
Java (стандарт для крупного корпоративного и финансового ПО), C# (как альтер-Ява), Ada (авиация), С++ (сложная системщина), Haskell (передовой функциональный язык), Go (язык Гугла для веб-программирования) - всё это развитая статическая типизация. Даже С++, будь он трижды неладен, - в современной его идеологии - это в первую очередь обеспечение надёжности и предметной ориентированности за счёт развитой статической типизации в условиях обобщённого программирования (дженериков).

Известны проблемы "скриптеров" при переходе на эти языки именно по причине "аморфности" мышления.
Т.е. создаётся мощный тормоз для перехода в серьёзную, профессиональную лигу. Отсутствие строгой типизации в этом плане то же самое, что и GOTO для структуры алгоритма.
Безусловно, проталкивание известной бандой Питона обусловлено исключительно их ориентацией на олимпиадную нишу (где важно быстро произвесть небольшие алгоритмы). Важно подчеркнуть это: что они ориентируюся на крайне узкую нишу, создавая тормоза как для общеалгоритмической, широко применимой грамотности, так и для выхода на профессиональный путь.
Фанатизм к Питону и скриптам проявляет именно тот контингент, который желает застрять в весовой категории "чо-то потихоньку лабаю в своё удовольствие".

Автор:  Борис Рюмшин [ Понедельник, 10 Октябрь, 2016 18:30 ]
Заголовок сообщения:  Re: против питона

Илья Ермаков писал(а):
Фанатизм к Питону и скриптам проявляет именно тот контингент, который желает застрять в весовой категории "чо-то потихоньку лабаю в своё удовольствие".

Нет. По большей части из-за п. 7 Валерия.

Автор:  Иван Денисов [ Вторник, 11 Октябрь, 2016 12:28 ]
Заголовок сообщения:  Re: против питона

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

Возьмем для примера деление на цело. В школе ученик привык, что 3/2 это 1.5, но в Питоне это не так. Логика "почему это не так" очень сложная и в целом противоречит школьной программе. Формируется система исключений с самых азов изучения. И так дальше повсюду.

Однако с учетом всех недостатков. У него есть преимущество - линейная кривая обучения. Легкий старт и одинаково сложная кривая обучения. Немного "позубрил", стал немного больше "мочь" для решения задач. Ну и так или иначе, но Питон сегодня - лучший скриптовый язык для Linux. Так что он все равно входит в джентльменский набор современного IT специалиста.

Автор:  kemiisto [ Вторник, 11 Октябрь, 2016 12:41 ]
Заголовок сообщения:  Re: против питона

Цитата:
В школе ученик привык, что 3/2 это 1.5, но в Питоне это не так.

Да неужели? :lol: Как раз в Питоне то 3/2 = 1.5.

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

Автор:  kemiisto [ Вторник, 11 Октябрь, 2016 13:24 ]
Заголовок сообщения:  Re: против питона

Соглашусь с Ильёй Ермаковым: единственный существенный недостаток Python - динамическая типизация. Отсюда вытекают:
  • Необходимость тратить больше времени на тестирование, а не собственно программирование. При разработке на статически типизированных языках можно опереться хотя бы на type checker, а тут нужны тотальные проверки всего и вся.
  • Зачастую не самый лучший (если вообще имеющийся) дизайн ПО. При разработке на статически типизированных языках с самого начала приходиться детально прорабатывать типы данных, которые предполагается в дальнейшем использовать, а тут можно по началу без дизайна выкатить на "грязных хаках", вроде duck typing, а раплачиваться будут потом и, скорее всего, другие.
  • Плохая читаемость и высокая сложность изменения кода. Информация о типах переменных и при чтении, и при изменении кода очевидно крайне важна. Её, конечно, можно сохранять в комментариях, но где гарантии, что при каждом изменении кода, коментарии так же будут изменены?
  • Статический анализ крайне затруднён.

То есть, резюмирую, как Илья и сказал: "развитая система статической типизации является основой современной разработки серьёзного ПО". Вдумчивое проектирование, статический анализ, легко читаемый и модифицируемый код - всего это крайне тяжело достичь, используя динамически типизированные языки. Но для скриптов в несколько десятков строчек (для себя, здесь и сейчас) оно, к сожалению, годится.

Ах, ну и чуть не забыл упомянуть, что подвижка в сторону статической типизации в Python есть. В версии 3.5 появились т.н. type hints (PEPs 483, 484), которые суть есть подсказки людям и машине по типам используемых объектов. Цели как раз улучшение читаемости и возможностей статического анализа.

Автор:  prospero78 [ Вторник, 11 Октябрь, 2016 13:47 ]
Заголовок сообщения:  Re: против питона

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

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

Автор:  Trurl [ Вторник, 11 Октябрь, 2016 17:07 ]
Заголовок сообщения:  Re: против питона

kemiisto писал(а):
Да неужели? :lol: Как раз в Питоне то 3/2 = 1.5.

Зависит от версии Питона. :)

Автор:  Роман М. [ Вторник, 11 Октябрь, 2016 17:45 ]
Заголовок сообщения:  Re: против питона

Trurl писал(а):
kemiisto писал(а):
Да неужели? :lol: Как раз в Питоне то 3/2 = 1.5.

Зависит от версии Питона. :)

Это и плохо, что в разных версиях Питона математика действует по-разному.

Автор:  ilovb [ Вторник, 11 Октябрь, 2016 18:02 ]
Заголовок сообщения:  Re: против питона

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

Еще Питон своим дизайном провоцирует писать бряки в циклах (тут возможно вру, но знающие поправят)

Автор:  prospero78 [ Вторник, 11 Октябрь, 2016 18:25 ]
Заголовок сообщения:  Re: против питона

Я с самого начала сильно удивлялся почему во второй ветке 3/2=1, а в третьей 3/2=1.5.
И это ещё мелочи по сравнению с тем, как стали обрабатываться строки)))
Не. Катится под горку.

Бог с ними с бряками. Там ещё континуэ имеется. А Трей... Эксцепт...Финалли -- вот что жутко)) Действительно, то что происходит под капотом -- магия.

Автор:  kemiisto [ Вторник, 11 Октябрь, 2016 18:35 ]
Заголовок сообщения:  Re: против питона

ilovb писал(а):
Еще Питон своим дизайном провоцирует писать бряки в циклах (тут возможно вру, но знающие поправят)

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

Автор:  Владимир Паронджанов [ Вторник, 11 Октябрь, 2016 18:53 ]
Заголовок сообщения:  Re: против питона

Из Википедии https://ru.wikipedia.org/wiki/Python
Цитата:
Класс языка:
мультипарадигмальный:
объектно-ориентированный,
рефлективный,
императивный,
функциональный,
аспектно-ориентированный,
динамический

Автор:  Info21 [ Вторник, 11 Октябрь, 2016 23:10 ]
Заголовок сообщения:  Re: против питона

Trurl писал(а):
kemiisto писал(а):
Да неужели? :lol: Как раз в Питоне то 3/2 = 1.5.

Зависит от версии Питона. :)

Пожалуйста, дайте подробности.

Автор:  Иван Денисов [ Среда, 12 Октябрь, 2016 00:28 ]
Заголовок сообщения:  Re: против питона

Info21 писал(а):
Trurl писал(а):
kemiisto писал(а):
Да неужели? :lol: Как раз в Питоне то 3/2 = 1.5.

Зависит от версии Питона. :)

Пожалуйста, дайте подробности.

В python до 3 версии деление целых значит деление на цело, но в версии 3 — уже нет.
Чтобы в python до 3-ей версии поделить числа, надо писать так 3/float(2). Как это объяснить школьнику? :)
Почему не добавить отдельный оператор для деления на цело?
MOD и DIV должны проходить в школе и объяснять, как это связано с двоичным представлением данных.
Вложение:
python_demo.png
python_demo.png [ 55.83 КБ | Просмотров: 16660 ]

Автор:  Trurl [ Среда, 12 Октябрь, 2016 08:36 ]
Заголовок сообщения:  Re: против питона

Вот еще одна вещь, которую надо объяснять школьнику
Код:
>>> a=[1,2,3,4,5]
>>> a
[1, 2, 3, 4, 5]
>>> b=a
>>> b
[1, 2, 3, 4, 5]
>>> b[1]=8
>>> b
[1, 8, 3, 4, 5]
>>> a
[1, 8, 3, 4, 5]

Впрочем, это для многих скриптовых языков характерно.

Автор:  prospero78 [ Среда, 12 Октябрь, 2016 08:57 ]
Заголовок сообщения:  Re: против питона

А во последний пример, кстати, это просто ступор был для меня)))))
Я долго не мог въехать в эту магию 80 лвл)) Я до сих пор не пользуюсь такими штуками, так как это реально погибель адская.

Страница 1 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/