[Freeschool] чему стоит учить в школе

Dmitriy M. Maslennikov =?iso-8859-1?q?maslennikovdm_=CE=C1_gmail=2Ecom?=
Чт Окт 23 11:50:33 MSD 2008


22 октября 2008 г. 23:20 пользователь Michael Shigorin
<mike на osdn.org.ua> написал:
>> Если кому-тоесть чтовозразить по этому поводу, особенно,
>> если у кого есть опыть обучения python на ранних этапах то эта
>> информация была бы весьма ценной для меня.
>
> Вы ж не слушаете.
Так, давайте уточним. Вы все время говорите, что питон ужасенн, из-за
того, что там отступы и это по-вашему "смесь синтаксиса и семантики".
Я утверждаю, что это лишь эстетический момент, ну вот вам кажется, что
пробелы _должны_ ничего не означать в языке, я считаю, что пробелы
_желательно_ не должны быть значимыми в языке программирования, Гвидо
считает, что пробелы удобны для выделения блоков кода. Вообще, я писал
лексические и синтаксические парсеры и пользовался их генераторами.
Никаких сложностей с пробелами не вижу, как со стороны реализации, так
и со стороны написания и сопровождения кода. Так что отступы или
скобки или begin-end -- исключительно дело вкуса. Да и вообще мне
встречался небольшой файл, который реализовывал кодировку для python
(новая кодировка для указания coding в начале файла с исходниками),
которая занималась тем, что делала отступы руководствуясь фигурными
скобками, как в большинстве языков.

Если бы вы смогли показать, что пробелы действительно так страшны для
языка програмирования и работы с ним, а не для вашего чувства этетики,
то я бы с удовольствием признал это, но очень в этом сомневаюсь.
Безобидность отступов проверена и мной лично и кучей программистов из
Google и Youtube, как минимум. Да и из многих других проектов. Даже
то, что вы говорите, что стараетесь избегать приложений на python,
ничего не означает, поскольку их огромное количество на десктопе и под
KDE и под Gnome, так что вы ими тоже пользуетесь и зачастую даже не
замечаете (конечно вы можете сидеть только в консоли, где таких
поменьше, или под менее распространенными средами, но все равно масса
людей пользуется приложениями на этом языке).

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

Более того, мы говорим о языке приминительно к школе. Так вот в тех
небольших учебных программах, которые пишут школьники, проблеме
взяться вообще неоткуда. Так как редактор (например kate) очень просто
настраивается на использование пробелов вместо табуляции, и табам в
файле просто неоткуда взяться. Далее нарушения отступов очень хорошо
видны глазом и очень легко исправляются (в случае отсутствия табов
вообще), а интерпретатор ясно и недвусмысленно сообщает о нарушениях
отступов в самом начале исполнения программы.

Про несовместимость версий, разные установки и прочее в контексте
школы говорить вообще бессмысленно, так как программы небольшие и не
рассчитаны на очень долгую работу. Честно говоря с несовместимостью
версий >2.2 я на практике даже не сталкивался. Python 3000, конечно,
заявляет о разрыве совместимости в некоторых пунктах, но ничего и
того, что можно поместить в школьные примеры не портится, так что и
здесь проблемы не вижу.

Плюсы я уже называл:

- не требует компиляции
- программа начинается выполняться непосредственно по ходу файла, а не
с функции/метода класса
- не требует конструкций, еще не пройденных по программе (пишите так,
я потом объясню, почему)
- нет риска, что "продвинутый" школьник упрется в недостаток возможностей
- высокая распространенность, обилие модулей (библиотек), биндингов

может еще что забыл. Из недостатков:

- использование латинского алфавита
- необходимость указывать кодировку в начале файла, если в нем есть
символы отличные от ASCII (после выхода python3000 такой необходимости
не будет)
- отсутствие методических материалов, пособий для учителей

больше пока тоже в голову ничего не приходит

-- 
Dmitriy M. Maslennikov
rlz на etersoft.ru
rlz на altlinux.org
maslennikovdm на gmail.com
master на armory.ru


Подробная информация о списке рассылки Freeschool