lqp - Мозг или компутер?
November 24th, 2014
11:46 pm

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Мозг или компутер?
Голубев в фсбуке предлагает обсуждать статью [info]dkirienko@lj про Питон как язык школьного обучения программированию.

Ну, сам я Питон терпеть не могу и многократно на эту тему высказывался. Питон - ремейк КОБОЛа на современной элементной базе, средоточие многословия и косноязычия, тормознутости, синтаксического выпендрежа и нестабильности. Все возможные пороки языка программирования в одном флаконе.

Однако же тут имеется момент для серьезного разговора. На самом деле, обучение школьников программированию имеет две существенно различные цели:
1) Обучение алгоритмическому мышлению себя самого и
2) Обучение управлению вычислительной машиной.

Одно с другим связано но это существенно разные вещи, и языки для этого требуются разные.

Для обучения алгоритмическому мышлению требуется язык, на который просто и наглядно отображаются алгоритмические приемы и абстракции, чтобы скажем список/стек или map/grep можно было просто взять и задать, не тратя сотни строк кода на их реализацию.

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

Первое, безусловно, необходимо. Но существует тенденция (у того же обсуждаемого [info]dkirienko@lj, например) абсолютизировать первое и пренебрежительно относиться ко второму. Дескать, алгоритмы - это часть общей культуры, а возня с железяками - это узкопрофесссиональная отрасль, которой пусть занимаются узкие профессионалы. Самое смешное что подобная точка зрения, вопреки тому что говорят ее адепты - это именно что точка зрения профессионального программиста, для которого алгоритмы это огромная светлая область, открытая для бесконечного совершенствования, в то время как всякие ассемблеры, прерывания и битовые маски - это темный чуланчик с инструментами, открываемый по нужде.

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

(71 comments | Leave a comment)

Comments
 
From:(Anonymous)
Date:November 24th, 2014 - 07:49 pm
(Link)
А вы сами на коболе-то писали?
From:[info]lqp
Date:November 24th, 2014 - 07:53 pm
(Link)
Приходилось переводить с него небольшие тексты.
From:(Anonymous)
Date:November 25th, 2014 - 02:58 am
(Link)
COBOL ego HyperCard. U Pythona was taki syntax est I net pretensiy bytt estestvennym yazykom.
[User Picture]
From:[info]vitus-wagner.livejournal.com
Date:November 24th, 2014 - 08:44 pm
(Link)
map, grep говоришь? Просто задать? И чтобы список и стэк были естественными конструкциями языка? Предлагаешь учить детей perl?
From:[info]lqp
Date:November 24th, 2014 - 08:50 pm
(Link)
Ну, Я привел примеры, которые были у меня под руками. [info]kouzdra небось вспомнил бы чего помолодежней.
From:(Anonymous)
Date:November 24th, 2014 - 09:05 pm
(Link)
Шёл Куздра по лесу. Видит: ведро стоит. Сел на него и насрал.
[User Picture]
From:[info]vitus-wagner.livejournal.com
Date:November 25th, 2014 - 10:15 am
(Link)
Нет бы стукнуть пяткой в грудь, и сказать "А что, среди авторов языков программирования Ларри единственный лингвист". И лучше учить языку, который придумал лингвист, чем языку, который придумала морской офицер женского пола.
[User Picture]
From:[info]wasserstrahl
Date:November 24th, 2014 - 09:37 pm
(Link)
А на чем следует учить? *без подкола вопрос*
From:[info]lqp
Date:November 24th, 2014 - 10:02 pm
(Link)
Надо иметь больше одного языка. Впрочем их и так больше одного.

Кстати, тот самый Паскаль, на который любят указывать пальцем, на самом деле неплохой компромисс.
From:(Anonymous)
Date:November 25th, 2014 - 02:12 am

вспомнить всё

(Link)
предлагаю СУБД. например КАРАТ.
From:[info]ignik
Date:November 25th, 2014 - 04:34 am
(Link)
From:[info]lqp
Date:November 25th, 2014 - 04:17 pm
(Link)
Я не вполне понимаю, в чем его преимущества по сравнению с текущим стандартом Паскалем.

Плюс - есть хеши. Минус - нет ни множеств, ни перечислимых типов, ни нормальных массивов.

Отсутствие возможности обратиться каким-либо образом к железу - явный минус.
From:[info]grusha
Date:November 27th, 2014 - 12:22 am
(Link)
From:(Anonymous)
Date:December 9th, 2014 - 05:47 am
(Link)
Неудача гугольские дебилы все просрали. А подавал надежды у Вирта украли же.
From:[info]grusha
Date:December 9th, 2014 - 09:42 am
(Link)
нахуй иди
From:(Anonymous)
Date:December 9th, 2014 - 04:30 pm
(Link)
Сочувствую но го все. Сдох. Новый веб язык нахуй никому не нужен а больше ни для чего не годится, многомерных массивов нет, генерикс нет, маршал анмаршал всякий очень неудобен от того что статические типы и главное скорость не впечатляет тоже. Waste of time.
From:[info]grusha
Date:December 9th, 2014 - 06:09 pm
(Link)
Рассылка ломится от мейлов, не успеваю читать (юзерская рассылка, не девелоперская). Подсадил на него кучу людей. А хипстеры идут нахуй.
From:(Anonymous)
Date:December 11th, 2014 - 02:49 am
(Link)
Опоздали немного. Впрочем в совке бывает разное пидо с кучей людей сектантов.
From:[info]grusha
Date:December 11th, 2014 - 02:56 am
(Link)
В каком нахуй совке? https://groups.google.com/forum/#!forum/golang-nuts
Насчет "опоздали" неизвестно куда неизвестно за чем - повторяю: хипстеры идут нахуй.
From:(Anonymous)
Date:December 11th, 2014 - 05:47 am
(Link)
В совке где по английски не читают. Multidimensional arrays in Go. It's time. В той же группе. Воз и ныне там пидоры понимают только свой веб для программирования го не годится пока пока.
From:[info]grusha
Date:December 11th, 2014 - 11:15 am
(Link)
Какой нахуй свой веб? Про веб здесь вспоминаешь только ты.
Люди дизайнили язык головой а не жопой, и сто раз подумают прежде чем добавлять какую-то фичу. Потому язык и не превращается в помойку.
В той же рассылке можешь найти мегатонны хипстерского скулежа про "добавьте то, добавьте се, я знаю как лучше". Про дженерики в особенности.
В частности, прежде чем скулить про многомерные массивы, тебе следовало бы почитать про различие между массивами и слайсами. А также задуматься, почему это различие существует и задефинировано на уровне спецификации языка.

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

Про goroutines вообще молчу, хипстеры в это не могут.
From:[info]grusha
Date:December 11th, 2014 - 11:28 am
(Link)
Bryan Turley
1/15/13
We just need a new buzzword around go.
Go has Specifics <-- new buzzword that means nothing as most buzzwords do.
Use Go's Specifics.


Kevin Gillette
1/15/13
"Go Specifics give you the fine-grained control you need to solve the problems of today!"

On Monday, January 14, 2013 7:40:14 PM UTC-7, bryanturley wrote:

We just need a new buzzword around go.
Go has Specifics <-- new buzzword that means nothing as most buzzwords do.
Use Go's Specifics.


Bryan Turley
1/15/13

On Monday, January 14, 2013 8:55:33 PM UTC-6, Kevin Gillette wrote:

"Go Specifics give you the fine-grained control you need to solve the problems of today!"

EXACTLY ;
From:(Anonymous)
Date:December 12th, 2014 - 03:57 am
(Link)
Шпана шпана. Пороть их некому.
From:(Anonymous)
Date:December 12th, 2014 - 03:52 am
(Link)
Да наоборот все. Вы новичок поздно пришли. Сначала был дизайн который потом не смогли осилить. Где netchan? Про различие между массивами и слайсами надо читать в том треде там реально классик программирования пытался вразумить веб шпану но не преуспел. Вы не знаете просто кто есть кто от молодости и пидишничества совкового.
From:[info]grusha
Date:December 12th, 2014 - 11:06 am
(Link)
Хуеб.
Сказочки не надо рассказывать.
Академические дрочеры также идут нахуй. Язык это инструмент инженеров. Которые работают с программно-аппаратными комплексами в реальном мире с его реальными проблемами, а не со сферическими конями.
Ссылку на тред про слайсы в студию.
Ну и, возможно, академическая школота и не знает кто такие Томпсон, Пайк, Кокс, но мы их хорошо знаем.
From:(Anonymous)
Date:December 13th, 2014 - 02:41 am
(Link)
nikakikh akademicheskikh drocherov wy opyat oblajalis. Generaly engneeringa menno chto. Pike slil kak indiiskii office-wallah, "there was no open ticket", pora na pensiyu.
From:(Anonymous)
Date:December 13th, 2014 - 02:45 am
(Link)
Woobsche ya kazhetsya tut sporyu s ukraincem maloletnim! lol
From:[info]grusha
Date:December 13th, 2014 - 09:52 pm
(Link)
Здесь нет никакого спора. Здесь есть посылание нахуй академхипстера (предположительно еще и ватника), с последовательным уточнением направления.
From:(Anonymous)
Date:December 16th, 2014 - 05:58 am
(Link)
Была попытка ликбеза да но с Украинцами такие не проходят
From:[info]grusha
Date:December 16th, 2014 - 10:11 am
(Link)
Доооо. Ссылочка-то где, ебанашка?
From:[info]grusha
Date:December 13th, 2014 - 09:37 pm
(Link)
Ссылка на тред про слайсы будет, или как? Заплетающийся язык это так себе способ слива.

Упомянутый прошлогодний тред Multidimensional arrays for Go. It's time. - читал я тогда начало треда, помню. Сейчас просмотрел весь тред. Что мы там имеем: чувак числодробильщик сказал "хочу фичу". Чуваку стали пояснять, что "язык общего назначения" и "свалка фич" это не одно и то же, что никто ему ничего не должен, и что для начала ему следует толком описать, какой именно дизайн ему нужен. В ходе дискуссии чувак признал, что да, он не представляет толком, какой дизайн там должен быть. К дискуссии присоединились и другие чуваки, заинтересованные в фиче. Завершилась дискуссия ничем: не смогли чуваки определиться, что им нужно.
From:(Anonymous)
Date:December 14th, 2014 - 08:28 pm
(Link)
Дурачок иди учись неуч.
From:[info]grusha
Date:December 15th, 2014 - 12:56 am
(Link)
Сливаемся, да? Обосрался и в кусты? Ссылку можно не ждать, я так понимаю.
From:(Anonymous)
Date:December 16th, 2014 - 05:57 am
(Link)
Хоп хоп кто не скачет тот москаль
From:(Anonymous)
Date:December 12th, 2014 - 03:56 am
(Link)
Да в том и проблема что серьезные люди слишком там все стали. Деловые. Отчего получился очередной веб язык. Серьезнее пхп вообще ничего нет только микрософт екчченчь.
From:(Anonymous)
Date:December 11th, 2014 - 05:40 am
(Link)
Множества и ассоциативные массивы это одно и то же. Единственный косяк илуны и ужасный что нет длины массива и слайсы невозможны потому что внутри массивов ассоциативные и с дырками. К железу в Луне как раз легко там же сишные функции интерфейсятся.

Но ваш пойнт про архитектуры мне нравится. Типа как узнать про то зачем proper tail recurs ion если не принимать во внимание ограниченость памяти, стека у процесса.
From:[info]lqp
Date:December 11th, 2014 - 08:25 am
(Link)
К железу в Луне как раз легко там же сишные функции интерфейсятся.


Не стандартизовано, а значит для массовой школы не годится. Школьные учителя мыслят в терминах методичек, сборников задач и обучающих плакатов.
From:(Anonymous)
Date:December 12th, 2014 - 04:00 am
(Link)
Так само железо не стандартизовано. Зато Луну можно запустить практически везде хоть внутри фпга то есть адаптировать к любому имеющемуся железу.
From:(Anonymous)
Date:December 21st, 2014 - 10:21 pm
(Link)
Кстати говоря по Луа есть прекрасный учебник автора Роберто Иерусалимского. С задачами и примерами. Наличие правильного учебника это редкость только старые вещи типа среды юникс АВК и Си могли таким отличаться больше не делают. Все загажено орейлии говном всякими кукбуками и лернинг перл для чайников.
[User Picture]
From:[info]aspirantus
Date:November 25th, 2014 - 03:50 am
(Link)
питон зашибись. слишком много внимания этим языкам
From:(Anonymous)
Date:December 11th, 2014 - 05:42 am
(Link)
Да уж зашибись пока не воткнешься в производительность а оно случается неизбежно.
From:(Anonymous)
Date:November 25th, 2014 - 03:49 pm
(Link)
Питон это хороший язык, уж всяко лучше Перла.
From:[info]lqp
Date:November 25th, 2014 - 04:38 pm
(Link)
Ну, кому и кобыла невеста.

Питон, собственно, имеет ровно одно преимущество перед Перлом - отсутствие префиксов у переменных. Во всех прочих отношениях сравнение будет для Питона весьма плачевным.
From:(Anonymous)
Date:November 26th, 2014 - 04:35 am
(Link)
питон имеет крайне ценное преимущество в виде удобных библиотек для научных расчетов и построения графиков. весьма полезное в образовательных целях свойство. не говоря уж об image analysis и прочих мелочах.
From:[info]lqp
Date:November 26th, 2014 - 06:41 am
(Link)
Вообще-то по сравнени. со CPAN-ом говорить о наличии у Питона каких бы то ни было библиотек довольно смехотворно.

Что же касается NumPy\SciPy, который Вы очевидно имеете в виду, так это довольно криворукая калька с перловского PDL, реализующая лишь малую часть функциональности последнего.
From:(Anonymous)
Date:November 26th, 2014 - 03:05 pm
(Link)
давайте так: что может убедить человека переписать проект, выполненный на питоне/numpy/scipy, в perl/PDL? или перейти на перл?
From:[info]lqp
Date:November 28th, 2014 - 10:07 pm
(Link)
Ну, на практике основная причина, побуждающая переходить на Perl - это CPAN. Не потому что прочие причины плохи, а потому что CPAN кроет любые другие причины как, гм.

Но тут не забывать - что для других языков, и в частность для того же Питона, ничего подобного CPANу нет отнюдь не случайно
From:(Anonymous)
Date:December 9th, 2014 - 05:51 am
(Link)
Как раз большая проблема что у всех языков есть и по нескольку. У r cran у Питона пайпай и анаконда и актив. У октаве октавефорж. Все это создает кошмар для си темного администрирования.

Лучше чтобы не было, вот в ФОРТРАНе никакой херни блас лапак почти часть языка.
From:[info]lqp
Date:December 11th, 2014 - 08:36 am
(Link)
Как раз большая проблема что у всех языков есть и по нескольку.

Ну так у перла не несколько, а один. И не на сотню пакетов (как эти несколько), а на тридцать тысяч.

From:(Anonymous)
Date:December 12th, 2014 - 04:05 am
(Link)
6102 cran причем они фокусировны на статистике тогда как у перла всякая веб хрень. То есть еще неизвестно.
From:(Anonymous)
Date:November 27th, 2014 - 08:01 pm
(Link)
http://avva.livejournal.com/2826126.html?thread=112322190
From:(Anonymous)
Date:December 11th, 2014 - 05:43 am
(Link)
Воробей дуралей носит туфли как репей
From:(Anonymous)
Date:December 9th, 2014 - 05:52 am
(Link)
Ну да а есть ли в перле лист компрехензии слайсы итд?
From:[info]lqp
Date:December 11th, 2014 - 08:59 am
(Link)
Есть общий механизм обращения к любому подмножеству списка по его номерам
@B=@A[1..5,9,12];
или по значениям
@B= grep $_>10,@A;

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

В PDL все так же как в питоне, вплоть до нотации.
From:(Anonymous)
Date:December 12th, 2014 - 04:13 am
(Link)
В питоне можно сделать автоматическую итерацию и редукцию листа в одном выражении , с некоторых пор. Насколько я знаю в перле надо будет крутить циклы для этого.
From:[info]lqp
Date:December 13th, 2014 - 09:40 am
(Link)
Што-што?
From:(Anonymous)
Date:December 14th, 2014 - 08:32 pm
(Link)
Sum([ x for x in range (10) if mod x/3 > 0]) такие штуки наверное можно сделать через регексп в перле да?

Генераторов в перле вроде тоже нету в питоне и луа есть.

From:[info]lqp
Date:December 14th, 2014 - 08:48 pm
(Link)
map/grep тащемто упоминаются прямо в том каменте, на который вы отвечаете. Они являются частью языка с, как минимум, 1993 года. Суммирование элементов списка - это стандартный (идущий в поставке Перла с незапамятных времен) модуль List::Util
From:(Anonymous)
Date:December 16th, 2014 - 05:56 am
(Link)
It just looks soooo gross man!
From:(Anonymous)
Date:December 16th, 2014 - 05:59 am
(Link)
В смысле забыть перл так приятно что не надо всего этого изврата.
From:[info]lqp
Date:December 16th, 2014 - 02:13 pm
(Link)
Ну, как бы вам сказать. Если человек абсолютно прозрачному, лаконичному и традиционному функциональному синтаксису Перла предпочитает вырвиглазную псевдоимперативщину Питона - то до Перла он действительно не дорос.

From:(Anonymous)
Date:December 19th, 2014 - 08:29 am
(Link)
Зато питон с нумпаем похож на фортран90 а перл уж слишком элегантный. На старости лет устаешь.
From:[info]lqp
Date:December 22nd, 2014 - 03:40 pm
(Link)
Ну это смотря что делать. Если школоту учить Helloworld писать, то может питон с нумпаем и красивше выходит. А вот если у тебя реальные задачи....

map/grep можно стыковать в одной строке хоть десять штук без ущерба для удобочитаемости. А вот эту фигню с псевдоциклами даже две штуки поставить, так разнесет.....
From:(Anonymous)
Date:December 25th, 2014 - 01:09 am
(Link)
Приближает ли перл к пониманию машин ого железа спорный вопрос.
From:[info]ramendik
Date:December 11th, 2014 - 08:06 pm
(Link)
Основное преимущество Питона - enforced readability. У Паскаля оно тоже есть. Я, собственно, вырос паскалистом, но по причине отсутствия удобных современных реализаций паскаля без закидонов из восьмидесятых (как минимум на тот момент) перешёл на питон.

Чем хуже читается язык, тем меньше я на нём могу. На regexp - не могу вовсе.
From:[info]lqp
Date:December 11th, 2014 - 11:37 pm
(Link)
Как бы это сказать поаккуратнее. readability оно ведь сильно зависит от того, какой у читателя словарный запас.

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

Регэксы тут хороший пример. Вполне можно заменить и нотацию на более наглядную. В Perl6 это сделано, и бэкпортировано через какой-то там модуль. Поможет это удобочитаемости? Ну разве что самую чуточку - проблема то не в нотации, а в самой логике регулярных выражений, которая резко отличается от всего обычного императивного/функционального/декларативного.
From:[info]ramendik
Date:December 12th, 2014 - 12:27 am
(Link)
Проблема в том, что когда нечитаемость накладывается на новую логику, вместе проблема становится уже просто нерешаемой.

Я посмотрю регэксы perl6, конечно. Но на перле нечитаема даже чистая императивщина, если не выпрямлять автору руки кувалдой именно на этот предмет. А Питон добавляет функциональщину, ничуть не уменьшая читабельность.
From:[info]lqp
Date:December 13th, 2014 - 07:25 am
(Link)
Тонкость в том, что даже если какая-то фича языка конкретным программистом не используется - в языке-то она все равно остается и на синтаксис влияет.

Скажем, можно пользоваться перловскими списками исключительно как паскалевскими массивами: доступ по индексу, однотипные данные etc. Но это будет гораздо менее удобочитаемо чем в паскале. Потому чо на самом деле - это списки и синтаксис заточен именно под обращение с ними как со списками.
From:[info]ramendik
Date:December 12th, 2014 - 03:31 am
(Link)
Да, что касается управления машиной, по-моему для него лучше подошёл бы ретрокомпьютинг. Вроде MSX. И я бы делал это факультативом.

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

А вот MSX - дело другое. Аппаратные спрайты чего стоили!
From:(Anonymous)
Date:December 12th, 2014 - 04:16 am
(Link)
Наоборот тенденция к виртуализации показывает какую хочешь аппаратуру. Дает больше возможностей ее изучать даже в отсутствии железа.
From:(Anonymous)
Date:December 12th, 2014 - 05:19 am
(Link)
Перевести обучение с Паскаля на Си о чем там говорится в комментариях это довольно таки безумная идея. Понятно что в МГУ там сливки сливок. В американских университетах это провалились они сейчас массово учат жабу как первый язык.
Powered by LJ.Rossia.org